2016-10-01 15 views
0

为了给定用户使用Cognito,使用AWS-SDK我需要执行一个特定区域的请求登录,即Cognito和API网关最接近的区域

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

让说,我有2个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桶,其中包括应用程序的每S3存储
  • 一个CloudFront的分布区域信息部署版本
  • 使用Route53重定向到使用延迟或地理路由的最近的云端分布。

回答

0

对于API网关,目前无法设置任何类型的自动路由到最近的区域。这是一个普遍要求的功能,最终将在我们的待办事项上执行。目前,您可以将区域选择逻辑构建到客户端应用程序中,或者将不同版本的客户端分布到不同的区域。

相关问题