Node.js web client that excercises the AWS SNS & SQS functionality
- app.js = main app & webserver. Launch this
- /controllers = HTTP routes and sns/sqs API functionality
- /config = example aws creds config file and example endpoint override (optional) config file
- /public = stylesheet
- views = main index.ejs
- views/partials = partials for menu navigation, sns and sqs forms
- Create SQS queues
- List SQS queues
- Get queue URL
- Get queue attributes
- Send message to queue
- Get (receive) message from queue
- Delete message from queue
- Purge all messages from queue
- Delete queues
- Set queue attributes (namely policy for SNS subcription)
- Create topics
- Add queue subscription
- Add email subscription
- Send message to topic
- List topics
- Delete topics
- List subscriptions
- Delete subscriptions
Based on code from AWS SQS examples at: https://www.youtube.com/watch?v=4Z74luiE2bg\ and https://github.com/andrewpuch/aws-sqs-node-js-examples
Mark Allen's SNS code here: https://github.com/markcallen/snssqs/blob/master/create.js
CSS template inspired from: https://www.sanwebe.com/2014/08/css-html-forms-designs
install Node.js: https://nodejs.org/en/
clone the repo and install modules:
git clone https://github.com/ajyounguk/aws-sns-sqs-demo
cd aws-sns-sqs-demo
npm install
Copy the configuration details and add your AWS creds.
** please take care and don't commit your creds back to git **
cd config
cp aws-config-sample.json aws-config.json
If you need to route your request to a proxy, or want to route SQS/SNS requests to a local pseudo AWS service (e.g. goaws or localStack) you can override endopoints by creating a aws-override.json config file:
cd config
cp aws-override-sample.json aws-override.json
and edit the endpoints
For IAM user, add group policy = AmazonSQSFullAccess, AmazonSNSFullAccess
run the webserver:
node app.js
point your browser at the local/remoteIP port 3000 to load the HTML forms, click the SNS/SQS buttons to select the required functionality.
For more information on AWS SNS and SQS:
https://aws.amazon.com/sns/ https://aws.amazon.com/sqs/
goaws and localstack links:
https://github.com/p4tin/goaws https://github.com/localstack/localstack