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

Node.js18.x Lambda用AWS SDK V3调用Cognito遇导入错误求助

解决Node.js 18.x Lambda中AWS SDK v3的Cognito导入问题

问题原因

Node.js 18.x版本的Lambda运行时默认预装AWS SDK v3,而你使用的是SDK v2的aws-sdk包导入方式——这个包在v3环境中不存在,因此触发Cannot find package 'aws-sdk'错误。

正确实现方式(保留.mjs模块语法)

AWS SDK v3采用模块化设计,需要单独导入对应服务的客户端类和命令类,以下是适配listUserPoolClients方法的完整代码:

import { CognitoIdentityServiceProviderClient, ListUserPoolClientsCommand } from "@aws-sdk/client-cognito-identity-provider";

// 初始化Cognito客户端(替换为你的AWS区域)
const cognitoClient = new CognitoIdentityServiceProviderClient({ region: "us-east-1" });

// Lambda处理函数
export const handler = async () => {
  try {
    // 构造请求参数(必填UserPoolId,可添加MaxResults等可选参数)
    const command = new ListUserPoolClientsCommand({
      UserPoolId: "你的UserPoolID",
      MaxResults: 10
    });

    // 发送请求并获取结果
    const response = await cognitoClient.send(command);
    console.log("AppClient列表:", response.UserPoolClients);
    return response.UserPoolClients;
  } catch (err) {
    console.error("获取AppClient失败:", err);
    throw err;
  }
};

关键注意事项

  • 无需手动安装@aws-sdk/client-cognito-identity-provider包:Node.js 18+的Lambda运行时已预装所有AWS SDK v3的客户端模块,直接导入即可使用。
  • 确保替换代码中的region和UserPoolId为你实际的AWS区域和Cognito用户池ID。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 21:54:49