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

标签 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这样的问题,并且超时?您是如何解决的?谢谢。

最佳答案

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

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

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

为了达到良好的效果,我将{ poolSize: 1 }添加到了MongoClient连接选项中。

关于node.js - AWS Lambda无法(间歇地)连接到AWS VPC内的MongoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56669596/

相关文章:

json - 如何将 JSON 包集成到 Jade 模板中?

node.js - req.params 返回未定义

javascript - 关于 Ember 中的自定义构建

node.js - net.Stream 不是构造函数 - Node Postgres

mysql - RDS 中的 Innodb memcached 插件不删除过期行

python - 如何使用 Boto3 (Python) 列出可用区域

java - IntelliJ IDEA Config 在默认 'helloworld' 应用程序中找不到 AWS Lambda 处理程序

amazon-web-services - AWS ALB 终端节点返回 404

amazon-web-services - 每个文件发送 s3 事件通知多次

c# - 您如何在 Visual Studio 中管理多个 AWS Lambda 函数?