我已经创建了一个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函数?
答案 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