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

疑问:AWS Lambda是否不再默认提供aws-sdk内置访问权限?

问题解答

是的,AWS Lambda确实已经不再默认提供AWS SDK v2的内置访问权限了,尤其是针对Node.js 18及以上版本的运行时环境。

背景说明

之前Node.js 16及更早的Lambda运行时会内置AWS SDK v2,所以可以直接import AWS from 'aws-sdk'而无需额外安装依赖。但从Node.js 18开始,AWS移除了内置的SDK v2,转而推荐使用更轻量化、模块化的AWS SDK v3,同时不再为新版本运行时提供SDK v2的内置支持——这就是你收到Cannot find package 'aws-sdk'错误的核心原因。

不用层的解决方案

如果你不想通过层来添加SDK v2,有两个可行方向:

  • 降级运行时版本:将Lambda函数的运行时切换到Node.js 16或更早版本(注意:这些版本已进入维护阶段,官方不再提供安全更新,仅适合临时过渡)
  • 改用AWS SDK v3:采用模块化的导入方式,只引入你需要的服务模块。比如操作Cognito的话,步骤如下:
    1. 在本地项目中安装对应依赖:npm install @aws-sdk/client-cognito-identity-service-provider
    2. 在代码中替换导入语句:
      import { CognitoIdentityServiceProviderClient, AdminGetUserCommand } from "@aws-sdk/client-cognito-identity-service-provider";
      
    3. 将依赖和代码一起打包成zip文件上传到Lambda,或者用SAM、CDK等部署工具自动处理依赖打包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 23:31:12