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-offline
Run Serverless Offline
sls offline start
Invoke Lambda using AWS SDK.
const AWS = require('aws-sdk');
const lambda = new AWS.Lambda({
endpoint: new AWS.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