Flask应用部署AWS Amplify遇404错误,求运行解决方案
Flask部署到AWS Amplify出现404错误的解决方法
问题背景
部署流程显示成功,但访问Amplify链接时出现错误:No webpage was found for the web address. HTTP error 404,构建日志中关键警告为:
!! No index.html detected in deploy folder: /codebuild/output/src3464593922/src/digital-me/
构建日志关键内容
## No backend environment association found, continuing... Starting Frontend Build # Starting phase: build # Completed phase: build 2023-07-06T12:41:23.066Z [INFO]: ## Build completed successfully 2023-07-06T12:41:23.067Z [INFO]: # Starting caching... 2023-07-06T12:41:23.067Z [INFO]: Nothing to cache 2023-07-06T12:41:23.067Z [INFO]: # Caching completed 2023-07-06T12:41:23.069Z [INFO]: # No custom headers found. **2023-07-06T12:41:23.083Z [WARNING]: !! No index.html detected in deploy folder: /codebuild/output/src3464593922/src/digital-me/** 2023-07-06T12:41:23.083Z [INFO]: # Starting build artifact upload process... 2023-07-06T12:41:23.380Z [INFO]: # Uploading build artifact '__artifacts.zip'... 2023-07-06T12:41:23.409Z [INFO]: # Uploading build artifact '__artifactsHash.zip'... 2023-07-06T12:41:23.579Z [INFO]: # Build artifact upload completed 2023-07-06T12:41:23.580Z [INFO]: # Starting environment caching... 2023-07-06T12:41:23.580Z [INFO]: # Uploading environment cache artifact... 2023-07-06T12:41:23.696Z [INFO]: # Uploaded environment cache artifact 2023-07-06T12:41:23.697Z [INFO]: # Environment caching completed Terminating logging...
解决操作步骤
AWS Amplify默认适配静态前端站点,Flask是动态后端应用,需调整配置适配:
1. 修改构建与部署配置
在Amplify控制台的构建和测试设置中调整:
- 构建命令:替换为安装依赖并启动WSGI服务器的命令,示例:
(pip install -r requirements.txt && pip install gunicorn && gunicorn -w 4 -b 0.0.0.0:5000 app:appapp:app对应入口文件app.py中的Flask实例名,需根据实际代码修改) - 部署目录:设置为Flask应用的根目录,无需指定静态文件目录
2. 确认应用基础配置
- 项目根目录下必须有
requirements.txt,包含Flask、gunicorn等依赖,示例内容:Flask==2.3.3 gunicorn==21.2.0 - 检查Flask入口文件(如
app.py)存在根路由:from flask import Flask app = Flask(__name__) @app.route('/') def home(): return "Flask App Running!" # 或返回渲染的模板页面
3. 启用Amplify后端部署(稳定方案)
若自定义构建命令无效,可使用Amplify后端托管功能:
- 在Amplify控制台添加后端环境,选择Python运行时
- 上传
requirements.txt和Flask源码,配置启动命令为gunicorn app:app
4. 配置重写规则(解决路由跳转问题)
如果访问动态路由仍报错,在Amplify的重写和重定向中添加规则:
- 源地址:
</^[^.]+$|\.(?!(css|gif|ico|jpg|js|png|txt|svg|woff|woff2|ttf|map|json)$)([^.]+$)/> - 目标地址:
/ - 状态:200(Rewrite)
内容的提问来源于stack exchange,提问作者shrimaan0205
相关产品推荐
相关产品推荐

