CI/CD流程中如何等待AWS ElasticBeanstalk环境更新完成后执行下一步
解决方法
AWS CLI原生自带了elasticbeanstalk wait系列子命令,无需自行实现等待逻辑,就能让任务阻塞直到Elastic Beanstalk环境完成对应操作。
你可以按以下顺序调整流水线的部署步骤:
- 先执行原有的环境更新命令,触发EB部署:
aws elasticbeanstalk update-environment --environment-name my-env \ --version-label my-app-version-2
- 紧接着执行wait命令,等待部署完全完成:
aws elasticbeanstalk wait environment-updated --environment-name my-env
这个命令会自动后台轮询EB环境的状态,直到环境没有正在进行的变更任务、状态变为Ready时才会正常返回,若部署过程中出现错误也会提前返回非零退出码中断流水线,完全适配CI/CD场景的要求。
如果需要调整最大等待时长,可以额外加--cli-connect-timeout参数自定义超时秒数,比如设置最多等待30分钟(1800秒)的写法如下:
aws elasticbeanstalk wait environment-updated --environment-name my-env --cli-connect-timeout 1800
你可以把这个等待逻辑插入到你现有流水线的Deploy Server和Deploy WebApp步骤之间,确保服务端部署完全生效后再推进前端部署,避免出现前后端版本不兼容的问题。
内容的提问来源于stack exchange,提问作者Peter
相关产品推荐
相关产品推荐

