Serverless SQS Plugin - Allows to run SQS locally for serverless
- Serverless
- Java Runtime Engine (JRE) version 8 or newer
- Install ElasticMQ as local SQS
- Start local SQS with the specific port
- Queue Creation for local SQS
- Trigger lambda function using Serverless Offline
- Serverless Webpack support
First, add this plugin to your project:
npm install --save-dev @serverless-plugin-sqs-local/serverless-plugin-sqs-local
# or
yarn add --dev @serverless-plugin-sqs-local/serverless-plugin-sqs-local
Then inside your project's serverless.yml file, add following entry to the plugins section before serverless-offline and after serverless-webpack if presents.
plugins:
- serverless-webpack
- '@serverless-plugin-sqs-local/serverless-plugin-sqs-local'
- serverless-offline
- Install ElasticMQ as local SQS:
serverless elasticmq install
- Add SQS Resource definitions to your project's serverless.yml file
- Start local SQS:
serverless elasticmq start
orserveless offline start
serverless elasticmq install
All CLI options are optional:
--ElasticMQDownloadUrl Url to download ElasticMQ jar file. The default url is latest
--ElasticMQPath Directory path to install ElasticMQ. The default directory is "$PWD/.elasticmq"
All the above options can be added to serverless.yml to set default configuration: e.g.
custom:
serverless-plugin-sqs-local:
elasticmq:
setup:
downloadUrl: 'https://s3-eu-west-1.amazonaws.com/softwaremill-public/elasticmq-server-0.13.8.jar'
installPath: '.ElasticMQ'
serveless elasticmq start
All CLI options are optional:
--ElasticMQPath ElasticMQ installed directory path. The default directory is "$PWD/.elasticmq"
--ElasticMQPort The port number that ElasticMQ will use to communicate with your application. The default port is 9324
All the above options can be added to serverless.yml to set default configuration: e.g.
custom:
serverless-plugin-sqs-local:
elasticmq:
setup:
installPath: '.ElasticMQ'
start:
port: 9325
When using this plugin with serverless-offline, the local SQS start command can be triggered automatically. Please note that you still need to install local SQS first.
The configuration of function and SQS of the plugin follows the serverless documentation.
This project is heavily inspired by the following projects.