ECS蓝绿部署(CodePipeline)遇ELB更新错误求助
解决ECS蓝绿部署中ELB更新失败的问题
错误信息
The ELB could not be updated due to the following error: Primary taskset target group must be behind listener arn:aws:elasticloadbalancing:us-east-1:XXX:listener/app/ecs-t-XXX/XXX/XXX.
问题分析
这个错误的核心是:CodeDeploy执行蓝绿部署时,发现ECS服务的主任务集(Primary TaskSet)对应的目标组未关联到指定的生产流量监听器,也就是错误提示中的Listener ARN。
排查与解决步骤
检查ECS Service2的负载绑定关系
确认Service2对应的target-2目标组,已正确关联到错误提示中的监听器(即你配置的PROD 8080端口监听器)。蓝绿部署要求初始"蓝环境"目标组必须挂载在生产流量入口的监听器下,TEST 8088监听器仅用于临时挂载"绿环境"做验证。核对CodeDeploy部署组配置
- 进入CodeDeploy部署组页面,确认生产流量监听器的ARN和错误提示中的完全一致。
- 确认部署组中指定的蓝环境目标组就是Service2对应的target-2,绿环境目标组为另一个用于测试的目标组(若为自动创建则无需手动指定,但需确保监听器关联正确)。
验证ECS服务的任务集配置
进入ECS控制台的Service2详情页,查看任务集列表中的Primary任务集,确认其关联的目标组是target-2,且该目标组在负载均衡器的监听器规则中,确实绑定到了错误提示的生产监听器上。检查监听器规则优先级
确保生产监听器(8080)的规则优先级高于测试监听器(8088),避免流量路由冲突导致的识别问题。
内容的提问来源于stack exchange,提问作者Peter
相关产品推荐
相关产品推荐

