我尝试在 AWS Lambda 中运行使用
lxml
库的 Python 脚本,但遇到导入错误:
Response
{
"errorMessage": "Unable to import module 'lambda_function': cannot import name 'etree' from 'lxml' (/opt/python/lib/python3.11/site-packages/lxml/__init__.py)",
"errorType": "Runtime.ImportModuleError",
"requestId": "9a37109e-1cc3-4800-8a4e-c70c5c7bfe20",
"stackTrace": []
}
在我的 AWS Lambda 函数中?
在我的研究中,我发现lxml是一个依赖于操作系统的库。这似乎会导致问题,因为我无法将它用作 AWS Lambda 中的层,它安装在不同的操作系统 (Windows/Mac/Linux) 上。
有没有办法在 AWS 中安装
lxml
并将其添加为 AWS Lambda 的层?如何解决此问题并在我的 AWS Lambda 函数中成功导入 lxml?
我在这里使用Python 3.11。
创建 lambda 时,您指定它将运行的架构。
在撰写本文时,您可以选择 x86_64 和 arm64。
无论架构如何,Lambda 运行时都使用 Amazon Linux(此处的表包含针对不同运行时的 Amazon Linux 版本)。它不使用 Windows 或 Mac。
只要您的层与 Lambda 的架构相匹配并使用主机系统提供的依赖项,您完全可以将所有依赖项放入一个层中。