aws-snsclient

A client for parsing Amazon AWS SNS requests.

Amazon AWS SNS (Simple Notification Service) http(s) endpoint

The main SNSClient callback now returns the more accepted Node.js method of function(err, msg). v0.1 sent both the error and message as a single argument.

$ npm install aws-snsclient
var http = require('http')
  , SNSClient = require('aws-snsclient');
 
var client = SNSClient(function(errmessage) {
    console.log(message);
});
 
http.createServer(function(reqres) {
    if(req.method === 'POST' && req.url === '/receive') {
        return client(req, res);
    }
    res.writeHead(404);
    res.end('Not found.');
}).listen(9000);

Your client only needs to accept one callback, which accepts an object of the decoded message sent from the SNS topic.

message is the raw JSON. You'll probably want access to: message.Message to get the actual message that you sent.

The initial confirmation request sent out by Amazon is automatically confirmed at the same endpoint. No additional effort needed.

Signatures are automatically verified, but we can optionally verify the correct account id, region, and topics.

var auth = {
    verify: false
};
var client = SNSClient(auth, function(errmessage) {
    console.log(message);
});
var auth = {
    region: 'us-east-1'
  , account: 'xxx'
  , topic: 'xxx'
};
var client = SNSClient(auth, function(errmessage) {
    console.log(message);
});
var express = require('express')
  , app = express.createServer()
  , SNSClient = require('aws-snsclient');
 
var auth = {
    region: 'us-east-1'
  , account: 'xxx'
  , topic: 'xxx'
}
var client = SNSClient(auth, function(errmessage) {
    console.log(message);
});
 
app.post('/receive', client);
 
app.listen(9000);