AWS Elastic Beanstalk - 针对不同环境的单独配置

Posted

技术标签:

【中文标题】AWS Elastic Beanstalk - 针对不同环境的单独配置【英文标题】:AWS Elastic Beanstalk - separate configurations for different environments 【发布时间】:2018-04-01 16:12:33 【问题描述】:

我正在使用 Amazon Web Services (AWS) Elastic Beanstalk 来托管我的 Django/Python Web 应用程序。我在 Beanstalk 中创建了两个环境 - productionacceptance(暂存)。 我的网络应用程序源代码在 git 的版本控制中。部署配置文件位于 git 存储库根目录下的 .ebextensions 目录中,如 here 所述。

我的应用程序有 2 个单独的 Django 配置文件:conf/acceptance.pyconf/production.py

如何为每个环境分别设置DJANGO_SETTINGS_CONFIG 环境变量?

我曾尝试在 beanstalk web ui 中对其进行编辑,但在我重新部署时它会重置。我能做什么?

【问题讨论】:

【参考方案1】:

我自己的一个应用程序的设置完全相同。我正在使用 Beanstalk UI 上的 Configuration > Software Configuration > Environment Properties 部分将 DJANGO_SETTINGS_MODULE 设置为 app.settings.production 或 @987654323 @ 取决于环境。这可能是您的 app.conf.productionapp.conf.acceptance

您的某个.ebxtensions 文件是否有一个options_setting 变量在部署期间覆盖了它?

【讨论】:

【参考方案2】:

要为每个环境设置不同的值,您需要在 .ebextensions 文件夹中为每个环境创建 2 个 env 配置文件文件,然后根据您的部署位置只选择正确的一个。这样,您的环境属性 DJANGO_SETTINGS_CONFIG 将在部署期间自动设置,您无需再在 Web ui 中更改它。

示例:

在验收环境中部署:

env-config-acceptance.config

option_settings:
    - option_name: DJANGO_SETTINGS_CONFIG
      value: config.value.acceptance

在生产环境中部署:

env-config-production.config

option_settings:
    - option_name: DJANGO_SETTINGS_CONFIG
      value: config.value.production

【讨论】:

eb deploy命令时是否可以设置特定的配置文件?

以上是关于AWS Elastic Beanstalk - 针对不同环境的单独配置的主要内容,如果未能解决你的问题,请参考以下文章

AWS Elastic Beanstalk CLI 安装错误

text AWS Elastic Beanstalk

HTTPS Elastic Beanstalk (AWS) 到 Android

AWS Elastic Beanstalk 无法担任角色

AWS Elastic Beanstalk

AWS Elastic Beanstalk chown PythonPath 错误