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

Lambda部署Node.js应用遇MissingRequiredDependencyError:aws-sdk缺失

问题分析与解决

你遇到的MissingRequiredDependencyError不算异常,这类情况很常见,主要有以下几个原因及对应的解决办法:

可能的原因

  • Lambda运行时版本自动更新:Node.js 18及以上版本的Lambda运行时已不再内置AWS SDK v2,若你之前使用的是Node.js 16或更低版本,运行时被自动升级后就会出现找不到aws-sdk的报错。
  • 第三方依赖强制要求本地安装:从报错栈里的Connection、ConnectionManager来看,你使用的某个数据库/服务封装库(比如Dynamoose这类DynamoDB ORM)内部会检查本地node_modules中是否存在aws-sdk,而非直接调用Lambda环境内置的版本。
  • Webpack打包配置变更:如果项目用Webpack打包,之前可能配置了externals让aws-sdk不被打包(依赖Lambda内置),但后来配置丢失或被修改,导致打包时试图引入aws-sdk却找不到本地依赖。

解决办法

  • 检查并调整Lambda运行时:
    1. 打开Lambda控制台,查看函数的运行时版本。
    2. 如果是Node.js 18+/20+,要么切换回Node.js 16.x(注意:16.x已进入维护期,不建议长期使用),要么在项目中安装AWS SDK v3(推荐):
      npm install @aws-sdk/client-dynamodb @aws-sdk/lib-dynamodb
      
      或者安装AWS SDK v2并打包上传:
      npm install aws-sdk --save
      
  • 确认第三方依赖要求:查看你使用的封装库的官方文档,确认是否需要手动安装aws-sdk,如果是,执行npm install aws-sdk --save后重新打包部署。
  • 修复Webpack配置:在Webpack配置文件中添加externals配置,让Webpack忽略aws-sdk的打包,直接使用Lambda环境的内置版本:
    module.exports = {
      // 其他配置...
      externals: {
        'aws-sdk': 'commonjs aws-sdk'
      }
    };
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 00:23:29