Amazon web services 有没有一种方法可以通过标签列出CloudFront发行版,而不用使用ListDistributions下载它们?
类似,但唯一的答案是获取所有发行版的列表并在本地进行过滤,这不是我要寻找的Amazon web services 有没有一种方法可以通过标签列出CloudFront发行版,而不用使用ListDistributions下载它们?,amazon-web-services,amazon-cloudfront,Amazon Web Services,Amazon Cloudfront,类似,但唯一的答案是获取所有发行版的列表并在本地进行过滤,这不是我要寻找的 提示可以按标签过滤(“您可以根据添加的标签搜索和过滤您的资源”),但我就是不知道怎么做 我只能想到一种方法,因为aws cloudfront不直接支持通过标记获取分发。 我们可以使用ResourceGroupStagingAPIcli获取所有cloudfront的ResourceArn,并使用jq和sed提取分发ID Ex:Tag ApplicationID=APP1111 aws resourcegroupstagg
提示可以按标签过滤(“您可以根据添加的标签搜索和过滤您的资源”),但我就是不知道怎么做 我只能想到一种方法,因为
aws cloudfront
不直接支持通过标记获取分发。
我们可以使用ResourceGroupStagingAPI
cli获取所有cloudfront的ResourceArn,并使用jq
和sed
提取分发ID
Ex:Tag 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分发
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 ResourceGroupStagingAPI get resources
似乎根本没有返回任何Cloudfront发行版。说明:“CloudFront当前不支持标记编辑器和资源组”。这可能是原因吗?我已经测试了这两个命令。它确实返回了所有带有标签ApplicationID
的cloudfront分发ID,作为APP1111
。我肯定是做错了什么。我的意思是,即使没有过滤器,我在aws ResourceGroupStagingAPI get resources
的响应中也看不到任何cloudfront分布,只有一些arn:aws:ec2
资源,而我显然有一些由aws cloudfront list分布列出的资源。你知道为什么吗?啊,明白了。区域混合;)非常感谢你!现在接受答案!!!伟大的很高兴它起作用了。