我想使用命令行确保实例通过了两个状态检查(系统/实例可达性检查)。
当我运行它时
ec2-describe-instance-status
ec2-describe-instance-status XX($InstanceID)
它会显示正在运行的实例,如
INSTANCE $InstanceID $REGION running 16
但是当我尝试添加过滤器以确保实例通过状态检查时
ec2-describe-instance-status XX($InstanceID) --filter instance-status.reachability=passed
ec2-describe-instance-status XX($InstanceID) --filter "instance-status.reachability=passed"
ec2-describe-instance-status --filter instance-status.reachability=passed
什么都没有返回。
我已经仔细检查了实例是否运行良好并且实际上通过了 2 次状态检查,但为什么在应用过滤器后没有返回任何内容?
更新:
作为对 Rico 的回应,我尝试了 -v
选项
ec2-describe-instance-status -v
返回 instanceStatusSet 中的一项,带有字段
<item>
<instanceId>i-XXX</instanceId>
<availabilityZone>us-east-1d</availabilityZone>
<instanceState>
<code>16</code>
<name>running</name>
</instanceState>
</item>
同时
ec2-describe-instance-status --filter instance-status.reachability=passed -v
ec2-describe-instance-status --filter "instance-status.reachability=passed" -v
两者都返回一个空的 instanceStatusSet...
最佳答案
改为使用 AWS Command Line Interface 统一工具。
aws ec2 describe-instance-status --instance-ids i-01234567 --filters Name=instance-status.reachability,Values=passed
{
"InstanceStatuses": [
{
"InstanceId": "i-01234567",
"InstanceState": {
"Code": 16,
"Name": "running"
},
"AvailabilityZone": "us-west-2c",
"SystemStatus": {
"Status": "ok",
"Details": [
{
"Status": "passed",
"Name": "reachability"
}
]
},
"InstanceStatus": {
"Status": "ok",
"Details": [
{
"Status": "passed",
"Name": "reachability"
}
]
}
}
]
}
关于amazon-web-services - 使用带有 EC2 API 的过滤器检查实例状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21642542/