gpt4 book ai didi

Python Aws lambda 函数无法实时获取 rds Mysql 表值

转载 作者:太空宇宙 更新时间:2023-11-04 05:07:41 24 4
gpt4 key购买 nike

我有一个使用 python/pymysql 和 AWS rds Mysql 实例作为后端的 AWS lambda。它连接良好并且运行良好,我还可以从我的 android 应用程序访问 lambda。我遇到的问题是,在我使用本地机器 mysql workbench 成功地将一个值插入到 rds mysql 表中并从 AWS 控制台运行 lambda 函数后,它没有立即显示新插入的值。在 python aws lambda 代码上,我没有关闭连接或游标。但是,如果我在 AWS 控制台上编辑 lambda 函数,我所说的编辑是指插入一个空格并再次从 AWS 控制台运行 lambda,它会获取新插入的值。我如何配置/编码以使 lambda 实时获取数据库值。

最佳答案

许多人在编写 lambda 时使用以下方法。

# open connection
conn = pymysql...

def respond:
return message

def handler(event, context):
use conn
respond

如果调用“关闭”在一起(关闭由 AWS 定义),这会产生重用数据库连接“conn”的效果。问题是这将给您缓存读取即使您更改表。原因是 conn 没有超出范围,并且在重新调用 lambda 时被重用。通过将它引入处理程序,它会超出范围并在每次调用时关闭。这会带来性能损失,但您获得的数据与数据库当前状态下的数据相同。

lambda 应该是:

def respond:
return message

def handler(event, context):
# open connection
conn = pymysql...
use conn
respond

我可能不了解确切原因,但这对我有用。顺便说一句,我尝试使用 NO_SQL_CACHE、自动提交、显式提交。在我每次都让系统重新连接之前,什么都没有用。 YMMV!

关于Python Aws lambda 函数无法实时获取 rds Mysql 表值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43944404/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com