Serverless SNS SQS offline Example
A Serverless application that demonstrate the flow of amazon SQS, SNS and lambda.
Architecture
Setup
Instead of declare the AWS access key and secret in the serverless.yml, we use the default AWS profile for development and deployment to hide our keys. Fill in your own profile if you are not using the default profile.
We are using ElasticMQ, an in-memory message queue system, with serverless-offline-sqs plugin to simulate the local AWS SQS environment. We have provided a docker-compose file to establish the ElasticMQ service.
cd ./elasticMQdocker-compose up -d
Development
npm installNODE_ENV=development serverless offline start
Deploy
npm installnpm run deploy
Run
node script/invoke.js
ToDo List
- Better Documentation
- Replace the wildcard on iamRoleStatements in serverless.yml
- Auth mechanism to prevent API dispose to public
- Error handling, Amazon SQS Dead-Letter Queues
- Test cases
- CICD pipeline
Remark
There may be a bug on serverless-webpack that it isn't work to use webpack.DefinePlugin to declare the environment variable.
License
This software is released under the MIT license. See the license file for more details.