在AWS Elastic Beanstalk上运行Flask应用程序 - 不同的安装程序

时间:2018-05-30 18:20:29

标签: amazon-web-services elasticsearch flask elastic-beanstalk

我想在EBS上运行Flask应用程序,但我的应用程序的结构与推荐的设置不同,我还没想出如何运行它。

现在这就是它的样子:

  • Project_Folder /
    • Project_App /
      • 静态/
      • 模板/
      • __init__.py(我在这里有application = app = flask.Flask(名称))
      • config.py
      • 视图/
        • __init__.py
        • index.py(我的路线已定义)
    • setup.py(python包配置)

要运行该应用,我会进入Project_Folder并导出FLASK_APP=Project_App和其他环境变量,然后执行:flask run

我知道EBS需要一个带有“application”的.py文件,所以我也可以通过在Project_App中执行python __init__.py来运行应用程序。我确保将WSGIPath更改为__init__.py,希望它能在那里找到应用程序对象,但它仍然无法运行。

日志不是很有用,但有没有人有任何想法?我不太确定在亚马逊方面发生了什么来运行应用程序本身。

谢谢!

1 个答案:

答案 0 :(得分:0)

我似乎也遇到了同样的问题。如果您使用eb-cli并键入命令“ eb logs”,则应该获得错误日志。如果仔细检查它们并发现一条错误消息,例如“目标WSGI脚本'...'不包含WSGI应用程序'application'”,并且您当前收到403禁止错误,那么您的问题可能类似于我的问题。我假设在您的 init .py文件中,您使用的是以下应用程序工厂:

def create_app():
    application = Flask(__name__)
    app = application

如果是,则是导致问题的原因是应用程序工厂create_app()。我建议尝试不要在create_app()中定义应用程序,或者根本不使用应用程序工厂