Cognito和API网关最近的区域



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

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

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

在向API网关发送请求时,我有同样的问题。已签名的签名必须使用区域创建。(我实际上是使用API自动生成的SDK为我做这件事)

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 bucket,包含应用的已部署版本和区域信息
  • 每个s3桶一个云前端分布
  • 重定向到最近的云前分布使用延迟或地理路由与Route53。

对于API网关,目前不可能设置到最近区域的任何类型的自动路由。这是一个经常被请求的特性,并且它在我们的待办事项列表中,最终将被实现。现在,您可以将区域选择逻辑构建到客户机应用程序中,或者将客户机的不同版本分发到不同的区域。

相关内容

  • 没有找到相关文章

最新更新