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

希望它能帮助。

+0

感谢您的帮助,如果我尝试使用上述内容,AWS现在讽刺地抛出:'错误:在构造函数.s(aws-sdk-2.129.0.min.js:43)'中缺少config中的凭据。在Cognito中可能需要进行一些额外的设置才能使其工作? –

+0

创建池后,你的工作吗? – Kannaiyan

+0

是的,谢谢! –

对于其他人打同样的问题,这里的文档提到:

If you have not yet created one, create an identity pool...

和你有转发给亚马逊Cognito服务,选择管理联邦身份不是管理用户池选项。