Lambda使用Tracer报错:找不到aws_xray_sdk模块求助
解决Lambda PowerTools Tracer报错No module named 'aws_xray_sdk'
问题原因
Tracer组件依赖aws_xray_sdk库,但打包Lambda层时未遵循Lambda要求的目录结构,导致运行时无法找到依赖文件。
解决方案
1. 按Lambda层规范重新打包依赖
Lambda要求Python类库必须放在python/lib/python{版本号}/site-packages/目录下,操作步骤如下:
- 创建符合要求的目录结构(替换
3.9为你的Lambda函数使用的Python版本,比如3.10、3.11):mkdir -p python/lib/python3.9/site-packages - 进入上级目录,执行pip安装命令,将依赖安装到指定路径:
pip install aws_lambda_powertools aws_xray_sdk -t python/lib/python3.9/site-packages/ --platform manylinux2014_x86_64 --only-binary=:all:注:
--platform参数确保安装适配Lambda运行环境的二进制包,避免本地环境差异引发问题 - 将
python目录打包为zip文件(确保zip根目录直接是python文件夹,不要包含外层目录):zip -r powertools-layer.zip python/
2. 更新Lambda层并关联函数
- 在Lambda控制台删除旧的层版本,上传刚打包的
powertools-layer.zip作为新的层版本 - 确认你的Lambda函数已关联这个新的层版本
3. 验证运行时版本一致性
检查Lambda函数配置中的Python运行时版本,必须和打包路径里的python3.9完全匹配,比如函数用Python 3.10,打包路径就要改成python/lib/python3.10/site-packages
内容的提问来源于stack exchange,提问作者iamabhaykmr
相关产品推荐
相关产品推荐

