首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS-CLI -按名称标签查找ELB

AWS-CLI -按名称标签查找ELB
EN

Server Fault用户
提问于 2020-08-05 11:57:50
回答 2查看 3.7K关注 0票数 4

我正在试图找到一个负载均衡器,它有一个具有某些值的Name标记。

代码语言:javascript
复制
aws elb describe-load-balancers --query 'LoadBalancerDescriptions[*].LoadBalancerName'

我正在迭代结果并运行:

代码语言:javascript
复制
aws elb describe-tags \
--load-balancer-names some-load-balancer \
--query 'TagDescriptions[?Tags[?Key==`Name`].Value == `my-desired-name-value`]'

结果始终是空的,尽管如下:

代码语言:javascript
复制
aws elb describe-tags \
--load-balancer-names some-load-balancer \
--query 'TagDescriptions[].Tags[?Key==`Name`].Value'

返回my-desired-name-value。我想得到标签的整个对象,只使用JMESPath,我不能在这里使用jq

期望产出:

代码语言:javascript
复制
{
    "TagDescriptions": [
        {
            "LoadBalancerName": "some-load-balancer",
            "Tags": [
                {
                    "Key": "SomeTag",
                    "Value": "SomeValue"
                },
                {
                    "Key": "Name",
                    "Value": "my-desired-name-value"
                }
            ]
        }
    ]
}

我的JMESPath查询有什么问题?

EN

回答 2

Server Fault用户

发布于 2020-08-05 13:39:47

您正在尝试使用--query来执行--filter的角色,不幸的是,describe-tags不支持--filter选项。

--query选项允许您选择在响应中返回哪些字段。当可用时,--filter允许您选择要返回的资源。我们将更详细地描述这里

您可以使用jq来执行过滤器的功能。我强烈推荐它,因为AWS没有为所有的CLI命令实现--filter选项。

对于您的例子,请尝试如下:

代码语言:javascript
复制
aws elb describe-tags --load-balancer-names some-load-balancer \
| jq -r '.TagDescriptions[] |select (.Tags[].Value=="my-desired-name-value")'

更复杂的是对标记键和值进行筛选:

代码语言:javascript
复制
aws elb describe-tags --load-balancer-names some-load-balancer \
| jq -r '.TagDescriptions[] | . as $i \
| (select ($i.Tags[].Value=="my-desired-name-value")) and (select ($i.Tags[].Key=="Name")) \
| $i'

输出

代码语言:javascript
复制
{
  "LoadBalancerName": "some-load-balancer",
  "Tags": [
    {
      "Key": "Type",
      "Value": "classic"
    },
    {
      "Key": "Name",
      "Value": "my-desired-name-value"
    }
  ]
}

参考资料

票数 5
EN

Server Fault用户

发布于 2021-03-23 12:08:14

aws elbv2描述-标签-资源-arns\ jq,-r '.TagDescriptions[] .(选择($ $i .Value.Value test(“.-05-myteam.-.”)和(选择($i.Tags[].Key==“Name”)\x $i.ResourceArn‘

票数 -2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1028956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档