javascript - node js无法处理sns事件消息内容

标签 javascript node.js aws-lambda amazon-sns

我正在尝试从 Node js lambda 项目中的 SNS 事件中的消息中获取内容

这是处理消息的代码

exports.handler = (event, context, callback) => {

var message = event.Records[0].Sns.Message;
console.log('Message received from SNS:', message); 

message.Events.forEach(element => {
    console.log(element);

   });
};

示例事件:

{ 
 "Records": 
  [ 
    { 
     "EventSource": "aws:sns",
     "EventVersion": "1.0",
     "EventSubscriptionArn": "",
     "Sns": 
       { 
         "Type": "Notification",
         "MessageId": "bc86f105-c320",
         "TopicArn": "arn:aws:sns:ewerwrewrw",
         "Subject": "dwqweq23234",
         "Message": 
           {
           "Events":
             [
               {"EventTimestamp":"2018-03-16T10:51:22Z"},
               {"EventTimestamp":"2018-03-16T10:51:22Z"}
             ],
            "EventDocVersion":"2014-08-15"
           },
          "Timestamp": "2018-03-16T10:51:22.691Z",
          "SignatureVersion": "1",
          "Signature": "",
          "SigningCertUrl": "",
          "UnsubscribeUrl": "",
          "MessageAttributes": {} 
      } 
    } 
  ]
 }

这是我在 CloudWatch 日志中得到的:

Message received from SNS: { "Events": [ {"EventTimestamp":"2018-03-16T10:51:22Z"}, {"EventTimestamp":"2018-03-16T10:51:22Z"} ], "EventDocVersion":"2014-08-15" }

TypeError: Cannot read property 'forEach' of undefined at exports.handler

为什么我无法在事件中解析消息对象中的“事件”?

最佳答案

在我解决这个问题后开始工作:

var message = event.Records[0].Sns.Message;

var msgJson = JSON.parse(message);

msgJson["Events"].forEach(element => { .....

关于javascript - node js无法处理sns事件消息内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49320191/

相关文章:

javascript - 使用 jQuery 创建带有 JSON 结果的分组动态行

javascript - 减少多个 if else 语句

javascript - node.js 让代码等到 fs.readFile 完成

node.js - 如何使用nodejs api对react.js应用程序的azure广告帐户进行身份验证?

amazon-web-services - AWS CloudFormation 自定义资源不起作用

javascript - Three.js无法加载DAE模型

javascript - 创建 nw.js + Meteor 桌面应用程序

node.js - stdout 不是 tty。将 bash 用于 Node + 磁带 + Tap-spec

python - 亚马逊 Alexa 技能无法正确运行正在运行的 Python 代码

python - 尝试通过AWS Lambda连接到Google Analytics API,这个 "ModuleNotFoundError: No module named ' google.appengine'“是什么意思