我已经设置了 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
进一步阅读: