问题
I can see my instance with:
$ 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
but how can I pick out the termination code (48) or description (terminated) when I just want a few fields ?
I have tried a few things including:
$ 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
回答1:
The format is [InstanceId, ImageId, State.Code, State.Name]
, i.e.
$ aws ec2 describe-instances \
--query "Reservations[*].Instances[*].[InstanceId, ImageId, State.code, State.Name]" --o text
Output in this example:
i-03006b8712ac593f9 ami-00c03f7f7f2ec15c3 48 terminated
来源:https://stackoverflow.com/questions/58356635/how-to-get-ec2-instance-state-at-cli