A simple Node.js example that publishes a message to a SNS topic, then consumes the message using a SQS queue.

Full source code (AWS Credentials omitted)

AWS Console Steps

  1. Set up SNS Topic
  2. Set up SQS Queue
  3. Set permissions on the Queue to allow the topic to publish to it
  4. Subscribe the Queue to the SNS Topic
  5. Set up IAM User and give the user access to SNS and SQS
  6. Create and download the IAM User credentials
// publish a message to an SNS topic

var AWS = require('aws-sdk');
    AWS.config.loadFromPath('./config.json');
var sns = new AWS.SNS();

var params = {
  TopicArn : "arn:your-topic-arn",
  Message: "Hello World"
};

sns.publish(params, function(err, data) {
  // published message
});
// consume a message from an SQS queue

var AWS = require('aws-sdk');
    AWS.config.loadFromPath('./config.json');

var sqs = new AWS.SQS();
var queueUrl = "https://your-queue-url";

sqs.receiveMessage({
    QueueUrl : queueUrl
  },
  function (err, data) {
    if (data.Messages && data.Messages.length > 0) {

      var message = data.Messages[0];

      // TODO: process the message...

      // Delete the message from the queue
      var receiptHandle = message.ReceiptHandle;

      sqs.deleteMessage({
          QueueUrl: queueUrl,
          ReceiptHandle: receiptHandle
        },
        function (err, data) {
          // message deleted
        }
      );
    }
});
// config.json to store AWS credentials for this example

{
  "accessKeyId": "YOUR_ACCESS_KEY",
  "secretAccessKey": "YOUR_SECRET_ACCESS_KEY",
  "region": "eu-west-1"
}