A plugin for the Serverless Framework that simulates the behavior of AWS CloudFront Edge Lambdas while developing offline.
npm install --save-dev serverless
npm install --save-dev serverless-offline-edge-lambda
serverless.yml
service:
name: edge-lambdas
plugins:
- serverless-offline-edge-lambda
provider:
name: aws
runtime: nodejs8.10
functions:
lambda:
handler: src/handlers.onViewerRequest
lambdaAtEdge:
distribution: 'WebsiteDistribution'
eventType: 'viewer-request'
pathPattern: '/lambda'
resources:
Resources:
WebsiteDistribution:
Type: 'AWS::CloudFront::Distribution'
Properties:
DistributionConfig:
DefaultCacheBehavior:
npx serverless offline start --port=<port>
The plugin should not be used in conjunction with serverless-offline
because both plugins define the offline
command.
This plugin does not handle packaging and deploying edge lambdas to the cloud. Therefore
this plugin can be used with serverless-plugin-cloudfront-lambda-edge
. Again, doing so
is optional. The schema in serverless.yml derives from that used by serverless-plugin-cloudfront-lambda-edge
.
This plugin can also be used with transpilers such as serverless-plugin-typescript
. In the
cases where the transpiler outputs built files to a path that differs from the path
specified for the handlers (e.g. .build/src/handers.onViewerRequest), this plugin accepts
a configuration option path
that it uses to resolve function handlers.
plugins:
- serverless-plugin-typescript
custom:
offlineEdgeLambda:
path: '.build'