AWS Lambda Layer调用报错:无法找到tslib模块
解决Lambda Layer中
@aws-sdk/client-ses找不到tslib的问题 核心原因
Lambda Node.js运行时仅会将Layer中nodejs/node_modules目录加入模块搜索路径,若依赖直接放在Layer根目录的node_modules,运行时无法识别,导致找不到tslib。而将代码直接集成到Lambda时,依赖位于/var/task/node_modules,属于Node.js默认搜索路径,因此正常运行。
修复步骤
调整Layer目录结构
把Layer的代码和package.json移动到src/layers/sendTemplatedEmail/nodejs目录下,最终结构如下:src/layers/sendTemplatedEmail/ └── nodejs/ ├── sendTemplatedEmail.js ├── package.json └── node_modules/重新安装依赖
进入nodejs目录执行安装命令,确保所有依赖(包括tslib)被安装到正确路径:npm install确认Serverless配置
保持serverless.yml中Layer的path配置不变(指向src/layers/sendTemplatedEmail),Serverless会自动打包nodejs目录结构:layers: SendTemplatedEmail: path: src/layers/sendTemplatedEmail # 其余配置保留
验证
部署后触发Lambda,检查是否仍有模块缺失错误。若问题持续,确认nodejs/node_modules下存在tslib文件夹,且安装过程无报错。
内容的提问来源于stack exchange,提问作者Orjwan98
相关产品推荐
相关产品推荐

