【发布时间】:2020-09-14 21:16:39
【问题描述】:
我正在尝试将我的第一个应用程序部署到 EB 并跟随此教程:https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-django.html
很遗憾,我在部署最终应用时仍然收到 502 错误。我很困惑,因为我已经按照指示前往发球台了。
我收到以下错误
ImportError: Failed to find application, did you mean 'ebdjango/wsgi:application'?
我不确定这意味着什么。根据说明,我编辑了 django.config 文件以包含以下文本:
option_settings:
aws:elasticbeanstalk:container:python:
WSGIPath: ebdjango/wsgi.py
这似乎与我的文件结构相匹配:
- ebdjango
-.ebextensions
- django.config
- .elasticbeanstalk
- ebdjango
_ __init__.py
- settings.py
- urls.py
- wsgi.py
- manage.py
- requirements.txt
所以配置文件设置正确,对吧?
我正在运行 Python 3.7 和 Django 2.2。
我知道 EB 搜索 application.py,我认为配置文件应该将服务器指向我的自定义应用程序?我在这里错过了什么?
编辑:我也收到此错误:
ModuleNotFoundError: No module named 'ebdjango/wsgi'
我的文件结构有问题吗?
编辑 2:我忘记在我的帖子中包含 init.py 文件,请参阅 Ben 的评论。
【问题讨论】:
-
__init__.py文件与wsgi.py文件在同一目录下吗? -
我做的,它是我执行startproject时自动创建的
-
此错误是因为您使用 Amazon Linux 2 作为平台,该平台使用 Gunicorn 作为 WSGI 服务器,但您指定了“WSGIPath”,这不符合 Gunicorn 标准(您是仍在使用用于 AL1 平台的语法)。我看到下面提到的所有 3 个解决方案都是正确的,但没有解释为什么要进行这些更改,所以我想提供我的 2 美分。如果您正在寻找 AL2 说明,您可能会发现这篇 [Medium Article] (medium.com/@justaboutcloud/…) 很方便。
标签: django amazon-web-services amazon-elastic-beanstalk