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 中创建了两个环境 - production
和 acceptance
(暂存)。
我的网络应用程序源代码在 git 的版本控制中。部署配置文件位于 git 存储库根目录下的 .ebextensions
目录中,如 here 所述。
我的应用程序有 2 个单独的 Django 配置文件:conf/acceptance.py
和 conf/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.production
和 app.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 安装错误