我有一个Lambda函数,当被调用时,它会创建SNS主题,在其中添加订阅者,然后向其发布消息。发布消息后,它将删除主题。主题的名称和订阅者作为有效载荷传递给Lambda函数。
有时它可以正常工作,但有时会出现“在x秒后超时”的错误。我已经增加了Lambda超时时间,但问题仍然存在。
我查了一下,发现
sns.createTopic(params, function(err, data) {
if(err) {
console.log('Error Creating SNS Topic:',err);
} else {
console.log('SNS Topic Created Successfully:',data);
}
}
函数没有返回值,也没有错误或数据,我看不到console.log()
的结果。
当它正常工作时,一切都很好,但当它失败时,我就找不到问题所在了。
编辑:
所以我进行了更深入的挖掘,我将SNS主题创建的超时时间从默认的5分钟减少到了5秒。当失败发生时,我得到了这个信息:
{ [TimeoutError: Connection timed out after 5000ms]
message: 'Connection timed out after 5000ms',
code: 'NetworkingError',
time: Thu Mar 30 2017 15:35:20 GMT+0000 (UTC),
region: 'us-east-1',
hostname: 'sns.us-east-1.amazonaws.com',
retryable: true }