【问题标题】:Deploying Python on Elastic Beanstalk with different configurations for different environments在 Elastic Beanstalk 上部署 Python,针对不同的环境使用不同的配置
【发布时间】:2012-09-03 21:43:54
【问题描述】:

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

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2018-04-01
        • 2015-07-05
        • 2016-12-26
        • 2015-10-23
        • 1970-01-01
        • 1970-01-01
        • 2018-10-26
        • 1970-01-01
        • 2016-07-18
        相关资源
        最近更新 更多