【问题标题】:Connection timeout between AWS Lambda function and MongoDBAWS Lambda 函数和 MongoDB 之间的连接超时
【发布时间】:2020-09-02 02:16:08
【问题描述】:

我正在研究连接到在 EC2 实例上运行的 MongoDB 服务器的 AWS lambda 函数 (NodeJS)。 Lambda 函数位于 VPC-1 中,MongoDB 服务器(EC2 实例)位于 VPC-2 中。

我们已在 VPC-1 和 VPC-2 之间设置 VPC 对等

lambda 函数间歇性地抛出超时错误。 它在 50% 的时间和 50% 的时间工作,它会抛出超时错误。

注意:MongoDB 在 EC2 实例上运行是专门为开发此项目而设置的。它不会获得任何额外的流量。

此外,在 NodeJS 中开发的该项目的另一个组件再次从另一个 EC2 实例运行,可以与 MongoDB 服务器通信,而不会出现任何超时问题。

有人可以帮助我了解超时问题的可能原因吗?

提前致谢。

【问题讨论】:

  • 是db连接超时还是lambda执行超时?
  • @Marcin - 数据库连接超时
  • @Faisal 我发现从 Lambda 到 MongoDB Atlas 的连接出现间歇性问题,您找到问题的根源了吗?

标签: node.js mongodb amazon-web-services aws-lambda connection-timeout


【解决方案1】:

希望以下文章能解决您的问题:

修复:增加 Lambda 函数配置页面上的超时设置/内存

nodejs 异步相关问题,请参考以下链接:

AWS Lambda: Task timed out

【讨论】:

  • 感谢您的回复。超时和内存已经增加到 60 秒,这足以让 nodejs 应用程序连接到 mongo。当一切正常时,我会在几毫秒内得到响应,但在超时情况下,即使是 60 也可以少做处理。
  • 检查提到的文章看起来需要对 mongodb 服务器配置进行一些更改 如何修复 MongoDB 连接超时? - Bobcares
【解决方案2】:

Lambda 超时最好描述为

Lambda 允许函数在停止之前运行的时间量。默认值为 3 秒。允许的最大值为 900 秒。

在控制台中,您可以将此超时增加到更大的数字。

当您单击 Lambda 函数时,将出现一个监控选项卡。从这里您应该能够看到 Lambda 函数的执行时间。您可能会发现它总是靠近酒吧。

我建议将超时设置得比您预期的要高一些,然后再查看这些指标。一旦你有了基线,再次调整这个超时值

【讨论】:

  • 感谢您的回复。超时和内存已经增加到 60 秒,这足以让 nodejs 应用程序连接到 mongo。当一切正常时,我会在几毫秒内得到响应,但在超时情况下,即使是 60 也可以少做处理。
  • 您好,您检查过您的安全组/NACL吗?
猜你喜欢
  • 2018-07-23
  • 2020-04-08
  • 2023-01-18
  • 2021-04-27
  • 1970-01-01
  • 2017-07-25
  • 1970-01-01
  • 2018-03-21
  • 1970-01-01
相关资源
最近更新 更多