Sh4dy
Sh4dy

Reputation: 172

Create invalidation for multiple AWS CloudFront distributions in a loop

I have a list of CloudFront distributions that need to be invalidated. I have made the list using this command:-

dist_id=$(aws cloudfront list-distributions --query "DistributionList.Items[*].{id:Id,origin:Aliases.Items[0]}[?origin=='website1.com'||origin=='website2.com'||origin=='website3.com'].id" --output text)

Now the create-invalidation command expects only one string value for the distribution ID. How do I make it run for all of my distributions? When I run aws cloudfront create-invalidation --distribution-id $dist_id --paths "/*" it says that distributions 2 and 3 are unknown options.

I am using these commands from inside a buildspec.yml file in my React project.

Upvotes: 1

Views: 544

Answers (1)

Sh4dy
Sh4dy

Reputation: 172

I ended up using a plain for-do loop:-

for varname in $dist_id; do aws cloudfront create-invalidation --distribution-id  $varname --paths "/*"; done

Upvotes: 1

Related Questions