JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 219
  • Score
    100M100P100Q105588F
  • License MIT

Serverless AWS Lambda URL custom domain configuration via cloudfront distribution and route 53.

Package Exports

  • serverless-aws-function-url-custom-domain
  • serverless-aws-function-url-custom-domain/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (serverless-aws-function-url-custom-domain) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

serverless MIT licensed npm version NPM Downloads

serverless-aws-function-url-custom-domain

Automatically creates AWS CloudFront distribution and Route 53 records to AWS Lambda with Function URL (no api gateway).

Installation

npm install --save-dev serverless-aws-function-url-custom-domain

Configuration

This plugin assumes your domain is hosted and managed with AWS Route53. SSL certificate is managed via certificate manager.

# add in your serverless.yml

plugins:
  - serverless-aws-function-url-custom-domain
  

custom:
  urlDomain:
    apiDomain: ${env:SUBDOMAIN}.yourdomain.com  # change by your custom domain
    hostedZoneName: yourdomain.com.  # your domain Route 53 hosted zone name
    certificateArn: 'arn:aws:acm:us-east-1:xxxxx:certificate/xxxxx' # need to be located at NVirgina 
    
functions:
  api:
    handler: wsgi_handler.handler
    url: true # activate function URL!

Deploy

serverless deploy

Inspect Result

serverless info --verbose
Output:


CloudFront domain name
  xxxxx.cloudfront.net (CNAME: ${env:SUBDOMAIN}.yourdomain.com)

IAM Policy

In order to make this plugin work as expected a few additional IAM Policies might be needed on your AWS profile.

More specifically this plugin needs the following policies attached:

  • cloudfront:CreateDistribution
  • cloudfront:GetDistribution
  • cloudfront:UpdateDistribution
  • cloudfront:DeleteDistribution
  • cloudfront:TagResource
  • acm:ListCertificates
  • route53:ListHostedZones
  • route53:ChangeResourceRecordSets
  • route53:GetHostedZone
  • route53:ListResourceRecordSets

You can read more about IAM profiles and policies in the Serverless documentation.

References