【发布时间】:2016-10-26 05:27:05
【问题描述】:
为了让给定用户使用 Cognito 登录,我需要使用 aws-sdk 向特定区域执行请求,即
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId: 'eu-west-1:id',
Logins: {
'accounts.google.com': idToken
}
});
假设我有 2 个 Cognito 池:一个在美国,一个在欧盟。我想做的是将此请求发送到最近的 Cognito 区域。
我在向 API Gateway 发送请求时遇到了同样的问题。必须使用区域创建签名的签名。 (我实际上是在使用 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 存储桶一个云端分发
- 通过 Route53 使用延迟或地理路由重定向到最近的云端分发。
【问题讨论】:
标签: amazon-web-services aws-sdk aws-api-gateway