问题描述
我有一个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 (将#修改为@)