AWS SDK 提供了一种获取凭证的方法,即 AWS.config.credentials.get()
。然而,有时候这个方法可能会花费很多时间,导致应用程序的性能下降。为了解决这个问题,可以考虑以下两种方法:
AWS.config.credentials.get()
方法一次,并将返回的凭证对象存储在内存中的缓存中。随后,每次需要凭证时,可以直接从缓存中获取,而不需要再次调用 AWS.config.credentials.get()
方法。这样可以减少不必要的网络请求和计算时间。// 初始化时获取凭证并存储在缓存中
const credentials = await AWS.config.credentials.get();
const credentialsCache = {
accessKeyId: credentials.accessKeyId,
secretAccessKey: credentials.secretAccessKey,
sessionToken: credentials.sessionToken,
expireTime: credentials.expireTime,
};
// 需要凭证时直接从缓存中获取
const cachedCredentials = {
accessKeyId: credentialsCache.accessKeyId,
secretAccessKey: credentialsCache.secretAccessKey,
sessionToken: credentialsCache.sessionToken,
expireTime: credentialsCache.expireTime,
};
AWS.config.credentials = new AWS.SharedIniFileCredentials()
方法来设置 SDK 使用 AWS CLI 配置文件中的凭证信息。这样,SDK 将直接从配置文件中读取凭证,而不需要调用 AWS.config.credentials.get()
方法。// 使用 AWS CLI 配置文件
AWS.config.credentials = new AWS.SharedIniFileCredentials({ profile: 'default' });
以上两种方法都可以帮助提高获取 AWS 凭证的效率,根据具体的场景选择适合的方法。
上一篇:AWS.com上手动删除后,Serverless API Gateway资源未返回
下一篇:aws.config.credentials只能同时处理一个用户吗?因为globalSignout会将所有用户都登出。