You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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默认搜索路径,因此正常运行。

修复步骤

  1. 调整Layer目录结构
    把Layer的代码和package.json移动到src/layers/sendTemplatedEmail/nodejs目录下,最终结构如下:

    src/layers/sendTemplatedEmail/
    └── nodejs/
        ├── sendTemplatedEmail.js
        ├── package.json
        └── node_modules/
    
  2. 重新安装依赖
    进入nodejs目录执行安装命令,确保所有依赖(包括tslib)被安装到正确路径:

    npm install
    
  3. 确认Serverless配置
    保持serverless.yml中Layer的path配置不变(指向src/layers/sendTemplatedEmail),Serverless会自动打包nodejs目录结构:

    layers:
      SendTemplatedEmail:
        path: src/layers/sendTemplatedEmail
        # 其余配置保留
    

验证

部署后触发Lambda,检查是否仍有模块缺失错误。若问题持续,确认nodejs/node_modules下存在tslib文件夹,且安装过程无报错。


内容的提问来源于stack exchange,提问作者Orjwan98

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 04:43:22