How do i parse event object for SNS notification for SES put to s3 bucket

0

I have the following in my lambda function. However, I am not getting the data point I thought I could get, namely msg.receipt.action.objectKey. According to https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-notifications-contents.html , I believe I am referencing it correctly. What am I missing?

exports.handler = (event, context, callback) => {
let msg = event.Records[0].Sns.Message
console.log("Message: ", msg)
console.log ("msg.receipt.action.objectKey: ", msg.receipt.action.objectKey) // returns undefined.
}

According to Cloudwatch msg equals

{
"notificationType": "Received",
"mail": {
"timestamp": "2019-12-30T01:44:39.191Z",
"source": "source email",
"messageId": "message id",
"destination": [
"destination email"
],
"headersTruncated": false,
"headers": [
{
"name": "Return-Path",
"value": "email"
},
{
"name": "Received",
"value": "value"
},
{
"name": "X-SES-Spam-Verdict",
"value": "PASS"
},
{
"name": "X-SES-Virus-Verdict",
"value": "PASS"
},
{
"name": "Received-SPF",
"value": "pass (spfCheck:"
},
{
"name": "Authentication-Results",
"value": "amazonses.com; spf=pass (spfCheck: "
},
{
"name": "X-SES-RECEIPT",
"value": ""
},
{
"name": "X-SES-DKIM-SIGNATURE",
"value": ""
},
{
"name": "Received",
"value": ""
},
{
"name": "DKIM-Signature",
"value": ""
},
{
"name": "X-Google-DKIM-Signature",
"value": ""
},
{
"name": "X-Gm-Message-State",
"value": "
},
{
"name": "X-Google-Smtp-Source",
"value": ""
},
{
"name": "X-Received",
"value": ""
},
{
"name": "MIME-Version",
"value": "1.0"
},
{
"name": "From",
"value": ""
},
{
"name": "Date",
"value": "Sun, 29 Dec 2019 20:44:26 -0500"
},
{
"name": "Message-ID",
"value": ""
},
{
"name": "Subject",
"value": "What ever"
},
{
"name": "To",
"value": ""
},
{
"name": "Content-Type",
"value": "multipart/alternative; ""
}
],
"commonHeaders": {
"returnPath": "",
"from": [
""
],
"date": "Sun, 29 Dec 2019 20:44:26 -0500",
"to": [
""
],
"messageId": "",
"subject": "What ever"
}
},
"receipt": {
"timestamp": "2019-12-30T01:44:39.191Z",
"processingTimeMillis": 421,
"recipients": [
"receipent@email.com"
],
"spamVerdict": {
"status": "PASS"
},
"virusVerdict": {
"status": "PASS"
},
"spfVerdict": {
"status": "PASS"
},
"dkimVerdict": {
"status": "PASS"
},
"dmarcVerdict": {
"status": "PASS"
},
"action": {
"type": "S3",
"topicArn": "arn:aws:sns:us-east-1:account number:topic",
"bucketName": "bucket",
"objectKeyPrefix": "prefix",
"objectKey": " object key"
}
}
}

Edited by: rannic on Dec 31, 2019 5:07 AM

JSON.parse was the answer.

cranni
gefragt vor 4 Jahren692 Aufrufe
1 Antwort
0

JSON.parse(msg) was the answer.

cranni
beantwortet vor 4 Jahren

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen