首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript TypeError

JavaScript TypeError
EN

Stack Overflow用户
提问于 2018-02-16 02:36:52
回答 1查看 233关注 0票数 0

当我测试我的aws lambda时,我得到了一个TypeError:无法读取未定义的属性'0‘。代码是

代码语言:javascript
复制
'use strict';

const snsPublisher = require('./snsPublisher');

exports.handler = (event, context, callback) => {
    //console.log('Received event:', JSON.stringify(event, null, 2));
    const message = event.Records[0].Sns.Message;
    console.log('From SNS:', message);
    callback(null, message);
};

module.exports.snsLamdbaTriggered = (event, context, callback) => {
  var topic = event.Records[0].Sns.TopicArn;
  var message = event.Records[0].Sns.Message;
  console.log(topic + '  ' + message);
  callback(null, { message: 'SNS lamdba was triggered from the topic ' + topic + ' with message ' + message , event });
};

当我改变括号内的值时,我仍然得到相同的错误。有人知道问题出在哪里吗?

EN

回答 1

Stack Overflow用户

发布于 2018-02-16 04:12:17

使用SNS调用lambda函数时,该函数需要一个具有特定属性的事件对象。因此,“测试”您的lambda函数将失败,除非您配置您的lambda测试事件看起来与SNS event完全相同,例如:

代码语言:javascript
复制
{
  "Records": [
    {
      "EventVersion": "1.0",
      "EventSubscriptionArn": eventsubscriptionarn,
      "EventSource": "aws:sns",
      "Sns": {
        "SignatureVersion": "1",
        "Timestamp": "1970-01-01T00:00:00.000Z",
        "Signature": "EXAMPLE",
        "SigningCertUrl": "EXAMPLE",
        "MessageId": "95df01b4-ee98-5cb9-9903-4c221d41eb5e",
        "Message": "Hello from SNS!",
        "MessageAttributes": {
          "Test": {
            "Type": "String",
            "Value": "TestString"
          },
          "TestBinary": {
            "Type": "Binary",
            "Value": "TestBinary"
          }
        },
        "Type": "Notification",
        "UnsubscribeUrl": "EXAMPLE",
        "TopicArn": topicarn,
        "Subject": "TestInvoke"
      }
    }
  ]
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48814144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档