UNPKG

@serverless-plugin-sqs-local/serverless-plugin-sqs-local

Version:
118 lines (81 loc) 3.82 kB
# serverless-plugin-sqs-local Serverless SQS Plugin - Allows to run SQS locally for serverless ## Requires - [Serverless](https://serverless.com) - Java Runtime Engine (JRE) version 8 or newer ## Features - Install [ElasticMQ](https://github.com/softwaremill/elasticmq) as local SQS - Start local SQS with the specific port - Queue Creation for local SQS - Trigger lambda function using [Serverless Offline](https://github.com/dherault/serverless-offline) - [Serverless Webpack](https://github.com/serverless-heaven/serverless-webpack/) support ## Install Plugin 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. ```yaml plugins: - serverless-webpack - '@serverless-plugin-sqs-local/serverless-plugin-sqs-local' - serverless-offline ``` [See example](https://github.com/kobanyan/serverless-plugin-sqs-local/tree/master/examples/webpack). ## Using the Plugin 1. Install ElasticMQ as local SQS: `serverless elasticmq install` 1. Add SQS Resource definitions to your project's serverless.yml file 1. Start local SQS: `serverless elasticmq start` or `serveless offline start` ### Install ``` 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" ``` [See example](https://github.com/kobanyan/serverless-plugin-sqs-local/tree/master/examples/options/package.json). All the above options can be added to serverless.yml to set default configuration: e.g. ```yaml 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' ``` [See example](https://github.com/kobanyan/serverless-plugin-sqs-local/tree/master/examples/config/serverless.yml). ### Start ``` 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 ``` [See example](https://github.com/kobanyan/serverless-plugin-sqs-local/tree/master/examples/options/package.json). All the above options can be added to serverless.yml to set default configuration: e.g. ```yaml custom: serverless-plugin-sqs-local: elasticmq: setup: installPath: '.ElasticMQ' start: port: 9325 ``` [See example](https://github.com/kobanyan/serverless-plugin-sqs-local/tree/master/examples/config/serverless.yml). 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. ### Configuration function and SQS The configuration of function and SQS of the plugin follows the [serverless documentation](https://serverless.com/framework/docs/providers/aws/events/sqs/). [See example](https://github.com/kobanyan/serverless-plugin-sqs-local/tree/master/examples/example/serverless.yml). ## Credits This project is heavily inspired by the following projects. - [serverless-offline-sqs](https://github.com/CoorpAcademy/serverless-plugins/tree/master/packages/serverless-offline-sqs) - [serverless-dynamodb-local](https://github.com/99xt/serverless-dynamodb-local) - [dynamodb-localhost](https://github.com/99xt/dynamodb-localhost)