python - 如何在 AWS elastic beanstalk 上部署结构化 Flask 应用程序

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

使用此处概述的步骤成功部署测试应用后: 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 时遇到了类似的问题,具有类似的目录结构,并且必须做两件事:

  1. 更新我的 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)
    
  2. 创建.ebextensions/myapp.config,定义如下 block 指向manage.py

    option_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
    • 等等等等

关于python - 如何在 AWS elastic beanstalk 上部署结构化 Flask 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20558747/

相关文章:

python - 大量时间使用 suds 和代理发送数据

python - scrapy mysql 返回空结果

amazon-web-services - 如何使用经过身份验证的 AWS Cognito 身份访问 AWS IoT 终端节点?

python - Flask request.get_json() 返回字符串而不是 json

javascript - 如何在 Python 中使用 Flask 压缩/最小化 JSON/Jsonify 的大小?

python - 是否可以在 Google AppEngine 上使用 django Piston?

javascript - 使用 Linkedin API 检索我的个人资料信息

amazon-web-services - 使用 cloudformation 中的标签访问 AWS System Manager Parameter Store

amazon-web-services - ECS 容量提供程序是否实际针对每个 ec2 实例的一项任务?

python - 修复 Flask apache 应用程序中的绝对 url