CodeDeploy蓝绿部署报目标组未绑定Auto Scaling组问题求助
CodeDeploy蓝绿部署目标组挂载校验报错排查
报错信息
The following validation error occurred: Target group not attached to the Auto Scaling group (Service: AmazonAutoScaling; Status Code: 400; Error Code: ValidationError; Request ID: cd58091b-fe83-4dcf-b090-18c3b3d2dbbc; Proxy: null)
已配置的目标组相关权限:
codedeploy:GetDeploymentelasticloadbalancing:DescribeTargetGroupsautoscaling:AttachLoadBalancersautoscaling:AttachLoadBalancerTargetGroups
缺失配置&排查路径
1. 补全缺失的IAM权限
现有权限仅覆盖挂载操作、基础资源查询能力,缺少校验流程必需的权限,是该报错的最常见诱因,需补充以下权限:
autoscaling:DescribeLoadBalancerTargetGroups:CodeDeploy调用挂载接口后,需要通过该接口查询目标组和ASG的实际绑定状态,无该权限时无法确认挂载结果,直接抛出校验失败elasticloadbalancing:DescribeLoadBalancers、elasticloadbalancing:DescribeTargetHealth:校验负载均衡器、目标组的可用状态与健康状态,避免向不可用资源发起挂载请求codedeploy:GetDeploymentConfig:读取部署组的流量切换、替换环境配置参数,缺失会导致资源匹配校验环节中断
额外注意:如果使用跨账号角色部署,需确认CodeDeploy服务角色的信任策略已添加codedeploy.amazonaws.com服务主体,允许服务代入角色执行资源操作。
2. 非权限类配置校验
补全权限后仍报错的,按以下顺序核查资源配置:
- 检查目标组与ASG的可用区匹配关系:ASG仅支持挂载同可用区下的ALB目标组,跨可用区挂载会被ASG接口直接拒绝
- 检查目标组类型适配性:
instance类型目标组需确认ASG启动模板配置支持实例ENI自动关联;ip类型目标组需确认ASG已开启对应IP地址模式支持 - 手动验证挂载能力:直接在ASG控制台手动绑定目标组,确认ASG未达到目标组挂载数量上限、未处于暂停扩缩容的锁定状态
- 检查部署组流量配置:确认蓝绿部署配置中选择的替换环境目标组未被其他运行中ASG占用
- 检查目标组健康检查配置:目标组健康检查端口、协议需与ASG实例实际服务监听配置一致,否则即使挂载成功也会被CodeDeploy判定为无效挂载
验证方法
权限与配置调整完成后,可通过AWS CLI手动执行挂载命令验证有效性:
aws autoscaling attach-load-balancer-target-groups --auto-scaling-group-name <替换为你的ASG名称> --target-group-arns <替换为你的目标组ARN>
命令执行无返回错误即可重新触发CodeDeploy部署。
内容的提问来源于stack exchange,提问作者gagan bhattarai
相关产品推荐
相关产品推荐

