AWS Lambda Mongodb错误:拓扑被破坏

时间:2018-02-15 05:06:42

标签: node.js mongodb lambda

我已经创建了一个Lambda函数,用于通过Node JS中的这个函数将数据存储到Mongodb:

const magic = {
  0b000() { console.log("a"); … },
  0b001() { console.log("b"); … },
  0b010() { console.log("c"); … },
  0b011() { console.log("d"); … },
  0b100() { console.log("e"); … },
  0b101() { console.log("f"); … },
  0b110() { console.log("g"); … },
  0b111() { console.log("h"); … },
};

我已经const Connection = MongoClient.connect(...); const demoColl = Connection.collection('demo'); demoColl.bulkWrite(bulkArray...); client.close(); 顺利地进行了测试,并且在逐个运行时也取得了成功。

但我的应用程序每秒调用该函数3-5次,lambda显示此错误消息

  

" errorMessage":"拓扑被破坏"," errorType":" MongoError"

我做了一项研究,当函数仍在运行时导致关闭数据库。如何防止其中一个连接关闭不会影响另一个Lambda函数?

1 个答案:

答案 0 :(得分:2)

{{1}}

我有这个文件缓存MongoDB连接并重用(如果可用)。只要确保它在lambda处理程序之外。

并且,关闭连接并不是一个好主意,因为每次调用lambda时都会使lambda连接 - 这会增加DB和Lambda执行时间的负担。

参考:https://blog.cloudboost.io/i-wish-i-knew-how-to-use-mongodb-connection-in-aws-lambda-f91cd2694ae5