是否有命令列出导致短输出的AWS实例?

我设置了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 

进一步阅读:

  • AWS CLI文档 – 控制命令输出