This Serverless plugin extends serverless-offline to emulates AWS λ Invocations on your local machine to speed up your development cycles. To do so, it starts an HTTP server to invoke a Lambda using the AWS SDK.
First, add Serverless Plugin to your project:
npm install serverless-offline-lambda --save-dev
Then inside your project's serverless.yml file add following entry to the plugins section: serverless-offline-lamda. If there is no plugin section you will need to add it to the file.
It should look something like this:
plugins:
- serverless-offline-lambda
- serverless-offlineRun Serverless Offline
sls offline start
Invoke Lambda using AWS SDK.
constAWS=require('aws-sdk');constlambda=newAWS.Lambda({endpoint: newAWS.Endpoint('http://localhost:4000'),region: 'us-east-1',});lambda.invoke({FunctionName: 'function',InvocationType: 'Event',Payload: JSON.stringify({key: 'value'}),}).promise();By default the Lambda endpoint listens on localhost port 4000, but this can be changed in serverless.yml:
custom:
lambda:
host: 0.0.0.0
port: 1234