Amazon web services MissingRequiredParameter:参数中缺少必需的键“Message”

Amazon web services MissingRequiredParameter:参数中缺少必需的键“Message”,amazon-web-services,aws-lambda,aws-iot,Amazon Web Services,Aws Lambda,Aws Iot,我正在尝试调用AWS Lambda中的代码。此Lambda代码已使用“我的物联网”按钮配置。在运行这段代码时,我没有看到任何错误。此外,我在移动设备上看不到所需的推送通知 我可以在控制台中看到此消息:MissingRequiredParameter:在参数中缺少必需的键“message” 这是我的代码: 'use strict'; console.log('Loading function'); var AWS = require('aws-sdk'); var sns = new

我正在尝试调用AWS Lambda中的代码。此Lambda代码已使用“我的物联网”按钮配置。在运行这段代码时,我没有看到任何错误。此外,我在移动设备上看不到所需的推送通知

我可以在控制台中看到此消息:MissingRequiredParameter:在参数中缺少必需的键“message”

这是我的代码:

'use strict'; 

console.log('Loading function'); 

var AWS = require('aws-sdk');  

var sns = new AWS.SNS();

AWS.config.region = 'xxxxx'; 

const TopicArn = 'xxxxxxxxxxxxxxxxxxxxxxxxxx'  

exports.handler = function(event, context) { 

    console.log("\n\nLoading handler\n\n"); 
    console.log('Received event:', event); 


  const sin = 
      {
"default": "Start", 
"APNS_SANDBOX":"{\"aps\":{\"alert\":\"Start\"}}", 
"GCM": "{ \"notification\": { \"text\": \"Start\" } }"
} // for single click
  const doub = {
"default": "Stop", 
"APNS_SANDBOX":"{\"aps\":{\"alert\":\"Stop\"}}", 
"GCM": "{ \"notification\": { \"text\": \"Stop\" } }"
} // for double click
  const lon = {
"default": "SOS", 
"APNS_SANDBOX":"{\"aps\":{\"alert\":\"SOS\"}}", 
"GCM": "{ \"notification\": { \"text\": \"SOS\" } }"
} //  for long click

  var singleClick = sin[Math.floor(Math.random()*sin.length)]; 
   var doubleClick = doub[Math.floor(Math.random()*doub.length)]; 
   var longClick = lon[Math.floor(Math.random()*lon.length)]; 

   var randomMessage = singleClick;

    if(event.clickType == "DOUBLE")
    { 
  randomMessage = doubleClick; 
    } 

    if(event.clickType == "LONG")
    { 
   randomMessage = longClick; 
    } 


    sns.publish ({               
    Message: randomMessage, 
    TopicArn: TopicArn 
    }, 

    function(err, data) { 
        if (err) { 
            console.log(err.stack); 
            return; 

        } 
        console.log('push sent'); 
        console.log(data);
        context.done(null, 'Function Finished!');
        });
        }

有人能帮我调试这个错误吗?

我找到了答案。我还必须使用stringify命令将变量定义为字符串,否则无法发送JSON格式的消息

我找到了答案。我还必须使用stringify命令将变量定义为字符串,否则无法发送JSON格式的消息

console.lograndomMessage;。看起来变量是未定义的,只基于这里显示的代码。是的。我知道。我需要触发IOT按钮功能,在Android和iOS中向我的应用程序发送消息。我需要在代码中修改什么吗?是的,如果是这种情况,请修复未定义的变量。console.lograndomMessage;。看起来变量是未定义的,只基于这里显示的代码。是的。我知道。我需要触发IOT按钮功能,在Android和iOS中向我的应用程序发送消息。我的代码中有什么需要修改的吗?是的,如果是这样的话,请修复未定义的变量。