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

jde*_*rte 5 amazon-ec2 amazon-web-services aws-cli

我已经设置了 AWS CLI,并且可以使用 aws ec2 describe-instances 来获取返回的 json 对象,该对象描述了我的实例的所有已知详细信息。有没有一种简单的方法来获取一个简短的列表,比如实例名称和实例 ID?

我希望能够在命令行上使用我的实例,但要获取实例 ID(例如 start-instances 之类的命令需要),我必须滚动浏览所有输出。

Ant*_*ace 4

是的,通过--query选项。

此选项允许您从结构中过滤并返回特定元素。有一个特殊的通配符[*]表示法允许您迭代对象列表;我们将使用它来迭代 EC2 实例列表并返回您所需的值。

以 JSON 形式检索 InstanceID、实例标签名称:

aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId, Tags[?Key==`Name`].Value | [0]]'

[
    [
        [
            "i-abcd1234",
            "MyFirstInstance"
        ]
    ],
    [
        [
            "i-efgh5678",
            "MySecondInstance"
        ]
    ]
]
Run Code Online (Sandbox Code Playgroud)

以文本形式检索 InstanceID、实例标签名称:

如果您不想使用 json,还可以添加--output输出文本的选项:

aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId, Tags[?Key==`Name`].Value | [0]]' --output text

i-abcd1234      MyFirstInstance
i-efgh5678      MySecondInstance
Run Code Online (Sandbox Code Playgroud)

进一步阅读: