我在调用时有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 }
最佳答案 我想我已经解决了这个问题,我的Lambada在VPC中,我在Lambada配置下选择了几个子网.一些选定的子网无法访问互联网,我认为这是在这些子网(没有互联网)下创建lambda容器的原因,它无法访问SNS并超时.删除违规子网后,它开始工作.从那以后我没有看到这个问题.