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

在AWS Lambda中使用aws-sdk遇导入错误,求助解决

AWS Lambda中使用AWS SDK报错的原因及解决办法

报错原因拆解

  • 第一个错误「require is not defined in ES module scope」:
    你的代码采用了ES模块规范(比如文件后缀是.mjs,或者项目package.json里设置了"type": "module"),而AWS官方教程用的是CommonJS规范的require语法,ES模块环境不兼容CommonJS的require,所以触发报错。

  • 第二个错误「Cannot find package 'aws-sdk'」:
    当前Lambda运行环境默认预装的是AWS SDK v3版本,而你尝试导入的aws-sdk是v2版本的包名。v3版本采用了模块化拆分设计,不再提供整体的AWS对象导入,且Lambda环境不再预装v2的aws-sdk包,所以找不到对应的模块。

解决办法

方案1:沿用CommonJS规范(匹配官方教程写法)

  • 将代码文件后缀改为.js,如果项目根目录有package.json,删除其中的"type": "module"配置
  • 直接使用官方教程的require语法:
    var aws = require("aws-sdk");
    
    Lambda的CommonJS环境默认预装了AWS SDK v2,可直接调用。

方案2:使用ES模块规范(适配Lambda当前默认SDK版本)

  • 采用AWS SDK v3的模块化导入语法,比如调用SES服务:
    import { SESClient, SendEmailCommand } from "@aws-sdk/client-ses";
    
    Lambda的ES模块环境默认预装了v3版本的各服务客户端包,无需额外打包部署。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 11:52:12