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-lambdaserverless.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'