emmkong / serverless-plugin-offline-dynamodb-stream

Serverless Plugin for emulating dynamodb stream triggering lambda functions offline
MIT License
26 stars 19 forks source link
dynamodb serverless-framework serverless-offline

serverless-plugin-offline-dynamodb-stream

CircleCI Status NPM Version License

Serverless framework offline plugin to support dynamodb stream

This plugin pull from dynamodb stream and trigger serverless function if any records detected.

Installation

Install package

$ npm install --save serverless-plugin-offline-dynamodb-stream

Usage

Add following config to serverless.yml file.

plugins:
  - serverless-plugin-offline-dynamodb-stream
  - serverless-plugin-offline-kinesis-stream
custom:
  dynamodbStream:
    host: {LOCAL_DYNAMODB_HOST}
    port: {LOCAL_DYNAMODB_PORT}
    pollForever: boolean
    streams:
      - table: {TABLE_NAME}
        functions:
          - {FUNCTION_NAME}
  kinesisStream:
    host: {LOCAL_KINESIS_HOST}
    port: {LOCAL_KINESIS_PORT}
    intervalMillis: 5000
    streams:
      - streamName: {STREAM_NAME}
        functions:
          - {FUNCTION_NAME}

pollForever

Ensure your local dynamodb is up and running, or you could also consider using serverless-dynamodb-local plugin before start your serverless offline process.

$ serverless offline start

Development

$ git clone https://github.com/orchestrated-io/serverless-plugin-offline-dynamodb-stream.git
$ npm install
Action Usage
Linting code npm run lint
Running unit tests npm run jest
Running code coverage npm run coverage
Running lint + tests npm test

Demo

> cd demo
> docker-compose up --build

Author

Emmanuel Kong

License

MIT