如何将CognitoIdentityCredentials迁移至模块化AWS SDK for JavaScript (v3)
AWS SDK for JavaScript v2 迁移到 v3(Cognito身份凭证部分)
迁移步骤说明
AWS SDK v3采用完全模块化设计,无需导入整个AWS包,按需引入所需模块即可。以下是针对你提供的v2代码的具体迁移方案:
- 安装必要的v3依赖包
先在项目中安装v3的Cognito身份相关包:
npm install @aws-sdk/client-cognito-identity @aws-sdk/credential-provider-cognito-identity
- 替换原有代码
将你原有的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
相关产品推荐
相关产品推荐

