0.0.1 • Published 4 years ago

serverless-ncloudfront-stack v0.0.1

Weekly downloads
-
License
ISC
Repository
-
Last release
4 years ago

serverless CI npm version npm downloads

Installation

npm i -E serverless-cloudfront-stack

Features

S3
- Bucket for your app assets.
- Bucket access control.
- Bucket encryption support for AES256.
- Bucket versioning for your assets.
- Bucket for cdn access logs.
- Data rentention by days for access logs.

Cloud Front Distribution
- SSL support.
- Access Logs.
- Cname support.

Route53 - Domain Name
- Record for your CDN.

Extras
- Invalidate CloudFront cache on new deploys.
- Sync your local assets folder with s3 on new deploys.
- Extends resources configuration.

Diagram

Usage

# serverless.yml

plugins:
  - serverless-cloudfront-stack

custom:
  cdnStack:
    disabled: false                               # optional, disabled this plugin
    beforeSpawn: ''                               # optional, run another hook plugin

    cname: ''                                     # optional, cname for cdn.
    createInRoute53: false                        # optional, default true, create cname record
    certificate: ''                               # required, if use cname

    bucketName: ''                                # required, app bucket name
    blockPublicAccess: true                       # optional, block public acccess to s3
    bucketEncryption: false                       # optional, bucket encryption for AES256
    bucketVersioning: false                       # optional, assets object versioning (backup)

    indexPage: ''                                 # optional, default index.html
    errorPage: ''                                 # optional, error page

    syncLocalFolder: ''                           # required, folder path to sync with s3
    priceClass: ''                                # optional, default 'PriceClass_100'

    logging:                                      # optional tag
      bucketName: ''                              # required, logs bucket name
      preffix: ''                                 # optional, default 'Access/'
      retentionDays: 7                            # optional, default 21 days


# psss. check full example in serverless.example.yml file.

Extends

# serverless.yml

resources:
  Resources:
    StaticWebSiteBucket:
      Properties:
        BucketName: override bucket name
        ...

    DnsRecord:
      Properties:
        Comment: override comment
        ...

    CloudFrontDistribution:
      ...

    AccessLogsBucket:
      ...