如何全局更新AWS配置?

问题描述

我有一个JavaScript模块,在其中创建了一个调用DynamoDB的服务。

我正在通过Cognito身份池(CognitoIdentityCredentials方法获取临时AWS凭证,并将结果分配给AWS.config.credentials,我认为这将全局更新任何现有AWS服务实例的凭证。

但是,我注意到除非获得凭据后才调用new AWS.DynamoDB(),否则随后的api调用错误地指出没有凭据。

// dynamodb-service.js
// DynamoDB service instance created before AWS.config.credentials updated
const dynamoDB = new AWS.DynamoDB();

export function getData() {
  // call after credentials updated,but still errors with no credentials error
  const params = { ... };
  return dynamoDB.query(params).promise();
}

但是如果在AWS.config.credentials更新之后(例如在getData函数内部)创建了服务的新实例,则它可以正常工作:

// dynamodb-service.js    
export function getData() {
  // DynamoDB service instance created after AWS.config.credentials updated
  // API calls use the credentials.
  const dynamoDB = new AWS.DynamoDB();
  const params = { ... };
  return dynamoDB.query(params).promise();
}

我不喜欢在每次通话时都创建DynamoDB服务。有没有一种方法可以全局更新AWS.config.credentials,以便它也可以更新任何现有服务?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...