serverless-lambda
v1.0.1
Published
Easy Lambda + DynamoDB development and testing with Serverless Framework. Automatically configure SDK config according to environment variables.
Downloads
5
Maintainers
Readme
serverless-lambda
Easy Lambda + DynamoDB development and testing with Serverless Framework. Automatically configure SDK config according to environment variables.
Prerequisites
- nvm or Node 6.10.3 installed
- Docker
Install
npm install --save serverless-lambda
Setting up
Make sure you are using Node v6.10.3
node --version
# If not 6.10.3
nvm install 6.10.3
Install Serverless Framework (globally) and its plugins (locally)
npm install --global serverless
npm install --save-dev serverless-dynamodb-local serverless-offline serverless-plugin-simulate
Download the Docker image that will be used to simulate Lambda
docker pull lambci/lambda:nodejs6.10
Install DynamoDB
sls dynamodb install
Start emulator
You need to have 3 processes simultaneously. Open 3 terminals and run the commands below in order.
sls simulate lambda -p 4000
sls simulate apigateway -p 5000 --lambda-port 4000
sls dynamodb start -p 8000 --seed=development
Usage
AWS SDK
const AWS = require('aws-sdk');
// Require serverless-lambda for side-effect
// This will configure AWS object according to environment
require('serverless-lambda');
const lambda = new AWS.Lambda();
lambda.invoke(someParams);
const dynamodb = new AWS.DynamoDB.DocumentClient();
dynamodb.get(someParams);
or you can require AWS
object from this package
// This AWS is exactly same object as original require('aws-sdk')
const AWS = require('serverless-lambda');
const lambda = new AWS.Lambda();
lambda.invoke(someParams);
const dynamodb = new AWS.DynamoDB.DocumentClient();
dynamodb.get(someParams);
Invoke Functions from CLI
Use Serverless commands
$ sls invoke local
Plugin: Invoke
invoke local .................. Invoke function locally
--function / -f (required) ......... Name of the function
--path / -p ........................ Path to JSON or YAML file holding input data
--data / -d ........................ input data
--raw .............................. Flag to pass input data as a raw string
--context / -c ..................... Context of the service
--contextPath / -x ................. Path to JSON or YAML file holding context data
DynamoDB Shell
API Gateway Entrypoint
TODO
- Add CLI that installs Serverless framework and plugins for easier setup
- More test coverage