![是否有一个命令可以列出导致简短输出的 AWS 实例?](https://linux22.com/image/670362/%E6%98%AF%E5%90%A6%E6%9C%89%E4%B8%80%E4%B8%AA%E5%91%BD%E4%BB%A4%E5%8F%AF%E4%BB%A5%E5%88%97%E5%87%BA%E5%AF%BC%E8%87%B4%E7%AE%80%E7%9F%AD%E8%BE%93%E5%87%BA%E7%9A%84%20AWS%20%E5%AE%9E%E4%BE%8B%EF%BC%9F.png)
我已经设置了 AWS CLI,可以使用 aws ec2 describe-instances 获取返回的 json 对象,该对象描述了我的实例的所有已知详细信息。有没有一种简单的方法可以获取一个简短的列表,例如实例名称和实例 ID?
我希望能够在命令行上使用我的实例,但是为了获取实例 ID(start-instances 等命令需要),我必须滚动浏览所有输出。
答案1
是的,通过--query
选项。
此选项允许您从结构中筛选并返回特定元素。有一个特殊的通配符[*]
表示法允许您迭代对象列表;我们将使用它来迭代 EC2 实例列表并返回您想要的值。
以 JSON 格式检索 InstanceID、实例标签名称:
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
进一步阅读: