Cloud Custodian Policy启动EC2实例动作失效求助
Cloud Custodian EC2 Start动作未生效排查方案
1. 验证实例筛选结果
策略中的两个标签过滤器为逻辑与关系,需确认目标EC2实例同时满足:
tag:applicationid精确等于'7461'(注意引号格式,确保值的类型匹配)tag:environment精确等于nonprod
可先通过 dry-run 模式验证筛选结果:
custodian run --dryrun your-policy.yml --output-dir ./output
查看输出目录的资源清单,确认是否有符合条件的EC2实例被选中。
2. 检查实例当前状态
Cloud Custodian的start动作仅对**已停止(stopped)**状态的实例生效,若实例处于运行中(running)、终止中(terminating)等非停止状态,动作不会执行。
可通过AWS CLI查询实例状态:
aws ec2 describe-instances --filters "Name=tag:applicationid,Values=7461" "Name=tag:environment,Values=nonprod" --query 'Reservations[*].Instances[*].[InstanceId,State.Name]'
3. 确认权限配置
确保Cloud Custodian执行角色拥有以下EC2权限:
ec2:StartInstancesec2:DescribeInstances(用于资源筛选)ec2:DescribeTags(用于标签过滤)
检查IAM角色策略是否包含上述权限,避免因权限不足导致动作静默失败。
4. 分析详细日志
启用 verbose 模式获取更详细的执行日志:
custodian run your-policy.yml -v --output-dir ./detailed-logs
重点查看日志中:
- 资源筛选阶段的匹配实例数量
- 动作执行阶段的操作记录
- 是否存在隐性的权限或状态检查失败信息
5. 验证策略语法细节
- 确认标签键是否完全匹配(AWS标签键大小写敏感,如
ApplicationId与applicationid会被视为不同键) - 若标签值为数字类型,去掉
value字段的引号(如将'7461'改为7461),避免类型不匹配导致筛选失败
内容的提问来源于stack exchange,提问作者Supritha.M. Bhatt
相关产品推荐
相关产品推荐

