使用AWS CodeDeploy时因绿群无实例导致部署失败是什么原因?
问题结论
你遇到的The deployment failed because no instances were found in your green fleet报错不需要额外配置替换实例,绝大多数情况是蓝绿部署的匹配规则、实例标签或权限配置异常导致的,按以下步骤排查即可:
排查步骤
- 首先确认CodeDeploy部署组的绿舰队来源配置:
- 若你选择「使用现有实例」作为绿舰队来源,检查绿舰队配置的标签与你现有运行EC2的标签完全匹配,大小写、空格均不能有差异
- 若你选择「自动复制蓝实例配置」,检查关联的Auto Scaling组配置是否正常,确认不存在EC2启动配额限制、子网/安全组配置错误导致新实例启动失败的问题
- 检查现有EC2的归属:蓝绿部署模式下同一实例不能同时归属蓝、绿两个舰队,若你的EC2已被标记为蓝舰队实例,自然无法被识别为绿舰队可用资源
- 验证CodeDeploy代理状态:登录EC2执行
systemctl status codedeploy-agent,确认代理处于正常运行状态,代理离线的实例不会被计入可用舰队 - 检查服务角色权限:确认CodeDeploy的服务角色已配置
ec2:DescribeInstances、autoscaling:*类权限,权限不足无法读取EC2信息时也会触发该报错 - 若你预发布环境仅配置了1台EC2,可临时将部署模式切换为就地部署验证整体部署链路是否正常,排除链路问题后再切回蓝绿部署即可
报错截图


内容的提问来源于stack exchange,提问作者HelpTheNoob
相关产品推荐
相关产品推荐

