在Elastic Beanstalk上部署Python,具有针对不同环境的不同配置

Joh*_*lls 9 python amazon-web-services amazon-elastic-beanstalk

AWS没有正确解释如何管理beanstalk上与不同环境相关的不同部署环境,以及如何在源代码管理存储库中保存这些设置.

他们清楚地解释了如何在.ebextensions中设置python.config,如下所示:

"aws:elasticbeanstalk:container:python:environment":
  DJANGO_SETTINGS_MODULE: "settings"
  SERVER_ROOT: "/opt/python/current/app/"
Run Code Online (Sandbox Code Playgroud)

但是,如果您想拥有多个环境(如staging和prod),则必须更换配置文件.更糟糕的是,您计划如何在源控制树中保留这个以用于共享环境(如分段)?看来每次推送都需要这些配置环境设置.

我还发现AWS不允许我部署非分段更改,这意味着编写脚本来处理我的部署也不是一种选择.我在这里错过了什么?

Mic*_*kov 0

没有尝试过,但似乎您可以DJANGO_SETTINGS_MODULE不通过配置文件传递,而是通过容器自己的参数传递。您可以通过 Beanstalk 控制台的环境详细信息 -> 编辑配置 -> 容器部分来更新它。正如想法:

  • 创建多个环境“生产”、“登台”等
  • 为每个配置相关DJANGO_SETTINGS_MODULE
  • 从中删除 DJANGO_SETTINGS_MODULE 值.ebextensions
  • 将应用程序部署到预先创建的环境