了解 API 网关的健康检查和多区域实现

Understanding the health check and multi region implementation of API Gateway

我正在尝试对部署到多个区域的多个 API 网关实施健康检查。为此,我正在关注 this article.

长话短说,您需要在所有区域复制完全相同的 API 网关(及其相应的 Lambda 函数)。使用 Route53 创建由多个端点支持的一个域名。

我的问题与 Route53 的设置方式有关。在那篇文章中,健康检查端点由 API 网关的 阶段调用 URLs 填充。虽然区域端点由来自 API 网关的自定义域名的 目标域名 填充。

为什么这两个端点由不同的值填充?如果我们可以在健康检查中使用Stage Invoke URL,为什么我们首先需要自定义域名?为什么我们不能只使用相同的 Stage Invoke URL 来填充区域端点?

If we can use Stage Invoke URL in the health check, why do we need to have Custom Domain Name in the first place?

URL阶段对于每个地区都是独一无二的。如果您 health-checked 自定义域,您将隐式检查以下区域:(a) 最接近个人 health-checker 和 (b) 已经被认为是健康的,这作为健康是无用的检查目标。

另一方面,如果您不创建在每个地区都相同的自定义域,那么您将没有供客户访问的通用域名。您不能只将任意主机名指向 API 网关端点并让它工作——API 网关需要 期望 该主机名的流量,即使用自定义域部署时您在做什么。

一个相关的问题可能是为什么需要目标域名?为什么不将它用于健康检查?目标域名顾名思义,只是一个target域名,仅供DNS用于路由。它不应该接受直接发送给它的请求,这些请求不使用 SSL 的自定义域和 HTTP Host header.