首页 > 解决方案 > 了解 API Gateway 的健康检查和多区域实现

问题描述

我正在尝试对部署到多个区域的多个 API 网关进行运行状况检查。为此,我正在关注这篇文章

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

我的问题与 Route53 的设置方式有关。在该文章中,运行状况检查端点由 API Gateway 的Stage Invoke URL填充。虽然区域端点由 API Gateway 的自定义域名中的目标域名填充。

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

标签: amazon-web-servicesaws-api-gatewayamazon-route53

解决方案


如果我们可以在健康检查中使用 Stage Invoke URL,为什么我们首先需要自定义域名?

阶段 URL 对于每个区域都是唯一的。如果您对自定义域进行了健康检查,您将隐式检查 (a) 最接近个人健康检查器并且 (b) 已被认为是健康的区域,这对于健康检查目标来说是无用的。

另一方面,如果您不创建在每个区域中都相同的自定义域,那么您的客户将无法访问一个通用域名。您不能只将任意主机名指向 API Gateway 端点并让它工作——API Gateway 需要预期该主机名的流量,这就是您在使用自定义域进行部署时所做的事情。

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


推荐阅读