AWS Lambda函数连接到MongoDB

时间:2020-03-02 19:18:36

标签: python mongodb amazon-web-services aws-lambda

我有一个简单的lambda函数,它可以连接数据库并找到用户。

import pymongo

def my_handler(event, context):
    client = pymongo.MongoClient('uri') #My db connection here. 
    db = client.dbName
    col = db.users
    col.find_one({'email':'example@gmail.com'})
    foundedUser = col.find_one({'hello':'Amazon DocumentDB'})
    print(foundedUser)
    client.close()

我遇到了一个奇怪的问题,有时lambda会连接并找到100ms或更短的时间。 但是有时30秒后会出现超时错误。 我有所有的vpc配置,依此类推。 我已经尝试使用node.js进行修改,现在尝试使用python结果是相同的。 有什么建议吗?

1 个答案:

答案 0 :(得分:0)

所以我遇到了同样的问题。看看这些。

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

https://www.mongodb.com/blog/post/optimizing-aws-lambda-performance-with-mongodb-atlas-and-nodejs

还有这个

https://hackernoon.com/building-a-serverless-rest-api-with-node-js-and-mongodb-2e0ed0638f47

显然,AWS Lambda是“无状态的”,据我了解,一旦冷启动调用此函数,它将运行您的代码并连接到数据库。之后,您在一定时间内(例如5分钟)对Lambda函数进行的任何调用都将使用相同的连接。之后,如果关闭连接并再次调用函数,则Lamda不会重新建立与数据库的连接。

这些教程有望帮助设置它,以便它在每次函数调用时检查连接。