【发布时间】:2018-10-25 20:18:35
【问题描述】:
为了简化我的程序,我有一个 MySQL RDS DB,我想开发一个 Lambda 函数来获取插入到特定列中的最后一个值。
我在 lambda 函数中有以下代码,基于 this AWS tutorial:
# Connexion to DB outside the handler, per AWS recomendation
def lambda_handler(event, context):
with conn.cursor() as cur:
cur.execute("SELECT column FROM DB.table ORDER BY create_time DESC LIMIT 1;")
row = cur.fetchone()
return row[0]
我正在使用pymysql。
基本上,在第一次调用中(例如,在保存 lambda 函数之后)它按预期工作,并返回表中的最后一个值。
但是,对于短时间间隔(几分钟)内的任何其他调用,它会继续返回相同的值,与任何 DB 更改无关。
保存或等待几分钟会导致正确的结果。 是否有可能我无意中缓存了结果?
【问题讨论】:
-
看到this question后用
conn.autocommit(True)解决了。
标签: python mysql amazon-web-services aws-lambda amazon-rds