Skip to content

Instantly share code, notes, and snippets.

@diegofcornejo
Last active February 20, 2019 03:33
Show Gist options
  • Save diegofcornejo/d85f3938689e4195ff112590207b60b3 to your computer and use it in GitHub Desktop.
Save diegofcornejo/d85f3938689e4195ff112590207b60b3 to your computer and use it in GitHub Desktop.
Lambda Process SNS pubs generated from SES events
const AWS = require('aws-sdk');
const EVENTS = new AWS.DynamoDB({ region: 'us-east-1', apiVersion: '2012-10-08' });
exports.handler = (event, context, callback) => {
var done = function(response) {
callback(null, response);
};
var message = JSON.parse(event.Records[0].Sns.Message);
var params = {
TableName: "ses-events",
Item: {
"messageId": { S: message.mail.messageId },
"eventType": { S: message.eventType },
"timestamp": { S: message.mail.timestamp },
"from": { S: JSON.stringify(message.mail.commonHeaders.from) },
"to": { S: JSON.stringify(message.mail.commonHeaders.to) },
"subject": { S: message.mail.commonHeaders.subject },
"eventInfo": {S: JSON.stringify(message[message.eventType.toLowerCase()])}
}
};
console.log(params);
EVENTS.putItem(params, function(err, data) {
if (err) {
console.log("Unable to add item. Error JSON:", JSON.stringify(err, null, 2));
done({ error: 'Error' });
}
else {
console.log({ message: 'Created ' + message.mail.messageId });
done({ message: 'Created ', messageId: message.mail.messageId });
}
});
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment