使用此处概述的步骤成功部署测试应用后: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_Python_flask.html
我尝试部署具有以下结构的实际 Flask 应用程序:
myApp/
runServer.py
requirements.txt
myApp/
__init__.py
helpers.py
clean.sh
static/
myApp.css
handlers/
__init__.py
views.py
templates/
layout.html
viewOne.html
viewTwo.html
views.py
包含我的 url 映射。
我已经尝试在根目录以及 myApp
模块和 git aws.push
中初始化 eb
实例,但我得到了AWS 仪表板上出现以下错误:
错误您的 WSGIPath 引用了一个不存在的文件。
并且应用程序无法运行(任何路径都是 404)。
如何将上述 Flask
应用程序部署到 Elastic Beanstalk?
最佳答案
我在将 Flask 应用程序部署到 EB 时遇到了类似的问题,具有类似的目录结构,并且必须做两件事:
更新我的 manage.py 以创建名称为 application 的对象,而不是 app
import os from application import create_app, db from flask.ext.script import Manager, Shell application = create_app(os.getenv('FLASK_CONFIG') or 'default') manager = Manager(application)
创建
.ebextensions/myapp.config
,定义如下 block 指向manage.pyoption_settings: "aws:elasticbeanstalk:container:python": WSGIPath: manage.py "aws:elasticbeanstalk:container:python:staticfiles": "/static/": "application/static/"
这让 Elastic Beanstalk 可以正确找到可调用的应用程序。
这在 the official docs 中有简要描述。 , 并且有更详细的描述 in this blog post
编辑 - 请参阅下面的项目结构
- 项目根
- .ebextensions
- 应用程序配置
- 申请
- 主要
- 表格.py
- views.py
- 主要
- 静态
- 模板
- 测试
- 管理.py
- 需求.txt
- 配置.py
- 等等等等
- .ebextensions
关于python - 如何在 AWS elastic beanstalk 上部署结构化 Flask 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20558747/