如何在 CLI 中获取 ec2 实例状态?

Mic*_*ant 2 amazon-web-services aws-cli

我可以通过以下方式查看我的实例:

$ aws ec2 describe-instances --output text
RESERVATIONS    193693970645    r-06e25c9702ca1a586
INSTANCES       0       x86_64          False   True    xen     ami-00c03f7f7f2ec15c3   i-03006b8712ac593f9     t2.micro        mdaws   2019-10-11T12:08:56.000Z                    /dev/xvda       ebs     User initiated (2019-10-11 12:51:09 GMT)        hvm
CAPACITYRESERVATIONSPECIFICATION        open
CPUOPTIONS      1       1
HIBERNATIONOPTIONS      False
MONITORING      disabled
PLACEMENT       us-east-2c              default
STATE   48      terminated
STATEREASON     Client.UserInitiatedShutdown    Client.UserInitiatedShutdown: User initiated shutdown
Run Code Online (Sandbox Code Playgroud)

但是当我只想要几个字段时,如何挑选终止代码(48)或描述(终止)?

我尝试过一些事情,包括:

$ aws ec2 describe-instances --query "Reservations[*].Instances[*].[InstanceId, ImageId, State]" --output text

'str' object has no attribute 'items'

$ aws ec2 describe-instances --query "Reservations[*].Instances[*].[InstanceId, ImageId, State[*]]" --output text
i-03006b8712ac593f9     ami-00c03f7f7f2ec15c3   None

$ aws ec2 describe-instances --query "Reservations[*].Instances[*].[InstanceId, ImageId, State[*].[Code]]" --output text
i-03006b8712ac593f9     ami-00c03f7f7f2ec15c3   None

$ aws ec2 describe-instances --query "Reservations[*].Instances[*].[InstanceId, ImageId, State[*].[Code[*]]]" --output text
i-03006b8712ac593f9     ami-00c03f7f7f2ec15c3   None
Run Code Online (Sandbox Code Playgroud)

Mic*_*ant 5

格式为[InstanceId, ImageId, State.Code, State.Name],即

$ aws ec2 describe-instances \
--query "Reservations[*].Instances[*].[InstanceId, ImageId, State.code, State.Name]" --o text
Run Code Online (Sandbox Code Playgroud)

本例中的输出:

i-03006b8712ac593f9     ami-00c03f7f7f2ec15c3   48    terminated
Run Code Online (Sandbox Code Playgroud)