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'