使用AWS Route 53到API网关的路由

问题描述:

我在所有AWS区域都有一个lambda函数。我有遍及全球的客户,他们会对我的基地域example.com进行POST调用。我的(各种)负载均衡器负责确保将请求路由到最接近客户端的区域的API网关,以便将延迟降至最低。使用AWS Route 53到API网关的路由

所以,到目前为止,我有以下配置:部署在每个区域

  • 每个API网关的自定义域名,它公开了一个CloudFront的域名

    • lambda函数。例如,N.California地区配置了自定义域名us-west-1.example.com并调用了我的lambda的路径映射。此API网关的CloudFront URL为d12345123.cloudfront.net
    • 路由53托管区域中的A类型的记录集,其中us-west-1.example.comd12345123.cloufront.net的别名。如果我打电话给us-west-1.example.com/1.0/localdb,它会返回正确的输出。
    • Route53中的一个流量策略和一个策略记录0123'的default.example.com类型,它具有分配给它的地理邻近规则,它将流量重定向到CloudFront实例(与添加自定义域后公开的同一实例相同该地区的名称)。这为default.example.com式的托管区A类型的Route53托管区为example.com条目A
    • 的记录是一个别名default.example.com,让里面说到example.com流量可以发送到default.example.com

    这些配置后,当我做出example.com打电话,我收到的Cloudfront一个403回应,称这是一个Bad Request

    感谢

  • +0

    [在Amazon Route53中设置基于DNS的URL转发]的可能重复(https://*.com/questions/10115799/set-up-dns-based-url-forwarding-in-amazon-route53) – vascop

    +1

    到目前为止,你会发现你认为自己已经完成的成就和实际完成的成就之间存在差距。你的'default.example.com'不会达到你所期望的,所以回答你所问的内容将无济于事。调用Lambda函数通常意味着使用API​​网关,并且将不同的CNAME记录指向不同区域中的不同API网关部署是不够的 - 对于给定的主机名,您只能将API网关配置为期望* one *区域中的主机名。请提供更多关于您实际尝试完成的任务和您的特定配置的详细信息。 –

    +1

    当浏览器发出HTTP请求时,它会将“主机”标头设置为地址栏中URL中的主机名。无论中间DNS解析步骤如何,* original *主机名都是目标所见。这是你遇到的根本问题。目前还没有一个适用于此的AWS本地,托管,无服务器解决方案。它需要区域代理服务器来重写这些主机头,或者重定向到区域主机名,或者......如果您的API总是需要

    由于2017年11月的“亚马逊API网关支持区域API端点”

    https://aws.amazon.com/about-aws/whats-new/2017/11/amazon-api-gateway-supports-regional-api-endpoints/

    与亚马逊API网关创建REST API和自定义域时,您现在可以从两种类型的API端点的选择。区域API端点是从部署REST API的同一AWS区域访问的新类型端点。这可以帮助您在API请求源自与您的REST API相同的区域时减少请求延迟。此外,您现在可以选择将您自己的Amazon CloudFront分配与区域API端点相关联。第二种类型的API端点是边缘优化的API。边缘优化的API是通过由API网关创建和管理的CloudFront分配来访问的端点。以前,边缘优化的API是使用API​​网关创建API的默认选项。

    要开始使用Amazon API Gateway控制台,AWS CLI或AWS软件开发工具包和API创建新的REST API。您还可以将现有的REST API和自定义域迁移到区域API端点。请访问我们的文档以了解更多关于此功能此功能现已在美国东部(弗吉尼亚北部),美国东部(俄亥俄州),美国西部(俄勒冈州),美国西部(北卡罗来纳州)和美国东部(北卡罗来纳州)可用。加拿大(中环),南美洲(圣保罗),欧盟(爱尔兰),欧盟(法兰克福),欧盟(伦敦),亚太地区(新加坡),亚太地区(东京),亚太地区(悉尼),亚太地区(首尔)和亚太地区(孟买)AWS地区。请访问我们的产品页面,了解有关Amazon API Gateway的更多信息。