如何在AWS Elastic Beanstalk上配置我的WSGI应用程序的名称?

oro*_*ome 14 python configuration amazon-web-services amazon-elastic-beanstalk

我的Python Web应用程序被调用 app

# example.py
import flask

app = flask.Flask(__name__.split('.')[0])
Run Code Online (Sandbox Code Playgroud)

当我尝试在AWS-EB上使用时启动它

# run.py (set correctly with WSGIPath)
from example import app

if __name__ == "__main__":
    app.run()
Run Code Online (Sandbox Code Playgroud)

我明白了

mod_wsgi(pid = 22473):目标WSGI脚本'/opt/python/current/app/run.py'不包含WSGI应用程序'application'.

如何告诉AWS我的应用程序实例被调用app

Dmi*_*ylo 20

mod_wsgi期望变量被调用application.尝试做这样的事情

from example import app as application
Run Code Online (Sandbox Code Playgroud)

注意:不要这样做application.run().这不是必需的.

  • [这是一篇很好的博客文章,解释了如何处理`application`](http://blog.uptill3.com/2012/08/25/python-on-elastic-beanstalk.html). (13认同)

Abh*_*raj 7

虽然可以配置 WSGIPath。Beanstalk 仍然希望 app 变量被命名为“application”。

小型单文件 python 应用程序的简单解决方法可以是

from flask import Flask

app = Flask(__name__)
application = app # For beanstalk
Run Code Online (Sandbox Code Playgroud)

您可以保留其余代码原样。你只需要添加那一行application = app