如何通过CircleCI的aws-ecs orb实现ECS蓝绿部署?
使用CircleCI aws-ecs Orb配置ECS蓝绿部署
要通过CircleCI的aws-ecs orb实现蓝绿部署,核心是结合AWS CodeDeploy的配置与orb对应参数,替代默认的滚动更新,具体操作如下:
1. 前提准备
- 在AWS中创建CodeDeploy应用,并为目标ECS服务配置对应的ECS蓝绿部署组,需设置好流量切换规则、旧版本终止策略等。
- CircleCI环境已配置具备ECS和CodeDeploy操作权限的AWS凭证(如
ecs:UpdateService、codedeploy:CreateDeployment等权限)。
2. 修改CircleCI配置文件
在.circleci/config.yml中调用aws-ecs/deploy-service-update job时,添加蓝绿部署相关参数:
jobs: deploy: executor: aws-ecs/default steps: - aws-ecs/deploy-service-update: cluster: 你的ECS集群名称 service: 你的ECS服务名称 task-definition: 你的任务定义ARN # 启用蓝绿部署的核心参数 codedeploy-app-name: 你的CodeDeploy应用名称 codedeploy-deployment-group: 你的ECS蓝绿部署组名称 # 可选:自定义部署描述 codedeploy-deployment-description: "蓝绿部署更新ECS服务" # 可选:设置部署超时(单位:分钟) codedeploy-timeout: 60
3. 参数说明
codedeploy-app-name:AWS CodeDeploy中创建的应用名称。codedeploy-deployment-group:对应ECS服务的蓝绿部署组名称。
指定这两个参数后,aws-ecs orb会自动触发CodeDeploy管理的蓝绿部署流程,不再使用默认的滚动更新。
4. 验证部署
部署触发后,可在AWS CodeDeploy控制台查看进度,CircleCI任务日志也会输出CodeDeploy的部署状态,待流量切换完成、旧版本服务终止后,蓝绿部署即完成。
内容的提问来源于stack exchange,提问作者Gergő Horváth
相关产品推荐
相关产品推荐

