如何通过AWS CLI筛选Systems Manager Run Command非成功实例
解决AWS CLI筛选Run Command超时/非成功实例的问题
场景1:筛选所有非"Success"状态的实例调用
使用list-command-invocations结合--query参数过滤状态不等于Success的结果,建议指定--command-id缩小范围(避免返回所有历史命令):
aws ssm list-command-invocations --command-id "你的命令ID" --query "CommandInvocations[?Status != 'Success']" --output table
如需更精简的输出(仅展示关键字段),可调整--query指定输出字段:
aws ssm list-command-invocations --command-id "你的命令ID" --query "CommandInvocations[?Status != 'Success'].{InstanceId: InstanceId, Status: Status, StatusDetails: StatusDetails}" --output table
场景2:精准筛选状态详情为"DeliveryTimedOut"的实例调用
直接针对StatusDetails字段过滤,匹配DeliveryTimedOut的记录:
aws ssm list-command-invocations --command-id "你的命令ID" --query "CommandInvocations[?StatusDetails == 'DeliveryTimedOut']" --output table
同样可指定输出关键字段:
aws ssm list-command-invocations --command-id "你的命令ID" --query "CommandInvocations[?StatusDetails == 'DeliveryTimedOut'].{InstanceId: InstanceId, Status: Status, StatusDetails: StatusDetails}" --output table
关键注意事项
- 替换命令中的
"你的命令ID"为实际AWS-RunPatchBaseline命令的ID,可通过aws ssm list-commands获取目标命令ID。 --output table用于优化可读性,也可替换为json或text格式适配不同需求。- 若不指定
--command-id,命令会返回所有SSM命令的调用记录,可能导致结果冗余或偏离预期。
内容的提问来源于stack exchange,提问作者Shunmugam A
相关产品推荐
相关产品推荐

