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

时间:2019-06-19 14:04:24

标签: node.js amazon-web-services 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文档,但是找不到任何解决方案。是否有人在与Mongo的VPC连接中遇到Lambda这样的问题并超时?您是如何解决的?谢谢。

1 个答案:

答案 0 :(得分:1)

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

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

在我的设置中,connect()方法需要20到70毫秒才能完成,我想比起间歇性和不可复制的悬挂连接,我会更加痛苦。

出于良好的考虑,我在MongoClient连接选项中添加了{ poolSize: 1 }