serverless-multi-regional-plugin
This plugin will add the resources to configure API Gateway regional endpoints and a global endpoint with CloudFront.
- Install plugin:
npm install serverless-multi-regional-plugin --save-dev
- Create your hosted zone and certificates
Using the diagram above as an example the hosted zone would be for example.com and the certificate would be for *.example.com. Create the same certificate in each region to support the regional endpoints. The global endpoint requires a certificate in the us-east-1 region.
- serverless.yml:
plugins:
- serverless-multi-regional-plugin
custom:
dns:
hostedZoneId: ZZZZZZZZZZZZZZ
domainName: ${self:service}.example.com
regionalDomainName: ${opt:stage}-${self:custom.dns.domainName}
us-east-1:
acmCertificateArn: arn:aws:acm:us-east-1:870671212434:certificate/55555555-5555-5555-5555-5555555555555555
# healthCheckId: 44444444-4444-4444-4444-444444444444
us-west-2:
acmCertificateArn: arn:aws:acm:us-west-2:111111111111:certificate/55555555-5555-5555-5555-5555555555555555
# healthCheckId: 33333333-3333-3333-3333-333333333333
cdn:
region: us-east-1
aliases:
- ${self:custom.dns.domainName}
# headers:
priceClass: PriceClass_100
acmCertificateArn: ${self:custom.dns.us-east-1.acmCertificateArn}
logging:
bucket: example-auditing.s3.amazonaws.com
prefix: aws-cloudfront/api/${opt:stage}/${self:service}
# webACLId:
- Deploy to each region
Related Documentation