我是.NET开发人员,是python和aws lambda的新手。
我有一个用python编写的lambda,它连接到mysql数据库。建议我将连接置于处理程序的范围之外,以便将其用作一种连接池,避免随着更多的lambda旋转而过度打开连接。此方法有效,但是如果该连接被终止(无论出于何种原因),则lambda将失败,因为它们不会检查连接是否已关闭并重新打开连接。我尝试围绕它编写一种单例包装器类,但是它没有用,而且我似乎无法在处理程序范围内为该变量重新分配值。有什么办法可以做我想要的吗?下面是我的lambda函数的基本概述(是的,我知道sql对该方法实际上无效)。
import pymysql
connection = pymysql.connect(MYSQL_ENDPOINT, user=MYSQL_USERNAME, passwd=MYSQL_PASSWORD, db=MYSQL_DBNAME, connect_timeout=5)
def lambda_handler(event, context):
def do_stuff():
with con.cursor() as cur:
cur.execute("SELECT * FROM table;")
con.commit()