How to get ec2 instance state at CLI?

て烟熏妆下的殇ゞ 提交于 2021-01-20 09:11:51

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!