Created
August 23, 2018 19:00
-
-
Save purdy/5b9c2a138646c66c413a0c0d5108447e to your computer and use it in GitHub Desktop.
This is the Lambda function for taking SNS messages from SES and saving them into a DynamoDB table.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var aws = require('aws-sdk'); | |
var ddb = new aws.DynamoDB({ | |
params: { | |
TableName: process.env.ddb_table_name | |
} | |
}); | |
exports.handler = function(event, context, callback) { | |
var result = true; | |
for (var i=0, len = event.Records.length; i < len; i++) { | |
saveToDynamoDB(event.Records[i], context); | |
} | |
}; | |
function saveToDynamoDB(event, context) { | |
var sns_event = event.Sns; | |
var msg = JSON.parse(sns_event.Message); | |
var ddb_item = { | |
Item: { | |
sender: {"S": msg.mail.source}, | |
sns_message_id: {"S": sns_event.MessageId}, | |
message: {"S": sns_event.Message} | |
}, | |
TableName: process.env.ddb_table_name | |
}; | |
var result = ddb.putItem(ddb_item, function(err, data) { | |
if (err) { | |
console.log("Error in putItem: " + err.message + " (" + err.code + ")"); | |
context.fail(err); | |
} | |
else { | |
console.log("Success"); | |
context.succeed(); | |
} | |
}); | |
return true; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment