首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角为4的AWS认知:错误:配置中缺少区域

角为4的AWS认知:错误:配置中缺少区域
EN

Stack Overflow用户
提问于 2017-09-21 09:35:24
回答 2查看 1K关注 0票数 0

我正在开发一个使用AWS服务后端大小的web应用程序。在这一刻,我使用AWS认知来管理用户会话。我正在用角4(使用TypeScript / JavaScript语言)开发这个应用程序,我发现这个有用的类(在AWS的JavaScript SDK中)应该为我提供了很多数据,我需要在前端显示:

http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CognitoIdentityServiceProvider.html

问题是,我在这个对象上调用的任何方法,控制台都会返回这个错误:

代码语言:javascript
复制
Error: Missing region in config
at Request.VALIDATE_REGION (event_listeners.js:91)
at Request.callListeners (sequential_executor.js:105)
at callNextListener (sequential_executor.js:95)
at event_listeners.js:85
at finish (config.js:315)
at Config.getCredentials (config.js:360)
at Request.VALIDATE_CREDENTIALS (event_listeners.js:80)
at Request.callListeners (sequential_executor.js:101)
at Request.emit (sequential_executor.js:77)
at Request.emit (request.js:683)

我不明白为什么会发生这种情况,因为我正确地配置了该区域,如下所示:

代码语言:javascript
复制
//Setting AWS credentials
AWS.config.region = environment.region;
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
  IdentityPoolId : environment.identityPoolId
});

如果我使用指令console.log(AWS.config.region),控制台将打印正确的区域。

为什么要继续想象这个错误呢?

完整的代码:

代码语言:javascript
复制
var params = {
UserPoolId: environment.clientId,
};

//Setting AWS credentials
AWS.config.region = environment.region;
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
  IdentityPoolId : environment.identityPoolId
});

this.cognitoidentityserviceprovider.listUsers(params, function(err, data) {
  console.log(AWS.config.region)

  if (err) console.log(err); // an error occurred
  else     console.log(data);           // successful response
});

路径总是console.log(err),错误总是缺少配置中的区域。为什么这种情况会继续发生呢?

EN

回答 2

Stack Overflow用户

发布于 2017-09-21 19:58:22

如果你这么做了呢:

代码语言:javascript
复制
var CognitoIdentityServiceProvider = AWS.CognitoIdentityServiceProvider;
var client = new CognitoIdentityServiceProvider({ apiVersion: '2016-04-19', region: 'us-east-1' });

然后在客户端对象上调用listUsers?我认为,当您初始化服务客户端时,应该传递区域。

票数 2
EN

Stack Overflow用户

发布于 2019-12-06 22:10:43

这个问题是一段时间前的问题,但这个问题对我有用:

当您加载AWS以创建AWS实例时,您可能必须在那里设置区域,如下所示:

代码语言:javascript
复制
const AWS = require('aws-sdk'); 

AWS.config.update({
  region: 'us-west-1',
}); 

function(){
  var identityService = new AWS.CognitoIdentityServiceProvider({
          apiVersion: '2016-04-18'
 });   

 ...

}

请注意,您可能还必须根据操作设置凭据。在这种情况下,您可以使用如下代码:

代码语言:javascript
复制
const AWS = require('aws-sdk'); 

AWS.config.update({
  region: 'us-west-1',
  accessKeyId: process.env.YOUR_ACCESSKEY,
  secretAccessKey: process.env.YOUR_SECRETKEY
}); 

  function(){
     var identityService = new AWS.CognitoIdentityServiceProvider({
          apiVersion: '2016-04-18'
     });   

     ...

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46340421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档