/ember-cli-deploy-cloudfront

An ember-cli-deploy plugin for invalidating cached files on CloudFront

Primary LanguageJavaScriptMIT LicenseMIT

ember-cli-deploy-cloudfront Build Status

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.

What is an ember-cli-deploy plugin?

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.

Quick Start

To get up and running quickly, do the following:

  1. Install this plugin

    $ ember install ember-cli-deploy-cloudfront
  2. Place the following configuration into config/deploy.js

    ENV.cloudfront = {
      accessKeyId: '<your-aws-access-key>',
      secretAccessKey: '<your-aws-secret>',
      distribution: '<your-cloudfront-distribution-id>'
    }
  3. Run the pipeline with the activation flag

    $ ember deploy production --activate

Installation

Run the following command in your terminal:

ember install ember-cli-deploy-cloudfront

ember-cli-deploy Hooks Implemented

For detailed information on what plugin hooks are and how they work, please refer to the Plugin Documentation.

  • configure
  • didActivate

Configuration Options

For detailed information on how configuration of plugins works, please refer to the Plugin Documentation.

accessKeyId

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

secretAccessKey

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

distribution (required)

The CloudFront distribution ID that should be invalidated.

Default: undefined

region

The AWS region to send service requests to.

Default: us-east-1

objectPaths

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']

invalidationClient

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

cloudfrontClient

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

Running Tests

  • npm test