AWS DynamoDB:“错误:在配置中缺少区域” - 即使'config.region'返回'eu-west-1'
问题描述:
在我的前端项目中遵循AWS文档来设置DynamoDB时,文档的API抛出:AWS DynamoDB:“错误:在配置中缺少区域” - 即使'config.region'返回'eu-west-1'
Error: Missing region in config
at constructor.<anonymous> (aws-sdk-2.129.0.min.js:42)
at constructor.callListeners (aws-sdk-2.129.0.min.js:44)
at i (aws-sdk-2.129.0.min.js:44)
at aws-sdk-2.129.0.min.js:42
at t (aws-sdk-2.129.0.min.js:41)
at constructor.getCredentials (aws-sdk-2.129.0.min.js:41)
at constructor.<anonymous> (aws-sdk-2.129.0.min.js:42)
at constructor.callListeners (aws-sdk-2.129.0.min.js:44)
at constructor.emit (aws-sdk-2.129.0.min.js:44)
at constructor.emitEvent (aws-sdk-2.129.0.min.js:43)
我的设置:
<script src="https://sdk.amazonaws.com/js/aws-sdk-2.129.0.min.js"></script>
<script>
var myCredentials = new AWS.CognitoIdentityCredentials({IdentityPoolId:'eu-west-1_XXXXXX'});
var myConfig = new AWS.Config({
credentials: myCredentials, region: 'eu-west-1',
});
console.log(myConfig.region); //logs 'eu-west-1'
var dynamodb = new AWS.DynamoDB({apiVersion: '2012-08-10'});
dynamodb.listTables({Limit: 10}, function(err, data) {
if (err) {
console.log(err);
} else {
console.log("Table names are ", data.TableNames);
}
});
</script>
我缺少什么?
答
看起来像是在新建AWS.config。
更改线路
var myConfig = new AWS.Config({
credentials: myCredentials, region: 'eu-west-1',
});
到
AWS.config.update({
credentials: myCredentials, region: 'eu-west-1',
}});
参考:
http://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/setting-region.html
希望它能帮助。
答
对于其他人打同样的问题,这里的文档提到:
If you have not yet created one, create an identity pool...
和你有转发给亚马逊Cognito服务,选择管理联邦身份不是管理用户池选项。
感谢您的帮助,如果我尝试使用上述内容,AWS现在讽刺地抛出:'错误:在构造函数.s(aws-sdk-2.129.0.min.js:43)'中缺少config中的凭据。在Cognito中可能需要进行一些额外的设置才能使其工作? –
创建池后,你的工作吗? – Kannaiyan
是的,谢谢! –