【发布时间】:2019-11-02 07:22:27
【问题描述】:
我正在使用一些在 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 文档,但我找不到任何解决方案。有没有人在 VPC 与 Mongo 的连接中遇到过 Lambda 的此类问题并超时?你是怎么解决的?谢谢。
【问题讨论】:
-
您是否考虑过在您的 connect() 调用中设置 poolSize,取决于您的典型 Lambda 并发?
-
我还没有尝试过,但是该参数将如何影响这个问题?
-
您可以阅读网络上的连接池,但它是一种标准技术,可让多个并发客户端访问数据库。
标签: node.js amazon-web-services aws-lambda mongodb-atlas