Cognito和API Gateway最近的区域

时间:2016-10-01 15:58:50

标签: amazon-web-services aws-sdk aws-api-gateway

为了让给定用户使用Cognito登录,使用aws-sdk我需要对特定区域执行请求,即

AWS.config.credentials = new AWS.CognitoIdentityCredentials({
  IdentityPoolId: 'eu-west-1:id',
  Logins: {
    'accounts.google.com': idToken
  }
});

假设我有2个Cognito池:一个在美国,一个在欧盟。我想做的是将此请求发送到最近的Cognito区域。

向API网关发送请求时遇到同样的问题。必须使用区域创建签名签名。 (我实际上正在使用自动生成的API,这对我来说是这样做的)

const api = apigClientFactory.newClient({
  accessKey: AWS.config.credentials.accessKeyId,
  secretKey: AWS.config.credentials.secretAccessKey,
  sessionToken: AWS.config.credentials.sessionToken,
  region: AWS.config.region
});

看起来AWS强迫我知道我想要在前端连接的区域。因为前端只是与CloudFront一起分发的,所以这样做的最佳方法是什么?

我提出的唯一解决方案是:

  • 每个区域一个s3存储桶,其中包含部署的应用程序版本以及区域信息
  • 每个s3存储桶一个云端分发
  • 使用Route53的延迟或地理路由重定向到最近的云端分发。

1 个答案:

答案 0 :(得分:0)

对于API网关,目前无法设置任何类型的自动路由到最近的区域。这是一个常见的功能,它最终会在我们的积压工作中实施。目前,您可以将区域选择逻辑构建到客户端应用程序中,也可以将不同版本的客户端分发到不同的区域。