amazon-web-services - 如何从 ec2 describe-instances 中提取特定的键值标签

标签 amazon-web-services amazon-ec2 aws-cli jq

我从描述实例中得到以下信息:

{
    "Reservations": [
        {
            "Instances": [
                {
                    "PublicDnsName": "ec2-xxxxx.amazonaws.com",
                    "Tags": [
                        {
                            "Key": "Name",
                            "Value": "yyyyy"
                        },
                        {
                            "Key": "budget_cluster",
                            "Value": "zzzzz"
                        },
                        {
                            "Key": "poc",
                            "Value": "aaaaaaa"
                        }
                    ]
                }
            ]
        }
    ]
}

对于每个实例,我想提取 PublicDnsName 和“budget_cluster”标签键的值。如何使用 ec2 describe-instances 执行此操作或与 jq ?

最佳答案

修改弗雷德里克的回答:

aws ec2 describe-instances --output text --query \
   'Reservations[].Instances[].[PublicDnsName, Tags[?Key==`budget_cluster`].Value | [0]]'

会产生:
ec2-xxxxx.amazonaws.com zzzzz
ec2-bbbbb.amazonaws.com yyyyy

我已将输出更改为文本,这会删除尽可能多的格式并使用 | [0] 选择单个标记值。因为无论如何每个实例都只会有一个。最后,我删除了 []最后,以便结果列表不会变平。这样在文本输出中,每个条目都将在自己的行上。

您还可以通过仅选择实际具有该标签的实例来使其更加健壮。您可以通过进一步修改 --query 来实现这一点。参数,但在这种情况下最好使用 --filters参数,因为它执行服务端过滤。特别是你想要 tag-key过滤器:--filters "Name=tag-key,Values=budget_cluster"
aws ec2 describe-instances --output text \
    --filters "Name=tag-key,Values=budget_cluster" --query \
   'Reservations[].Instances[?Tags[?Key==`budget_cluster`]].[PublicDnsName, Tags[?Key==`budget_cluster`].Value | [0]]'

仍然会产生:
ec2-xxxxx.amazonaws.com zzzzz
ec2-bbbbb.amazonaws.com yyyyy

但是通过网络,您只会获得您关心的实例,从而节省带宽费用。

关于amazon-web-services - 如何从 ec2 describe-instances 中提取特定的键值标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39902587/

相关文章:

amazon-web-services - 需要制作 AWS IAM 角色的相同副本(包括它拥有的策略和信任关系)

php - 尝试使用 PHP 从 HTML 中提取数据时出错

java - 无法从 Docker EC2 环境中链中的任何提供商加载 AWS 凭证

javascript - 如何循环获取 Amazon S3 对象?

postgresql - Flask 应用程序 AWS Postgres 连接在本地工作但在 Heroku 上不工作

amazon-web-services - EC2 key 对更改

amazon-web-services - AWS EC2 : Safe way to get host public key

aws-cli - 当我在 Windows 上使用 aws cli 时,SSL 验证失败

aws-cloudformation - 从模板创建新堆栈时如何显示 RDS 实例快照 ID 的下拉列表?

amazon-web-services - 所有 s3 存储桶上的 AWS s3 存储桶批量加密