首页 > 解决方案 > 是否可以通过 AWS CLI 从 Origin 找到云端分发?

问题描述

我有多个指向单个 S3 存储桶的 Cloudfront 发行版来创建不同的 URL。现在,当我部署时,很难一一手动清除所有存储桶的缓存。所以我认为应该有一个选项,我可以从中找到所有 id 并清除缓存,但我能找到的只是

aws cloudfront  get-distribution-config
--id <value>
[--cli-input-json <value>]
[--generate-cli-skeleton <value>] 

其中 id 获取我想找出的 cloudfront 发行版本身的 id。

我不能使用它,也不想清除所有发行版的缓存

aws cloudfront list-distributions
[--max-items <value>]
[--cli-input-json <value>]
[--starting-token <value>]
[--page-size <value>]
[--generate-cli-skeleton <value>]

我试图找到类似的东西,但到目前为止这似乎不是正确的方法

aws cloudfront --origing <value>

标签: amazon-web-servicesamazon-s3amazon-cloudfrontaws-cli

解决方案


https://stackoverflow.com/a/64264887/5773416

虽然这个解决方案并不完全是我想要的,但它帮助我找到了确切的答案。我正在发布我的答案,最终帮助我实现了这一目标。

aws cloudfront list-distributions --query "DistributionList.Items[*].{id:Id,origin:Origins.Items[0].Id}[?origin=='S3-BUCKET_NAME'].id" --output text

这将给出这样的结果

EXXXXXXXXXXX1 EXXXXXXXXXXX2

并且为了清除多个分布的缓存

for id in $(aws cloudfront list-distributions --query "DistributionList.Items[*].{id:Id,origin:Origins.Items[0].Id}[?origin=='S3-BUCKET_NAME'].id" --output text);do aws cloudfront create-invalidation --distribution-id $id --paths "/*";done;

推荐阅读