
Product
Rust Support Now in Beta
Socket's Rust support is moving to Beta: all users can scan Cargo projects and generate SBOMs, including Cargo.toml-only crates, with Rust-aware supply chain checks.
serverless-multi-regions
Advanced tools
Deploy an API Gateway service in multiple regions with a global CloudFront distribution and health checks
This plugin will add the resources to configure API Gateway regional endpoints and a global endpoint with CloudFront.
This plugin will:
npm install serverless-multi-regions --save-dev
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.
plugins:
- serverless-multi-regions
# Add this to the standard SLS "custom" region
custom:
# The API Gateway method CloudFormation LogicalID to await. Defaults to ApiGatewayMethodProxyVarAny.
# Aspects of the templates must await this completion to be created properly.
gatewayMethodDependency: ApiGatewayMethodProxyVarAny
# Settings used for API Gateway and Route 53
dns:
domainName: ${self:service}.example.com
# Explicity specify the regional domain name.
# This must be unique per stage but must be the same in each region for failover to function properly
regionalDomainName: ${self:custom.dns.domainName}-${opt:stage}
# Specify the resource path for the healthcheck (only applicable if you don't specify a healthcheckId below)
# the default is /${opt:stage}/healthcheck
healthCheckResourcePath: /${opt:stage}/healthcheck
# Settings per region for API Gateway and Route 53
us-east-1:
# Specify a certificate by its ARN
acmCertificateArn: arn:aws:acm:us-east-1:870671212434:certificate/55555555-5555-5555-5555-5555555555555555
# Use your own healthcheck by it's ID
healthCheckId: 44444444-4444-4444-4444-444444444444
# Failover type (if not present, defaults to Latency based failover)
failover: PRIMARY
ap-northeast-1:
acmCertificateArn: arn:aws:acm:ap-northeast-1:111111111111:certificate/55555555-5555-5555-5555-5555555555555555
healthCheckId: 33333333-3333-3333-3333-333333333333
failover: SECONDARY
# Settings used for CloudFront
cdn:
# Indicates which CloudFormation region deployment used to provision CloudFront (because you only need to provision CloudFront once)
region: us-east-1
# Aliases registered in CloudFront
# If aliases is not present, the domain name is set up as an alias by default.
# If *no* aliases are desired, leave an empty aliases section here.
aliases:
- ${self:custom.dns.domainName}
# Add any headers your CloudFront requires here
headers:
- Accept
- Accept-Encoding
- Authorization
- User-Agent
- X-Forwarded-For
# Specify a price class, PriceClass_100 is the default
priceClass: PriceClass_100
# Specify your certificate explicitly by the ARN
# If the certificate is not specified, the best match certificate to the domain name is used by default
acmCertificateArn: ${self:custom.dns.us-east-1.acmCertificateArn}
# Set up logging for CloudFront
logging:
bucket: example-auditing.s3.amazonaws.com
prefix: aws-cloudfront/api/${opt:stage}/${self:service}
# Add the webACLId to your CloudFront
webACLId: id-for-your-webacl
You've got your configuration all set.
Now perform a serverless deployment to each region you want your Lambda to operate in. The items you have specified above are set up appropriately for each region and non-regional resources such as CloudFront and Route 53 are also set up via CloudFormation in your primary region.
You now have a Lambda API with cross-region failover!!!
FAQs
Deploy an API Gateway service in multiple regions with a global CloudFront distribution and health checks
The npm package serverless-multi-regions receives a total of 8 weekly downloads. As such, serverless-multi-regions popularity was classified as not popular.
We found that serverless-multi-regions demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket's Rust support is moving to Beta: all users can scan Cargo projects and generate SBOMs, including Cargo.toml-only crates, with Rust-aware supply chain checks.
Product
Socket Fix 2.0 brings targeted CVE remediation, smarter upgrade planning, and broader ecosystem support to help developers get to zero alerts.
Security News
Socket CEO Feross Aboukhadijeh joins Risky Business Weekly to unpack recent npm phishing attacks, their limited impact, and the risks if attackers get smarter.