AWS Elastic Beanstalk Configuration Deployment完整工作流是怎样的?
Configuration Deployment 完整工作流及与Instance Deployment的差异
触发场景
仅当修改Elastic Beanstalk环境配置参数且无应用代码变更时,才会触发Configuration Deployment,常见触发操作包括:
- 修改环境变量、实例安全组、负载均衡规则
- 调整实例规格、扩容缩容阈值
- 安装平台小版本补丁、修改服务启停配置
完整执行流程(基于Amazon Linux 2平台实测)
- 配置校验阶段:Elastic Beanstalk后台校验配置变更合法性,确认无冲突后将新配置下发到目标实例
- 专属钩子执行阶段:仅执行两类钩子,分别是平台内置的
/opt/elasticbeanstalk/hooks/configdeploy/目录下的钩子,以及用户自定义的放在.platform/confighooks/对应生命周期目录下的钩子 - 配置生效阶段:更新实例上的环境参数、关联资源权限、服务配置,若配置变更要求则重启对应服务
- 健康校验阶段:验证配置生效后实例健康状态符合预期,标记部署完成
核心差异说明
和Instance Deployment相比,两类部署的核心区别如下:
- 钩子执行范围不同:Configuration Deployment不执行
.platform/hooks/下的常规部署钩子,仅执行专属的confighooks目录下的钩子 - 配置段执行逻辑不同:
commands和container_commands配置段仅在Instance Deployment阶段运行,Configuration Deployment阶段会完全跳过这两个配置段的执行,这也是此前测试推测不成立的核心原因 - 执行逻辑不同:Configuration Deployment不需要拉取应用代码、执行构建逻辑、重新部署应用包,仅做配置层面的更新,耗时远短于Instance Deployment
实操建议
如果需要在配置变更时也运行自定义脚本,直接将脚本放到.platform/confighooks/下的对应生命周期目录即可,目录结构和常规部署的.platform/hooks/完全一致,支持prebuild、predeploy、postdeploy三个阶段。
内容的提问来源于stack exchange,提问作者gowthz
相关产品推荐
相关产品推荐

