我使用了一个非常简单的代码,稍微修改了AWS提供的示例:
exports.handler = async (event) => {
// Load the AWS SDK for Node.js
var AWS = require('aws-sdk');
// Set region
AWS.config.update({region: 'ap-southeast-2'});
// Create publish parameters
var params = {
Message: 'This is a sample message',
Subject: 'Test SNS From Lambda',
TopicArn: 'arn:aws:sns:ap-southeast-2:577913011449:TestTopic'
};
// Create promise and SNS service object
var publishTextPromise = new AWS.SNS().publish(params).promise();
let response = {
statusCode: 200,
body: JSON.stringify('Hello from Lambda!'),
};
// Handle promise's fulfilled/rejected states
publishTextPromise.then(
function(data) {
console.log("Message ${params.Message} send sent to the topic ${params.TopicArn}");
console.log("MessageID is " + data.MessageId);
response.result = 'Success';
}).catch(
function(err) {
console.error(err, err.stack);
response.result = 'Error';
});
return response;
};
当测试该服务时,我遇到了超时错误。限制时间为3秒。
由于这是一个非常简单的过程,我认为执行它不应该超过3秒。
我已经检查了我的IAM设置,并授予了我的个人资料(管理员资料)对SNS服务具有完全访问权限。但错误仍然存在。我想知道这里出了什么问题,以及我应该如何解决?