An ember-cli-deploy plugin to invalidate cached files on AWS CloudFront
This plugin invalidates one or more files in an Amazon CloudFront distribution. It is primarily useful for invalidating an outdated index.html
, but can be configured to invalidate any other files as well.
A plugin is an addon that can be executed as a part of the ember-cli-deploy pipeline. A plugin will implement one or more of the ember-cli-deploy's pipeline hooks.
For more information on what plugins are and how they work, please refer to the Plugin Documentation.
To get up and running quickly, do the following:
-
Install this plugin
$ ember install ember-cli-deploy-cloudfront
-
Place the following configuration into
config/deploy.js
ENV.cloudfront = { accessKeyId: '<your-aws-access-key>', secretAccessKey: '<your-aws-secret>', distribution: '<your-cloudfront-distribution-id>' }
-
Run the pipeline with the activation flag
$ ember deploy production --activate
Run the following command in your terminal:
ember install ember-cli-deploy-cloudfront
For detailed information on what plugin hooks are and how they work, please refer to the Plugin Documentation.
configure
didActivate
For detailed information on how configuration of plugins works, please refer to the Plugin Documentation.
The AWS access key for the user that has the ability to upload to the bucket
. If this is left undefined, the normal AWS SDK credential resolution will take place.
Default: undefined
The AWS secret for the user that has the ability to upload to the bucket
. This must be defined when accessKeyId
is defined.
Default: undefined
The CloudFront distribution ID that should be invalidated.
Default: undefined
The AWS region to send service requests to.
Default: us-east-1
CloudFront object paths contained in this array will be invalidated on CloudFront. Each object path must be relative to the CloudFront distribution root and begin with /
.
Default: ['/index.html']
The client used to create the invalidation. This allows the user the ability to use their own client for invalidating instead of the one provided by this plugin.
The client specified MUST implement a function called invalidate
.
Default: the upload client provided by ember-cli-deploy-cloudfront
The underlying CloudFront library used to create the invalidation with CloudFront. This allows the user to use the default invalidation client provided by this plugin but switch out the underlying library that is used to actually create the invalidation.
The client specified MUST implement a function called createInvalidation
.
Default: the default CloudFront library is aws-sdk
npm test