Skip to content

Serverless Plugin for emulating dynamodb stream triggering lambda functions offline

License

Notifications You must be signed in to change notification settings

nwfortner/serverless-plugin-offline-dynamodb-stream

 
 

Repository files navigation

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}
    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}

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

$ serverless offline start

Development

  • Cloning the repo
$ git clone https://github.com/orchestrated-io/serverless-plugin-offline-dynamodb-stream.git
  • Installing dependencies
$ npm install
  • Running scripts
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
  • open dynamodb admin in browser.
  • adding new item on items table will result event detail printed out in console.

Author

Emmanuel Kong

License

MIT

About

Serverless Plugin for emulating dynamodb stream triggering lambda functions offline

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%