Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 有没有一种方法可以通过标签列出CloudFront发行版,而不用使用ListDistributions下载它们?_Amazon Web Services_Amazon Cloudfront - Fatal编程技术网

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分布列出的资源。你知道为什么吗?啊,明白了。区域混合;)非常感谢你!现在接受答案!!!伟大的很高兴它起作用了。