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重定向到使用延迟或地理路由的最近的云端分布。