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

如何使用Elastic Beanstalk搭建多环境并实现一键部署及配置?

用Elastic Beanstalk搭建多环境完整方案

嘿,刚好我之前在项目里用Elastic Beanstalk搭建过dev/stage/prod多环境,完全匹配你的需求,给你一步步拆解方案:

1. 初始化并创建多环境

首先确保你已经安装了EB CLI并配置好AWS凭证,然后在项目根目录执行:

# 初始化EB项目(跟着向导选应用、平台)
eb init
# 创建dev环境(默认单实例,适合开发)
eb create dev
# 创建stage环境(可开启基础负载均衡)
eb create stage --elb-type application
# 创建production环境(建议高可用配置)
eb create production --elb-type application --min-instances 2

三个环境是完全独立的资源集群,互相隔离,不会互相影响。

2. 按环境配置专属环境变量

有两种灵活的方式管理不同环境的变量,按需选择:

方式一:EB CLI命令快速设置(适合临时调整)

针对每个环境单独配置变量,命令直接生效:

# 配置dev环境变量
eb setenv ENV=dev API_URL=https://dev-api.example.com DEBUG=true --environment dev
# 配置stage环境变量
eb setenv ENV=stage API_URL=https://stage-api.example.com DEBUG=false --environment stage
# 配置production环境变量
eb setenv ENV=production API_URL=https://api.example.com DEBUG=false --environment production

方式二:.ebextensions配置文件管理(适合版本控制)

在项目根目录创建.ebextensions文件夹,给每个环境写专属配置文件,比如env-dev.config:

option_settings:
  aws:elasticbeanstalk:application:environment:
    ENV: dev
    API_URL: https://dev-api.example.com
    DEBUG: true

部署时指定配置文件即可让对应环境加载:

eb deploy dev --config env-dev

如果想统一管理,也可以在主配置文件里用环境判断:

option_settings:
  aws:elasticbeanstalk:application:environment:
    DEBUG: 'false'
    API_URL: https://api.example.com
commands:
  01_env_specific_vars:
    command: |
      if [ "$EB_ENVIRONMENT" = "dev" ]; then
        eb setenv ENV=dev API_URL=https://dev-api.example.com DEBUG=true
      fi

3. 参照Dev环境同步定时任务

定时任务通过.ebextensions的cron配置实现,同步步骤很简单:

  1. 先在Dev环境调试好定时任务配置,比如创建.ebextensions/cron-jobs.config:
files:
  "/etc/cron.d/daily-backup":
    mode: "000644"
    owner: root
    group: root
    content: |
      # 每天凌晨1点执行备份脚本
      0 1 * * * root /opt/python/current/app/backup.sh $ENV
commands:
  01_clean_old_cron:
    command: "rm -f /etc/cron.d/daily-backup.bak"
  1. 把这个配置文件提交到Git,部署到stage/prod时会自动生效。如果不同环境的任务逻辑有差异,在脚本里用$ENV变量判断即可:
# backup.sh示例
if [ "$ENV" = "dev" ]; then
  python backup.py --days 7  # Dev只备份7天数据
elif [ "$ENV" = "production" ]; then
  python backup.py --days 30 --upload-s3  # Prod备份30天并上传S3
fi
  1. 要是想快速复制Dev的所有配置到其他环境,用以下命令:
# 导出Dev环境配置
eb config save dev --cfg dev-base-config
# 导入到stage环境
eb config put stage --cfg dev-base-config

4. 单条命令完成部署

EB CLI本身就支持指定环境的一键部署,只要环境已经创建好,直接运行:

# 部署到dev环境
eb deploy dev
# 部署到stage环境
eb deploy stage
# 部署到production环境
eb deploy production

如果要部署特定分支或版本,加参数即可:

# 部署feature分支到dev
eb deploy dev --branch feature/new-function
# 部署指定版本包到prod
eb deploy production --version v1.2.0

额外实用技巧

  • 建议用Git分支对应环境:dev分支部署dev环境,stage分支部署stage,main分支部署prod,减少部署错误。
  • 用eb status dev查看环境状态,eb logs dev快速排查问题。
  • 环境变量优先级:控制台设置的变量会覆盖配置文件,临时调整直接去控制台改更方便。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:21:41