nikstep
nikstep

Reputation: 465

Ruby gem to invalidate CloudFront Distribution?

I have tried all the gems I can find on Google and Stackoverflow, they all seems to be outdated and unmaintained, so what is the simplest way to invalidate a CloudFront distribution from Ruby?

Upvotes: 0

Views: 512

Answers (2)

Nathan Colgate
Nathan Colgate

Reputation: 936

Here's the little script we ended up using to invalidate the entire cache:

require 'aws-sdk-cloudfront'

cf = Aws::CloudFront::Client.new(
  access_key_id: ENV['FOG_AWS_ACCESS_KEY_ID'],
  secret_access_key: ENV['FOG_AWS_SECRET_ACCESS_KEY'],
  region: ENV['FOG_REGION']
)

resp = cf.create_invalidation({
  distribution_id: ENV['FOG_DISTRIBUTION_ID'], # required
  invalidation_batch: { # required
    paths: { # required
      quantity: 1, # required
      items: ["/*"],
    },
    caller_reference: DateTime.now.to_s, # required
  },
})

if resp.is_a?(Seahorse::Client::Response)
  puts "Invalidation #{resp.invalidation.id} has been created. Please wait about 60 seconds for it to finish."
else
  puts "ERROR"
end 

Upvotes: 2

mcfinnigan
mcfinnigan

Reputation: 11638

https://rubygems.org/gems/aws-sdk

Specifically the cloudfront module:

https://docs.aws.amazon.com/sdkforruby/api/Aws/CloudFront.html

This should give you full CLI control of your cloudfront resources provided you have the correct IAM roles etc set up.

Upvotes: 0

Related Questions