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

时间:2017-10-20 13:17:34

标签: django amazon-web-services configuration elastic-beanstalk amazon-elastic-beanstalk

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

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

如何为每个环境单独设置DJANGO_SETTINGS_CONFIG环境变量?

我已尝试在beanstalk web ui中编辑它,但在重新部署时它会重置。我该怎么办?

2 个答案:

答案 0 :(得分:0)

我对自己的应用程序设置完全相同。我正在使用配置>软件配置> Beanstalk UI上的Environment Properties部分将DJANGO_SETTINGS_MODULE设置为app.settings.production或app.settings.staging,具体取决于环境。 (可能是app.conf.production和app.conf.acceptance为你)

可能是你的.ebxtensions文件中有一个" options_setting"在部署期间覆盖此变量的变量?

答案 1 :(得分:0)

要为每个环境设置不同的值,您需要在.ebextensions文件夹中为每个环境创建2个环境配置文件,然后仅根据部署位置选择正确的文件。这样,您的环境属性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