serverless-iot-local

AWS Iot lifecycle and regular topic subscription events

Prerequisites

Install

  1. npm install --save serverless-iot-local

  2. In serverless.yml add serverless-iot-local to plugins:

plugins:
- serverless-iot-local

Usage

  1. Start redis:
    redis-server

  2. If you're using serverless-offline, you can run:

    sls offline start

    Otherwise run:

    sls iot start

CLI options are optional:

--port -p Port to listen on. Default: 1883
--httpPort -h Port for WebSocket connections. Default: 1884
--noStart -n Prevent Iot broker (Mosca MQTT brorker) from being started (if you already have one)
--skipCacheValidation -c Tells the plugin to skip require cache invalidation. A script reloading tool like Nodemon might then be needed (same as serverless-offline)

The above options can be added to serverless.yml to set default configuration, e.g.:

custom:
serverless-iot-local:
start:
port: 1884
# Uncomment only if you already have an MQTT server running locally
# noStart: true
redis:
host: 'localhost'
port: 6379
db: 12

Using with serverless-offline plugin

Place serverless-iot-local above serverless-offline

plugins:
- serverless-iot-local
- serverless-offline

Todo

  • Improve support of AWS Iot SQL syntax

License

MIT