无需jq通过AWS CLI获取EC2实例InstanceStatus/SystemStatus可达性状态值
无jq环境下通过AWS CLI获取EC2实例可达性状态单值方案
AWS CLI原生内置JMESPath查询能力,无需依赖jq等第三方工具,搭配--query参数和--output text即可直接返回纯文本状态值。
具体命令示例
1. 查询实例本身(InstanceStatus)的可达性状态
aws ec2 describe-instance-status --instance-id i-066fxxxxx --query 'InstanceStatuses[*].InstanceStatus.Status' --output text
直接返回passed/failed/initializing等对应状态值。
2. 查询系统(SystemStatus)的可达性状态
aws ec2 describe-instance-status --instance-id i-066fxxxxx --query 'InstanceStatuses[*].SystemStatus.Status' --output text
3. 包含已停止实例的查询
默认describe-instance-status不会返回已停止实例的状态,如需覆盖该逻辑,添加--include-all-instances参数即可:
aws ec2 describe-instance-status --instance-id i-066fxxxxx --include-all-instances --query 'InstanceStatuses[*].InstanceStatus.Status' --output text
原命令问题说明
你之前使用的--filters参数仅会返回匹配过滤条件的结果,所以当状态不为passed时会返回空数组,无法拿到实际状态值,直接通过--query指定字段路径即可避免该问题。
内容的提问来源于stack exchange,提问作者user63898
相关产品推荐
相关产品推荐

