我是AWS Lambda的新手,对它很感兴趣。我有一个MongoDB实例,想通过我的AWS lambda函数连接到它。我该如何连接到我的mongo实例?由于无法将pymongo加载到AWS Lambda中,因此我该如何在Lambda函数中使其工作?
client = MongoClient()
client = MongoClient("mongodb://xxxxxx:27017 username user --password")
我是AWS Lambda的新手,对它很感兴趣。我有一个MongoDB实例,想通过我的AWS lambda函数连接到它。我该如何连接到我的mongo实例?由于无法将pymongo加载到AWS Lambda中,因此我该如何在Lambda函数中使其工作?
client = MongoClient()
client = MongoClient("mongodb://xxxxxx:27017 username user --password")
pip install pymongo -t <your_location>
进行下载,接着将其与代码和所有依赖项一起压缩,然后上传到Lambda控制台。import pymongo
name = "db_username"
password = "db_password"
db_name = "db_name"
db_host = "db_host"
mongo_link = "mongodb://"+name+":"+password+"@"+db_host+"/"+db_name
def handler(event, context):
client = pymongo.MongoClient(mongo_link)
# Get the sampleDB database
db = client.sampleDB
MongoClientURI mongoClientURI = new MongoClientURI(mongoURl);
MongoClient mongoClient = new MongoClient(mongoClientURI);
MongoDatabase db = mongoClient.getDatabase(mongoDB);
使用SSH连接。有一个名为“ssh tunnel”的npm模块。安装它并将正确的值传递给它,例如IP地址、端口、用户名、带有PEM文件(必须)的DB端口。它会建立连接。
首先,您需要通过SSH连接,然后它将在您的AWS Lambda和Mongodb实例之间建立连接
如果您的Mongodb托管在EC2实例中,则可以通过此方式传递
let dbDetails ={
username:'', //Ubuntu or ec2-user
dstHost:'localhost',
host:'', //IP Address of your instance
dstPort:27017,
privateKey:fs.readFileSync(''), //your pem file
port:22
}
所以,在这之后,您需要使用像SSH隧道这样的SSH客户端
let server = tunnel(config, function (error, server) {
//handle error
}
{
//success message
}