serverless-offline-dynamodb-streams debug
This Serverless-offline-dynamodb-streams plugin emulates AWS λ and DynamoDBStreams on your local machine. To do so, it listens DynamoDBStreams stream and invokes your handlers.
Features:
- Serverless Webpack support.
- DynamoDBStreams configurations: batchsize and startingPosition.
Installation
First, add serverless-offline-dynamodb-streams
to your project:
npm install serverless-offline-dynamodb-streams
Then inside your project's serverless.yml
file, add following entry to the plugins section before serverless-offline
(and after serverless-webpack
if presents): serverless-offline-dynamodb-streams
.
plugins: - serverless-webpack - serverless-offline-dynamodb-streams - serverless-offline
Configure
Functions
Ths configuration of function of the plugin follows the serverless documentation.
functions: myKinesisHandler: handler: handler.compute events: - stream: enabled: true type: dynamodb arn: arn:aws:dynamodb:eu-west-1:XXXXXX:table/myStream/stream/2018-07-02T19:48:31.121 batchSize: 10 startingPosition: TRIM_HORIZON
DynamoDB
The configuration of aws.DynamoDBStreams
's client of the plugin is done by defining a custom: serverless-offline-dynamodb-streams
object in your serverless.yml
with your specific configuration.
You could use mhart's Dynalite with the following configuration:
custom: serverless-offline-dynamodb-streams: apiVersion: '2013-12-02' endpoint: http://0.0.0.0:8000 region: eu-west-1 accessKeyId: root secretAccessKey: root skipCacheInvalidation: false readInterval: 500
arn
could be deduce fromtableName
if your add the keytableName
in your function's configuration. Useful if your use dynalite and regularly recreate a new DynamoDBStreams.
functions: myKinesisHandler: handler: handler.compute events: - stream: enabled: true type: dynamodb tableName: myTable
Localstack
You could use localstack with the following configuration:
custom: serverless-offline-dynamodb-streams: apiVersion: '2013-12-02' endpoint: http://0.0.0.0:4569 endpointStreams: http://0.0.0.0:4570 region: eu-west-1 accessKeyId: root secretAccessKey: root skipCacheInvalidation: false readInterval: 500