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

时间:2012-09-11 01:38:57

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

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

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

"aws:elasticbeanstalk:container:python:environment":
  DJANGO_SETTINGS_MODULE: "settings"
  SERVER_ROOT: "/opt/python/current/app/"

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

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

2 个答案:

答案 0 :(得分:0)

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

  • 创建多个环境"制作"," staging"等
  • 为每个人配置相关的DJANGO_SETTINGS_MODULE
  • .ebextensions
  • 中删除DJANGO_SETTINGS_MODULE值
  • 将应用程序部署到预先创建的环境

答案 1 :(得分:0)

我过去曾对此进行过一些挖掘,似乎他们希望您使用eb branch来配置不同的环境,然后在eb客户端级别的本地选项设置中以不同方式配置选项(当您初始化时)分支和东西)。

当你考虑它时,环境配置(即DJANGO_SETTINGS_MODULE)应该与应用程序代码分开管理,所以我只是假设将它保留在ebextensions之外并在我导航到新环境时进行设置。如果我切换到现有的,需要确保为我想要播放的env正确设置了值。