12

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

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

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

但是,如果您想拥有多个环境,例如 staging 和 prod,您目前必须更换配置文件。更糟糕的是,您打算如何将其保留在源代码控制树中,以用于暂存等共享环境?看来每次推送都会需要这些配置环境设置。

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

4

2 回答 2

0

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

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

于 2014-10-31T21:25:44.547 回答
0

没试过,不过好像DJANGO_SETTINGS_MODULE不能通过配置文件传递,而是通过容器自己的参数传递。您可以通过 Beanstalk 控制台的 Environment Details -> Edit Configuration -> Container 部分对其进行更新。就像想法一样:

  • 创建多个环境“生产”、“暂存”等
  • 用相关DJANGO_SETTINGS_MODULE值配置每个
  • 删除 DJANGO_SETTINGS_MODULE 值.ebextensions
  • 将应用程序部署到预先创建的环境
于 2013-01-21T01:31:38.620 回答