【发布时间】:2018-05-07 00:11:30
【问题描述】:
我正在尝试使用以下代码更新 dynamodb 并从 Lambda 函数发送 SNS 通知。即使函数成功执行 SNS 通知也不会发生。 SNS 日志也不显示任何条目。从控制台到同一个 ARN 的 SNS 有效。检查以更新也不起作用的 dynamodb。为 Dynamodb 和 SNS 发布创建所需的 IAM 角色策略。任何调试指针或方法都会有所帮助。
'use strict';
console.log('Loading function');
var AWS = require("aws-sdk");
var sns = new AWS.SNS();
AWS.config.update({
region: "us-east-1"
});
var docClient = new AWS.DynamoDB.DocumentClient();
exports.handler = (event, context, callback) => {
context.callbackWaitsForEmptyEventLoop = false;
console.log('Received event: ', JSON.stringify(event, null, 2));
console.log('Received context: ', JSON.stringify(context, null, 2));
// console.log('Cognito id: ', context.identity.cognitoIdentityId);
+console.log("Start .................." + new Date().toString());+
console.log("Notifying....:");
sns.publish({
TargetArn: "arn:aws:sns:us-east-1:796915632304:endpoint/GCM/JaybMe/b65794ea-d30d-38a8-8450-e0ff3b877bfc",
Message: "Simple notification message "
}, function(err, data) {
if(err) {
console.error('error publishing to SNS');
context.callbackWaitsForEmptyEventLoop = false;
callback(err);
//context.fail(err);
} else {
console.info('Message published to SNS');
context.callbackWaitsForEmptyEventLoop = false;
callback(null, "SUCCESS");
}
});
console.log('Finished function');
context.callbackWaitsForEmptyEventLoop = false;
callback(null, "SUCCESS");
}
使用运行时 4.3 和 6.10 进行测试,但行为相同
谢谢 萨吉夫
【问题讨论】:
标签: javascript node.js amazon-web-services lambda amazon-sns