Skip to content

miguel-a-calles-mba/serverless-hosted-zone

Repository files navigation

Serverless Hosted Zone Plugin

Build npm version vulnerabilities

Table of Contents

  1. Description
  2. Requirements
  3. Installation
  4. Using the Plugin
  5. Notes
  6. License

Description

This plugin allow you to call a CLI command to create and remove an AWS Route 53 hosted zone. This plugin is designed for the Serverless Framework 1.x and above.

Requirements

  • Serverless Framework 1.x.
  • Node 10.x or greater.
  • NPM 6.x or greater.

Installation

Installing the Serverless Framework

Visit the Getting Started with the Serverless Framework to get started with the Serverless Framework.

Install with npm:

npm install -g serverless

Installing the Plugin

Install with npm:

npm install --save-dev serverless-hosted-zone

And then add the plugin to your serverless.yml file:

plugins:
  - serverless-hosted-zone

custom:
  hostedZone:
    name: domain.com.

See the example(s).

Using the Plugin

Create a Route 53 Hosted Zone

Run the CLI command to create the hosted zone:

sls create-zone

Create Route 53 Aliases

Update the serverless.yml file:

custom:
  hostedZone:
    name: domain.com.
    aliases:
      - type: cloudfrontDistribution
        cname: api.domain.com.

Run the CLI command to create the alias for the hosted zone:

sls create-aliases

Remove a Route 53 Hosted Zone

Note: This feature is currently not supported.

Run the CLI command to create the hosted zone:

sls remove-zone

Remove a Route 53 Aliases

Note: This feature is currently not supported.

Run the CLI command to create the hosted zone:

sls remove-aliases

Notes

The plugin will skip the execution instead of throwing an error when the configuration is missing in the serverless.yml file.

Please request features or report problems using the issues page.

IAM Policy

You may use this IAM policy as a starting point:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": [
        "route53:ListHostedZones",
        "cloudfront:ListDistributions"
      ],
      "Resource": "*",
      "Effect": "Allow",
      "Sid": "ServerlessHostedZonePlugin1"
    },
    {
      "Action": [
        "route53:CreateHostedZone",
        "route53:ChangeResourceRecordSets",
        "route53:ListResourceRecordSets"
      ],
      "Resource": "arn:aws:route53:::hostedzone/*",
      "Effect": "Allow",
      "Sid": "ServerlessHostedZonePlugin2"
    }
  ]
}

License

See the included LICENSE for rights and limitations under the terms of the MIT license.

About

Serverless plugin to create a Route 53 hosted zone.

Resources

License

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published