使用Elastic Beanstalk将WSGI应用程序错误地部署到AWS

交叉链接到AWS论坛

我使用WSGI开发了一个简单的Python Web服务,并希望使用Elastic Beanstalk将其部署到AWS云。 我的问题是我无法使我在Elastic Beanstalkconfiguration中指定的所有选项在云中正确configuration。

为了部署,我使用Elastic Beanstalk CLI实用程序。 我已经运行了eb init命令并设置了所需的参数。 之后,在我的源代码树中创build了一个名为.elasticbeanstalk的目录。 它有两个用于部署的configuration文件,即configoptionsettings 。 后面的其中一个选项包含必须在实例中更新/etc/httpd/conf.d/wsgi.conf的WSGIconfiguration。 经过一些调整后,文件具有以下设置:

 [AWS:elasticbeanstalk:应用:环境]
 DJANGO_SETTINGS_MODULE = 
 PARAM1 = 
 PARAM2 = 
 PARAM4 = 
 PARAM3 = 
 PARAM5 = 

 [AWS:elasticbeanstalk:容器:蟒]
 WSGIPath = handler.py
 NumProcesses = 2
 StaticFiles = / static =
 NumThreads = 10

 [AWS:elasticbeanstalk:容器:蟒:staticfiles]
 / static = static /

 [AWS:elasticbeanstalk:hostmanager]
 LogPublicationControl = false

 [AWS:自动缩放:launchconfiguration]
 InstanceType = t1.micro
 EC2KeyName = zmicier-aws

 [AWS:elasticbeanstalk:应用]
应用程序Healthcheck URL = 

 [AWS:自动缩放:ASG]
 MaxSize = 10
 MinSize = 1
自定义可用区域= 

 [AWS:elasticbeanstalk:监测]
自动终止不健康的实例= true

 [AWS:elasticbeanstalk:SNS:主题]
通知端点= 
通知协议=电子邮件

事实certificate,当我启动环境或更新它时,并不是所有这些选项都被考虑在内。 因此,当我更新NumThreadsNumProcesses ,相应的参数按照预期在wsgi.conf被更改。 但是无论我写入WSGIPathStaticFiles参数,我都无法自动更改wsgi.conf的相应值,它们仍然保留

 Alias /static /opt/python/current/app/ WSGIScriptAlias / /opt/python/current/app/application.py 

这使我疯狂。 而且,当我使用git aws.push部署我的应用程序并具有.ebextensions/python.config文件的下列内容时,我在其中指定的选项都不会影响部署。

 option_settings:
      -  namespace:aws:elasticbeanstalk:container:python
        option_name:WSGIPath
       值:mysite / wsgi.py
      -  namespace:aws:elasticbeanstalk:container:python
        option_name:NumProcesses
       价值:5
      -  namespace:aws:elasticbeanstalk:container:python
        option_name:NumThreads
       价值:25
      -  namespace:aws:elasticbeanstalk:container:python:staticfiles
        option_name:/ static /
       值:app / static / 

我想知道我应该怎么做才能强制AWS使用我在configuration中指定的所有参数,即WSGI Path和我的静态数据的path。