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

如何将CognitoIdentityCredentials迁移至模块化AWS SDK for JavaScript (v3)

AWS SDK for JavaScript v2 迁移到 v3(Cognito身份凭证部分)

迁移步骤说明

AWS SDK v3采用完全模块化设计,无需导入整个AWS包,按需引入所需模块即可。以下是针对你提供的v2代码的具体迁移方案:

  1. 安装必要的v3依赖包
    先在项目中安装v3的Cognito身份相关包:
npm install @aws-sdk/client-cognito-identity @aws-sdk/credential-provider-cognito-identity
  1. 替换原有代码
    将你原有的v2代码替换为以下v3版本代码:

原v2代码:

var AWS = require('aws-sdk');
AWS.config.update({ region: 'us-west-2' });
var AWSCognito = require('amazon-cognito-identity-js');
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
  IdentityPoolId: env.IDENTITY_POOL_ID
});

迁移后的v3代码:

// 按需导入v3模块化组件
const { CognitoIdentityClient } = require("@aws-sdk/client-cognito-identity");
const { fromCognitoIdentityPool } = require("@aws-sdk/credential-provider-cognito-identity");

// 创建Cognito身份客户端实例,指定区域
const cognitoClient = new CognitoIdentityClient({
  region: "us-west-2"
});

// 从指定身份池生成临时凭证
const credentials = fromCognitoIdentityPool({
  client: cognitoClient,
  identityPoolId: env.IDENTITY_POOL_ID
});

关键变化说明

  • 模块化导入:v3不再使用全局AWS对象,直接导入需要的类和方法,有效减少打包体积
  • 客户端实例化:区域配置不再全局设置,通过创建具体的CognitoIdentityClient实例指定
  • 凭证获取方式:用fromCognitoIdentityPool替代v2的CognitoIdentityCredentials,贴合v3设计模式

后续使用示例

如果要将该凭证用于其他AWS服务客户端(比如S3),可直接传入客户端配置:

const { S3Client } = require("@aws-sdk/client-s3");
const s3Client = new S3Client({
  credentials: credentials,
  region: "us-west-2"
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 05:10:20