我正在尝试使用自定义模块(例如 pyodbc)运行 AWS Lambda 函数,因此我使用层通过 zip 文件包含它们。我正在关注这些教程:
https://docs.aws.amazon.com/lambda/latest/dg/python-layers.html https://docs.aws.amazon.com/lambda/latest/dg/packaging-layers.html
但是,在测试我的功能时,我不断收到错误消息:
Response:
{
"errorMessage": "Unable to import module 'lambda_function': No module named 'pyodbc'",
"errorType": "Runtime.ImportModuleError",
"requestId": "",
"stackTrace": []
}
我尝试过以下方法:
./
pyodbc-5.2.0.dist-info/
这不起作用,所以我接下来尝试。
python/
Lib/
site-packages/
pyodbc-5.2.0.dist-info/
这不起作用。我看到其他线程似乎在“site-packages”之前有一个额外的 python 子文件夹,所以我还测试了以下目录结构并上传了 zip:
python/
Lib/
python3.11/
site-packages/
pyodbc-5.2.0.dist-info/
我还在 StackExchange 中查看了这些文章,但这些解决方案对我不起作用(抱歉,我无法发布完整链接,因为我的问题被标记为垃圾邮件)
62404733/无法从-aws-lambda-层导入模块
75419822/无法导入模块-aws-lambda-函数
67062313/无法从-aws-lambda 中的层导入包
76105233/导入模块在使用层无法找到包时无法在 aws-lambda 中工作
67118576/aws-lambda-无法从层导入模块
55695187/在 lambda 层中导入库
如有任何帮助或意见,我将不胜感激。抱歉,如果这看起来微不足道,我对 Lambda 层有点陌生。
压缩后的结构应如下所示:
python/
lib/
python3.11/
site-packages/
pyodbc/
pyodbc-5.2.0.dist-info/
您是否通过提取 Layer zip 文件并检查结构来验证 pyodbc 库在 Layer 中可用?