alh*_*alh 12 python amazon-web-services flask amazon-elastic-beanstalk
使用此处列出的步骤成功部署测试应用程序后:http: //docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_Python_flask.html
我试图部署我的实际烧瓶应用程序,它具有以下结构:
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
Run Code Online (Sandbox Code Playgroud)
哪里views.py包含我的网址映射.
我已尝试eb在根目录和myApp模块内初始化实例,git aws.push但我在AWS仪表板上收到以下错误:
ERROR Your WSGIPath refers to a file that does not exist.应用程序不起作用(任何路径为404).
如何将上述Flask应用程序部署到弹性beanstalk?
kuk*_*ido 11
将以下内容添加到.ebextensions/<env-name>.config:
option_settings:
"aws:elasticbeanstalk:container:python":
WSGIPath: myApp/handlers/views.py
Run Code Online (Sandbox Code Playgroud)
更新:
如果您没有.ebextensions目录,请为项目创建一个.您可以在" 自定义和配置AWS Elastic Beanstalk环境"指南中找到有关容器配置的更多信息.
Wil*_*l B 11
我遇到了类似的问题,将Flask应用程序部署到EB,具有类似的目录结构,并且必须做两件事:
更新我的manage.py以创建名称应用程序的对象,而不是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)
Run Code Online (Sandbox Code Playgroud)创建.ebextensions/myapp.config并定义以下块以指向manage.py
option_settings:
"aws:elasticbeanstalk:container:python":
WSGIPath: manage.py
"aws:elasticbeanstalk:container:python:staticfiles":
"/static/": "application/static/"
Run Code Online (Sandbox Code Playgroud)这让Elastic Beanstalk正确地找到了可调用的应用程序.
编辑 - 参见下面的项目结构
您的 WSGIPath 引用了一个不存在的文件。
出现此错误是因为 Beanstalk 默认查找 application.py。检查在魔豆web用户界面,Configuration > Software Configuration,WSGIPath被映射到application.py
更新WSGIPath如先前回复中所示的或重命名为application.py文件。
从awsebcli 3.0开始,您可以实际编辑配置设置以表示您的WSGI路径eb config.config然后该命令将根据您当前的配置设置拉(并在默认命令行文本编辑器中打开它,即nano)一个可编辑的配置.然后,您将以WSGI这种方式搜索并更新它的路径.保存文件并退出后,您的WSGI路径将自动更新.
| 归档时间: |
|
| 查看次数: |
15366 次 |
| 最近记录: |