📅  最后修改于: 2023-12-03 15:40:07.639000             🧑  作者: Mango
在 AWS Lambda 运行 Python 代码时,常常会遇到找不到模块的错误。这种错误通常意味着您需要在部署包中添加缺少的模块。例如,当您的 Lambda 函数需要使用 Python requests 库时,在部署包中需要包含该库。
在本例中,Lambda 函数无法导入“app”模块,因为该模块需要使用 requests。有两种方法可以解决此问题:
您可以在本地使用 pip 安装 requests 模块,并将安装包中的完整内容打包到.zip 文件中。然后,上传.zip 文件到 Lambda 并更新代码以从该.zip 文件中导入 requests 模块。
以下命令可以帮助您安装 requests 并将其打包到.zip 文件中:
pip install requests -t ./
zip -r app.zip .
该命令将 requests 安装到当前目录的./ 目录中,并将完整项目打包到名为 app.zip 的.zip 文件中。
AWS Lambda 的层是一种在多个 Lambda 函数之间共享代码和库的方法。您可以将 requests 库制作为一个 Lambda 层,并将其与您的函数相关联。
以下命令可以帮助您创建一个 Lambda 层:
mkdir python
cd python
pip install requests -t .
zip -r requests-layer.zip .
该命令将 requests 安装到./ 目录中,并将完整项目打包到名为 requests-layer.zip 的.zip 文件中。
接下来,您可以使用 AWS CLI 命令将该层上传到 Lambda:
aws lambda publish-layer-version --layer-name requests --description "Python requests library" --zip-file fileb://requests-layer.zip
最后,在 Lambda 控制台上创建 Lambda 层并将其与您的函数相关联。
通过这两种方法之一,您应该能够成功导入缺少的 requests 模块,并在 Lambda 中使用该模块运行您的函数。