首页 > 解决方案 > 如何在 AWS Lambda 中抽象数据库连接?

问题描述

我正在 AWS 中构建一个应用程序,其中包含很多要编写的 Lambda 函数 - 所有这些函数都将通过运行以下代码创建一个要查询的数据库实例:

mydb = mysql.connector.connect(
host="endpoint.rds.amazonaws.com",
user="user",
passwd="password",
database="dbname"
)

现在,我不想在每个 Lambda 函数中显式包含此代码 - 我宁愿将它放在其他地方(在层中或单独的 Lambda 函数中),这样可以简单地通过类似的东西来完成这个:

mydb = ConnectToDB()

关于如何做到这一点的任何想法?

标签: aws-lambdaaws-lambda-layers

解决方案


解决了!我创建了一个名为 DBConnections.py 的 python 文件,其中包含以下函数 - 我将它包含在我的 AWS Lambda 层的部署包中。

def Connect():

mydb = mysql.connector.connect(
host="endpoint.amazonaws.com",
user="user",
passwd="password",
database="mydbname"
)

return mydb

部署后,我唯一要做的就是调用它:

from DBConnections import Connect
mydb = Connect()

瞧。


推荐阅读