【问题标题】:Is there a way to list CloudFront distributions by tag without downloading them all using ListDistributions?有没有办法按标签列出 CloudFront 分配而不使用 ListDistributions 全部下载?
【发布时间】:2021-04-28 14:13:22
【问题描述】:

This question 类似,但唯一的答案是获取 all 分布列表并在本地过滤它们,这不是我想要的。

This page 暗示可能可以按标签过滤(“您可以根据添加的标签搜索和过滤资源”),但我就是想不通怎么样

【问题讨论】:

    标签: amazon-web-services amazon-cloudfront


    【解决方案1】:

    我只能想到一种方法,因为aws cloudfront 不直接支持按标签获取分发。 我们可以使用 resourcegroupstaggingapi cli 来获取所有云端的 ResourceARNs 并使用 jqsed 提取 DistributionIds

    例如:标签 ApplicationID=APP1111

    aws  resourcegroupstaggingapi get-resources --tag-filters Key=ApplicationID,Values=APP1111 --resource-type-filters 'cloudfront' --tags-per-page 100 | jq -r ".ResourceTagMappingList[].ResourceARN" | sed 's:.*/::'
    

    我们可以进一步使用 xargs 并为每个 Id 执行 get-distribution。

    aws  resourcegroupstaggingapi get-resources --tag-filters Key=ApplicationID,Values=APP1111 --resource-type-filters 'cloudfront' --tags-per-page 100 | jq -r ".ResourceTagMappingList[].ResourceARN" | sed 's:.*/::' | xargs -I {} aws cloudfront  get-distribution --id {}
    

    【讨论】:

    • 嗯,aws resourcegroupstaggingapi get-resources 似乎根本没有返回任何 Cloudfront 发行版。 This page 说:“CloudFront 目前不支持标签编辑器和资源组”。可能是这个原因吗?
    • 我已经测试了这两个命令。它确实将标签为ApplicationID 的所有云端分发ID 返回为APP1111
    • 那我肯定做错了什么。我的意思是,即使没有过滤器,我在aws resourcegroupstaggingapi get-resources 的响应中也看不到任何云端分布,只有一些arn:aws:ec2 资源,而我显然有一些aws cloudfront list-distributions 列出的资源。你知道为什么吗?
    • 啊,明白了。区域混淆 ;) 非常感谢!现在接受答案!!!
    • 是的,确实,我认为该区域应该是us-east-1,否则您将看不到您的发行版(可能是因为 Cloudfront 发行版是全球性的,但仍需要在某个地方创建,us-east-1 基本上是 aws默认区域)
    【解决方案2】:

    添加到 Balu 的出色答案中,如果您在设置 aws-cli 时指定了默认区域,并且该区域 不是 us-east-1,那么它将不起作用(您会看到一个ResourceTagMappingList 的空数组。

    请务必在命令末尾添加--region us-east-1,如下所示:

    aws resourcegroupstaggingapi get-resources --tag-filters Key=tagName,Values=tagValue --resource-type-filters 'cloudfront' --tags-per-page 100 --region us-east-1
    

    【讨论】:

      猜你喜欢
      • 2011-02-23
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      • 2021-06-09
      • 1970-01-01
      • 1970-01-01
      • 2018-06-05
      • 2016-03-07
      相关资源
      最近更新 更多