É possível encontrar distribuições da cloudfront da origem através da AWS CLI?

Tenho múltiplas distribuições à frente da nuvem apontando para um único balde S3 para criar URLs diferentes. Agora, quando eu desligo, é difícil limpar o esconderijo de todos os baldes manualmente, um a um. Então eu pensei que deveria haver uma opção de onde eu possa encontrar todas as identificações e limpar o cache, mas tudo o que eu poderia encontrar era

aws cloudfront  get-distribution-config
--id <value>
[--cli-input-json <value>]
[--generate-cli-skeleton <value>] 
Onde é que o id leva a identificação da própria distribuição da cloudfront, que eu quero descobrir.

Não posso usar isto tão bem como não quero limpar o cache. de todas as distribuições

aws cloudfront list-distributions
[--max-items <value>]
[--cli-input-json <value>]
[--starting-token <value>]
[--page-size <value>]
[--generate-cli-skeleton <value>]
Estou a tentar encontrar algo parecido, mas até agora não parece ser a abordagem certa.
aws cloudfront --origing <value>
Author: Ritik Patni, 2020-10-06

2 answers

Pode usar o argumento da pesquisa para obter apenas Ids

aws cloudfront list-distributions --query "DistributionList.Items[*].Origins.Items[*].Id" --output text

S3-test1.example.com
S3-Website-test2.example.com.s3-website-us-west-1.amazonaws.com

Depois poderá filtrar a lista usando o grep

aws cloudfront list-distributions --query "DistributionList.Items[*].Origins.Items[*].Id" --output text | grep test2

S3-test1.example.com

Pode devolver vários valores usando o argumento da pesquisa

aws cloudfront list-distributions --query "DistributionList.Items[*].Origins.Items[*].{id:Id,name:DomainName}" --output text

S3-test1.example.com  test1.example.com.s3.amazonaws.com
S3-Website-test2.example.com.s3-website-us-west-1.amazonaws.com test2.example.com.s3-website-us-west-1.amazonaws.com
 1
Author: KayD, 2020-10-08 14:37:45

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

Embora esta solução não seja exactamente o que eu queria, ajudou-me a encontrar a resposta exacta. Estou a postar a minha resposta que finalmente me ajudou a conseguir isto.
aws cloudfront list-distributions --query "DistributionList.Items[*].{id:Id,origin:Origins.Items[0].Id}[?origin=='S3-BUCKET_NAME'].id" --output text
O que dará um resultado como este.
EXXXXXXXXXXX1 EXXXXXXXXXXX2

E para limpar a 'cache' de múltiplas distribuições

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;
 0
Author: Ritik Patni, 2020-10-12 13:48:54