我使用Amazon Web Services(AWS)Elastic Beanstalk来托管我的Django / Python Web应用程序。我在Beanstalk中创建了两个环境 - production
和acceptance
(暂存)。
我的网络应用源代码在git中进行版本控制。部署配置文件位于git存储库根目录的.ebextensions
目录中,如here所述。
我的应用程序有两个单独的Django配置文件:conf/acceptance.py
和conf/production.py
。
如何为每个环境单独设置DJANGO_SETTINGS_CONFIG
环境变量?
我已尝试在beanstalk web ui中编辑它,但在重新部署时它会重置。我该怎么办?
答案 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