我在 Python 3.9 中有一个 lambda 函数,它非常简单。只需发送一个帖子请求。过去几周效果很好。
我已在 CloudFormation 中多次删除并重新创建堆栈,但没有出现任何问题。
随机地,今天它开始抛出错误
"errorMessage": "Unable to import module 'index': No module named 'requests'",
"errorType": "Runtime.ImportModuleError"
index.py 是 lambda 函数的名称。
所以我查了一下,每个人都说“请求”没有预先打包到 Lambda 中,您需要创建一个层,手动将其安装到 zip 等中。
这怎么可能?它可以工作数周而无需创建图层,并且代码也没有被触及。
但现在“导入请求”就停止工作了?
当然,请求模块还有其他替代方案。我想到了“urllib”。但这困扰着我。它怎么可能工作了几周,但随机地停止了导入该模块?
这就像某种曼德拉效应。每个人都说你需要创建一个 venv,并手动将其与依赖项打包。我从来没有这样做过,而且它已经工作了很长时间了。我感觉我要疯了...
您是否可能更改了该函数使用的 Python 版本?
From AWS Lambda 中的 Python SDK 即将发生变化 | AWS 计算博客 https://aws.amazon.com/blogs/compute/upcoming-changes-to-the-python-sdk-in-aws-lambda/:
为了响应客户反馈,我们决定取消本博文中描述的更改。适用于 Python 2.7、Python 3.6 和 Python 3.7 的 AWS Lambda 运行时中包含的 AWS 开发工具包版本将继续包含 Botocore 中的“请求”模块。使用这些运行时的客户无需执行任何操作。 Lambda 运行时为Python 3.8 及更高版本不包括“请求”模块。在这些运行时中使用“请求”的客户应将“请求”模块与其函数代码打包在一起或作为 Lambda 层打包。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)