Python CDK部署Lambda:Layer无法安装Pydantic并在脚本中调用
解决Lambda Layer中Pydantic依赖无法导入的问题
问题原因
Lambda的Python运行时只会加载Layer中**python/子目录**下的代码和依赖包,你之前直接将Pydantic安装在Layer根目录,导致运行时无法识别到该依赖。
解决步骤
1. 调整Layer目录结构
在你的schema_response_layer文件夹下创建python子目录,并将自定义模块response_schema.py移动到该目录中,最终结构如下:
lambdas/lambda_layers/schema_response_layer/ ├── python/ │ ├── response_schema.py │ └── (后续安装的Pydantic依赖会存放在这里) └── requirements.txt
2. 安装依赖到正确路径
进入schema_response_layer目录,执行以下pip命令,将Pydantic安装到python目录(指定Lambda兼容的平台,避免本地环境差异导致的兼容问题):
pip install -r requirements.txt -t python/ --platform manylinux2014_x86_64 --only-binary=:all: --python-version 3.9
--platform manylinux2014_x86_64:匹配Lambda使用的Linux x86_64运行环境--python-version 3.9:对应你的Lambda Runtime版本(PYTHON_3_9)--only-binary=:all::确保安装的是预编译的兼容二进制包,避免本地编译的不兼容版本
3. 重新部署CDK栈
执行CDK部署命令更新你的基础设施:
cdk deploy
完成以上步骤后,你的Lambda函数就能正确导入response_schema模块和依赖的Pydantic库,解决No module named 'pydantic'的错误。
内容的提问来源于stack exchange,提问作者J.C Guzman
相关产品推荐
相关产品推荐

