You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据开发/生产部署环境调整Elastic Beanstalk配置?

在Elastic Beanstalk上管理Django开发/生产环境变量的简便方法

1. 用Elastic Beanstalk原生工具设置环境变量

这是最省心的方案,完全不用改代码或配置文件:

  • 控制台操作:打开EB环境的配置页面,找到「软件」选项卡,直接添加生产环境的环境变量,这些变量会自动覆盖.ebextensions里的测试值。
  • CLI操作:执行eb setenv API_KEY=生产密钥 DB_HOST=生产数据库地址,给生产环境单独配置敏感信息,开发环境保持.ebextensions里的测试配置就行。
  • 优势:生产密钥不会出现在代码仓库里,安全性更高,也不用维护多套配置文件。

2. 在.ebextensions里加环境判断

利用EB配置文件支持的Jinja2模板语法,根据环境名称自动切换变量:
创建.ebextensions/env.config文件,内容如下:

option_settings:
  aws:elasticbeanstalk:application:environment:
    DJANGO_SETTINGS_MODULE: myproject.settings
    # 根据环境名称判断加载对应变量
    {% if 'prod' in elasticbeanstalk.environment.name %}
    API_KEY: prod-xxxxxxxxx
    REDIS_URL: prod-redis.example.com
    {% else %}
    API_KEY: test-xxxxxxxxx
    REDIS_URL: test-redis.example.com
    {% endif %}

只要你的生产环境名称带prod(比如myapp-prod),就会自动加载生产变量,开发环境用测试值,不用手动修改配置。

3. 维护多套配置目录,部署前切换

如果开发和生产的配置差异很大(比如生产需要额外的Nginx配置、依赖包版本不同),可以建两套配置目录:

  • 项目里创建.ebextensions-dev和.ebextensions-prod,分别放对应环境的配置文件。
  • 部署前用简单脚本切换:
# 部署开发环境
cp -r .ebextensions-dev/. .ebextensions/
eb deploy dev-environment

# 部署生产环境
cp -r .ebextensions-prod/. .ebextensions/
eb deploy prod-environment

这种方式适合配置差异大的场景,能彻底隔离两套环境的配置。

4. 拆分Django的settings文件

把Django的配置拆分成通用和环境专属两部分:

  • 新建settings/base.py放通用配置,settings/dev.py和settings/prod.py分别放开发和生产的专属配置(比如DEBUG开关、敏感变量)。
  • 在EB环境里设置DJANGO_SETTINGS_MODULE变量:开发环境设为myproject.settings.dev,生产环境设为myproject.settings.prod。
  • 敏感变量还是建议用EB控制台设置,在settings里通过os.environ.get('API_KEY')获取,避免硬编码密钥。

内容的提问来源于stack exchange,提问作者Arham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 03:22:56