AWS Lambda 无法(间歇性)连接到 AWS VPC 内的 MongoDB

zeu*_*234 5 amazon-web-services node.js aws-lambda mongodb-atlas

我正在使用在 VPC 内运行的一些 AWS Lambda 函数,这些函数需要连接到后端 Mongo Atlas 数据库以进行数据存储/检索。

我使用 Javascript 进行编码,因此我自然使用官方 MongoDB Node JS 客户端来建立连接。我面临的问题是,每当我进行一些并发 lambda 调用时,其中一些调用无法成功建立连接,并且基本上会挂起,直到 Lambda 超时。例如,如果要调用 5 个不同的函数,则其中 2 个可能会在连接尝试时挂起,直到 Lamdba 超时。连接保存在处理程序函数之外,以便在后续函数调用中重用,并且代码基于此处指定的最佳实践: https: //docs.atlas.mongodb.com/best-practices-connecting-to-aws-lambda/

我已经阅读了所有可用的在线资源和 mongo 文档,但我无法找到任何解决方案。有没有人遇到过这样的问题 Lambda 在 VPC 连接到 Mongo 并超时?你是怎么解决的?谢谢。

mtk*_*one 2

我遇到了完全相同的问题。

通过明确不遵循最佳实践,而是为每个需要连接的 lambda 请求打开(和关闭)一个新连接来解决此问题。

在我的设置中,该connect()方法需要 20 到 70 毫秒才能完成,我想我会比间歇性和不可重现的挂起连接更容易遭受这种痛苦。

为了更好地衡量,我添加{ poolSize: 1 }了 MongoClient 连接选项。