从AWS Lambda Node.js向Android手机发送AWS SNS通知

从AWS Lambda Node.js向Android手机发送AWS SNS通知,android,node.js,amazon-web-services,aws-lambda,amazon-sns,Android,Node.js,Amazon Web Services,Aws Lambda,Amazon Sns,我想从ASW lambda node.js将AWS SNS发送到android设备端点,但我一直遇到以下错误: “com.amazonaws.mobileconnectors.lamdainvoker.LambdaFunctionException:未处理” 代码基本上与我在stackoverflow上看到的示例相似: config = require("./config.js").config; var token = "1234567898123456789"; var AWS = re

我想从ASW lambda node.js将AWS SNS发送到android设备端点,但我一直遇到以下错误: “com.amazonaws.mobileconnectors.lamdainvoker.LambdaFunctionException:未处理”

代码基本上与我在stackoverflow上看到的示例相似:

config = require("./config.js").config;

var token = "1234567898123456789";

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

AWS.config.update({accessKeyId: config.AWSAccessKeyId, secretAccessKey: 
config.AWSSecretKey});
AWS.config.update({region: config.AWSRegion});

var sns = new AWS.SNS();

var params = 
{'PlatformApplicationArn':config["AWSTargetARN"],'Token':token};

var message = 'Test';
var subject = 'Stuff';

sns.createPlatformEndpoint(params,function(err,EndPointResult)
{
var client_arn = EndPointResult["EndpointArn"];

sns.publish({
TargetArn: client_arn,
Message: message,
Subject: subject},
    function(err,data){
    if (err)
    {
        console.log("Error sending a message "+err);
    }
    else
    {
        console.log("Sent message: "+data.MessageId);

    }
});
});
lambda函数策略设置为;“效果”:“允许”android应用程序上的“sns:*”。 所以我猜这不是一个角色政策问题。 感谢您的帮助。
谢谢。

向android端点发送通知:

var sns = new AWS.SNS();

AWS.config.update({
accessKeyId: theaccessKeyId,
secretAccessKey: thesecretAccessKey,
 region: theregion
});


sns.createPlatformEndpoint({
PlatformApplicationArn:  theapplicationARN,
Token: theToken
}, function(err, data) {
if (err) {
callback(null, JSON.stringify(err)); 
console.log(err.stack);
return;
}

var endpointArn = "endpoinARN of receiver";

 var payload = {
 "default": "The message string.",     
"APNS": "{\"aps\":{\"alert\": \"Check out these awesome 
deals!\",\"url\":\"www.amazon.com\"} }",
"GCM":"{\"data\":{\"message\":\"Check out these awesome 
deals!\",\"url\":\"www.amazon.com\"}}",
"ADM": "{ \"data\": { \"message\": \"Check out these awesome 
deals!\",\"url\":\"www.amazon.com\" }}" 
 };

  // first have to stringify the inner GCM object...
  payload.GCM = JSON.stringify(payload.GCM);
  // then have to stringify the entire message payload
  payload = JSON.stringify(payload);

  console.log('sending push');
  sns.publish({
   Message: payload,
  MessageStructure: 'json',
  TargetArn: endpointArn
 }, function(err, data) {
  if (err) {
     callback(null, JSON.stringify(err)); 
  //console.log(err.stack);
  return;
 }

  callback(null, "Sent message successfully"); 
  //console.log('push sent');
  // console.log(data);
 });
});
根据自己的情况进行修改