按标签列出的 AWS Cloudfront 分配 ID

Eln*_*dov 7 amazon-web-services amazon-cloudfront aws-cli

是否可以通过 awscli 或适用于 powershell 的 aws sdk 按标签获取 aws cloudfront dist id。我只能通过资源的 ARN 编号获取 ID

aws cloudfront list-tags-for-resource --resource XXX
{
   "Tags": {
       "Items": [
           {
               "Value": "TEST_APP",
               "Key": "CLIENT_APP"
           }
       ]
   }
}
Run Code Online (Sandbox Code Playgroud)

更新

解决通过

cloudfrontdistids=$(aws cloudfront list-distributions | jq -r ".DistributionList.Items[].ARN")
for dist in $cloudfrontdistids
do
        if [ $(aws cloudfront list-tags-for-resource --resource $dist | jq -r ".Tags.Items[].Value") == $VALUE ]
        then
                CLOUDFRONT_DISTRIBUTION_ID=${dist:(-14)}
        fi
done

Run Code Online (Sandbox Code Playgroud)

Tol*_*mos 3

原发帖者提供的答案似乎几乎是正确的。但 CLOUDFRONT_DISTRIBUTION_ID并不总是 14 个字符,因此为了避免拉出额外的字符,请改用:

CLOUDFRONT_DISTRIBUTION_ID= ${dist##*/}

在 bash 中,它删除了前缀模式。在这里,它基本上通过贪婪地删除前缀 */ 为您提供最后一个路径分隔符 / 之后的所有内容