AWS Elastic Beanstalk:WSGI路径不正确?

问题描述 投票:0回答:3

我正在尝试将我的第一个应用程序部署到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的评论。

django amazon-web-services amazon-elastic-beanstalk
3个回答
0
投票

在您的django.config中更改:

option_settings:
  aws:elasticbeanstalk:container:python:
    WSGIPath: ebdjango.wsgi

以及您的

import os
from django.core.wsgi import get_wsgi_application
os.environ["DJANGO_SETTINGS_MODULE"] = "ebdjango.settings"
application = get_wsgi_application()

0
投票

今天我在django.config文件中遇到了同样的问题。当我将配置选项卡中的WSGI路径更改为ebdjango.wsgi:application时,它终于对我有用。


0
投票

我有同样的问题。这是由于Amazon Linux 2机器映像。其配置文件与旧版本不兼容。请参阅:https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.migration-al.html。我最终使用了旧版本,因为文档中说:

© www.soinside.com 2019 - 2024. All rights reserved.