如何从AWS EC2 describe-instances获取公共DNS名称

Mac*_*zuk 0 bash json amazon-ec2 amazon-web-services jq

我试图做一个简单的脚本,查询我的ec2实例,并获取与我的过滤器匹配的实例的公共dns名称。我的第一枪:

#!/bin/bash

aws ec2 describe-instances \
    --filters "Name=tag:app,Values=swarm-cluster" \
              "Name=tag:role,Values=manager" \
    --query "Reservations[*].Instances[*].PublicDnsName"
Run Code Online (Sandbox Code Playgroud)

几乎可以用,但是我得到了一些难看的东西:

[
    [
        ""
    ],
    [
        "ec2-xxx-xxx-xxx-xxx.venus-central-1.compute.amazonaws.com"
    ]
]
Run Code Online (Sandbox Code Playgroud)

我只想列出FQDN,每行一个。如何格式化输出?我知道,我可以使用tr,sed等来完成此操作,但我想使用更复杂的方法。:)

Mic*_*ale 5

您只需追加--output text到CLI调用即可获取文本输出。

参考-https: //docs.aws.amazon.com/cli/latest/userguide/cli-usage-output.html