502使用CLI将烧瓶应用程序部署到弹性beantalk时出错

时间:2020-08-22 12:00:17

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

在将非常简单的Hello,World类型flask应用程序部署到AWS Elastic Beanstalk时遇到问题。我正在使用eb CLI工具,该工具在Mac上与brew和python 3一起安装。一些示例代码如下:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

@app.route('/<username>')
def hello_user(username):
    return f'Hello, {username}!'

# run the app.
if __name__ == "__main__":
    # Setting debug to True enables debug output. This line should be
    # removed before deploying a production app.
    
    app.debug = True
    app.run(port=8000)

它按预期在本地运行,我可以通过CLI进行部署,但是当我访问该应用程序时,我得到了502 Bad Gateway。

我尝试过:

  • 使用控制台中的URL和eb open来访问应用程序。
  • 在URL末尾指定端口5000(默认烧瓶)和8000。
  • 使用app.run()app.run(port=8000)失败。

我已经浏览了文档,但是找不到修复程序。如果人们有任何建议或链接,他们认为会有所帮助。

1 个答案:

答案 0 :(得分:0)

您的应用程序应名为application,而不是app

下面是更正后的application.py文件。我验证,它可以在Python 3.7 running on 64bit Amazon Linux 2/3.1.0平台上工作:

from flask import Flask

application = Flask(__name__)

@application.route('/')
def hello_world():
    return 'Hello, World!'

@application.route('/<username>')
def hello_user(username):
    return f'Hello, {username}!'

# run the app.
if __name__ == "__main__":
    # Setting debug to True enables debug output. This line should be
    # removed before deploying a production app.
    
    application.debug = True
    application.run(port=8000)