amazon-web-services - AWS SNS 创建超时

标签 amazon-web-services aws-lambda amazon-sns

我有 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 并超时的原因。删除违规子网后,它开始工作。从那时起我就没有看到这个问题了。

关于amazon-web-services - AWS SNS 创建超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43121829/

相关文章:

amazon-web-services - 使用多个帐户时无法创建新舞台?

amazon-web-services - DynamoDB : How is read/write capacity calculated and what does it mean (for the free tier) if it is scaled quickly?

java - 使用 Amazon SQS 的多个消费者

amazon-web-services - AWS SAM YAML 文件无法引用 S3 事件的现有存储桶

amazon-web-services - 使用 Goroutines 和 Channels 将多个文件并行上传到 Amazon S3

amazon-web-services - Ec2 上的 sendmail 和 Amazon SES 有什么区别

amazon-web-services - 针对 LocalStack 运行 CDK Bootstrap 失败并出现凭据错误

javascript - 从 zip 文件在 AWS 中创建 lambda 函数

amazon-web-services - 云形成 : Publish to SNS topic

amazon-web-services - 来自账户 A 的 AWS Cloudwatch 警报无法发布到账户 B 中的 SNS 主题