我设置了AWS CLI,可以使用aws ec2 describe-instances获取返回的json对象,该对象描述了我的实例的所有已知详细信息。 有一个简单的方法来得到一个简短的列表,如实例名称和实例ID?
我想能够在命令行上使用我的实例,但是要获取实例ID(像start-instances所要求的那样的命令),我必须滚动浏览所有输出。
是的,通过--query选项。
此选项允许您过滤并返回结构中的特定元素。 有一个特殊的通配符[*]符号,允许您遍历对象列表; 我们将使用它遍历EC2实例的列表,并返回所需的值。
检索InstanceID,实例标记名称为JSON:
aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId, Tags[?Key==`Name`].Value | [0]]' [ [ [ "i-abcd1234", "MyFirstInstance" ] ], [ [ "i-efgh5678", "MySecondInstance" ] ] ]
检索InstanceID,实例标签名称为文本:
如果你不想使用json,你也可以添加--output选项来输出文本:
aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId, Tags[?Key==`Name`].Value | [0]]' --output text i-abcd1234 MyFirstInstance i-efgh5678 MySecondInstance
进一步阅读: