该错误提示通常是由Lambda执行角色缺少SNS (Simple Notification Service) 权限所致。在Lambda执行角色上添加SNS权限即可解决该问题。以下是Node.js代码示例:
var AWS = require('aws-sdk');
AWS.config.region = 'us-east-1';
exports.handler = (event, context, callback) => {
var sns = new AWS.SNS();
var params = {
Message: "Test SNS from Lambda",
Subject: "Test SNS",
TopicArn: "arn:aws:sns:us-east-1:xxxxxxxxxxxx:my-sns-topic"
};
sns.publish(params, function(err, data) {
if (err) {
console.log(err, err.stack);
callback(err);
}
else {
console.log(data);
callback(null, "Success");
}
});
};
在Lambda function执行角色中添加SNS Topic publish权限,方法如下:
在'权限”下方添加SNS Topic publish 权限,限制源为SNS Topic ARN或*(表示所有)。