Azure API 管理中的 API 网关

适用于:所有 API 管理层级

本文介绍 API 管理 网关 组件的角色和功能。 它还比较了可以部署的网关。

相关信息:

网关的角色

API 管理网关(也称为数据平面或运行时)是负责代理 API 请求、应用策略和收集遥测的服务组件。

具体而言,网关执行以下操作:

注意

对 API 管理网关的所有请求(包括策略配置拒绝的请求)计入配置的速率限制、配额和计费限制(如果服务层应用这些限制)。

托管网关和自承载网关

API 管理提供托管网关和自托管网关:

注意

由于基础服务体系结构存在差异,不同 API 管理服务层中提供的网关在功能上存在一些差异。 有关详细信息,请参阅功能比较:托管网关与自托管网关部分。

  • 自承载 - 自承载网关 是可选容器化版本的默认托管网关,可在选择服务层中使用。 它对于混合和多云方案非常有用,在这些方案中,要求在托管 API 后端的同一环境中从 Azure 运行网关。 使用自托管网关,具有混合 IT 基础结构的客户可以从 Azure 中的单个 API 管理服务管理本地和云中托管的 API。

    • 自托管网关将打包为基于 Linux 的 Docker 容器,通常部署到 Kubernetes,包括 Azure Kubernetes 服务

    • 每个自托管网关都与基于云的API 管理实例中的网关资源相关联,它从该实例中接收配置更新并传递状态。

功能比较:托管网关与自托管网关

下表比较了以下 API 管理网关中可用的功能:

  • 经典 - 可在开发人员、基本、标准和高级服务层中使用的托管网关(以前归为专用层)
  • 消耗 - 消耗层中可用的托管网关
  • 自承载 - 可选的自承载网关,可在优选服务层中使用

注意

  • 托管和自托管网关的某些功能仅在某些服务层级或自托管网关的某些部署环境中受支持。
  • 若要查看自承载网关的当前支持功能,请确保已升级到自承载网关 容器映像的最新主版本。
  • 另请参阅自托管网关限制

基础结构

功能支持 经典 消耗 自承载
自定义域 ✔️ ✔️ ✔️
内置缓存 ✔️
外部 Redis 兼容缓存 ✔️ ✔️ ✔️
虚拟网络注入 开发人员、高级 ✔️1,2
入站专用终结点 ✔️
多区域部署 高级 ✔️1
CA 根证书,用于证书验证 ✔️ ✔️6 ✔️3
托管域证书 ✔️ ✔️
TLS 设置 ✔️ ✔️ ✔️

1 取决于网关的部署方式,但由客户负责。
2 连接到自承载网关 v2 配置终结点需要终结点主机名的 DNS 解析。
每个网关单独管理自承载网关的 3 个 CA 根证书。
需要启用 4 客户端协议。
5 使用 转发请求 策略进行配置。
6 在后端设置中配置 后端 证书身份验证的 CA 证书详细信息。

后端 API

功能支持 经典 消耗 自承载
OpenAPI 规范 ✔️ ✔️ ✔️
WSDL 规范 ✔️ ✔️ ✔️
WADL 规范 ✔️ ✔️ ✔️
逻辑应用 ✔️ ✔️ ✔️
应用服务 ✔️ ✔️ ✔️
函数应用 ✔️ ✔️ ✔️
Service Fabric 开发人员、高级
直通 GraphQL ✔️ ✔️ ✔️
合成 GraphQL ✔️ ✔️1 ✔️1
直通 WebSocket ✔️ ✔️
直通 gRPC ✔️
后端中的断路器 ✔️ ✔️
负载均衡后端池 ✔️ ✔️ ✔️

策略

托管和自托管网关支持策略定义中的所有可用策略,但以下策略例外。 有关每个策略的详细信息,请参阅策略参考。

功能支持 经典 消耗 自承载1
Dapr 集成 ✔️
服务总线集成 (预览版) ✔️
GraphQL 解析程序GraphQL 验证 ✔️ ✔️
获取授权上下文 ✔️ ✔️
配额和速率限制 ✔️ ✔️ ✔️2 ✔️3

1 在执行策略期间,将跳过自承载网关不支持的已配置策略。
2 按密钥的速率限制、按密钥的配额、AI 标记限制策略在消耗层级不可用。
3 可以将自承载网关中的速率限制计数配置为在本地同步(在群集节点中的网关实例之间),例如,通过 Kubernetes 的 Helm 图表部署或使用 Azure 门户部署模板。 但是,速率限制计数不会与 API 管理实例中配置的其他网关资源同步,包括云中的托管网关。 了解详细信息

监视

有关监视选项的详细信息,请参阅 Azure API 管理中的可观测性

功能支持 经典 消耗 自承载
API 分析 ✔️
Application Insights ✔️ ✔️ ✔️
通过事件中心进行日志记录 ✔️ ✔️ ✔️
Azure Monitor 中的指标 ✔️ ✔️ ✔️
OpenTelemetry 收集器 ✔️
Azure Monitor 和 Log Analytics 中的请求日志 ✔️ 1
本地指标和日志 ✔️
请求跟踪 ✔️ ✔️ ✔️

1 自托管网关当前不会向 Azure Monitor 发送资源日志(诊断日志)。 可以将指标发送到 Azure Monitor,或在部署自托管网关的本地配置和保存日志

网关吞吐量和缩放

重要

吞吐量取决于许多因素,包括并发客户端连接的数量和速率、已配置策略的类型和数量、有效负载大小、后端 API 性能等因素。 自承载网关吞吐量还取决于运行它的主机的计算容量(CPU 和内存)。 若要准确确定预期的吞吐量,请使用预期的生产条件执行网关负载测试。

托管网关

有关 API 管理服务层级中估计的最大网关吞吐量,请参阅 API 管理定价

重要

仅使用吞吐量数字获取信息。 不要依赖它们进行容量和预算规划。 有关详细信息,请参阅 API 管理定价

  • 经典层

    • 通过添加和删除缩放单元来缩放网关容量或升级服务层级。 (开发人员层中不提供缩放功能)。
    • 在基本层、标准层和高级层中,可以选择配置 Azure Monitor 自动缩放
    • 在高级层中,可以选择跨多个区域添加和分配网关容量。
  • 消耗层

    • 消耗层中的 API 管理实例会根据流量自动缩放。

自承载网关

  • Kubernetes 等环境中,添加多个网关副本以处理预期使用情况。
  • (可选)配置自动缩放以满足流量需求。

工作区网关

通过在工作区网关中添加和移除缩放单元来缩放容量。

网关运行状况检查终结点

除消耗层之外的所有层中,Azure API 管理在路径 /status-0123456789abcdef中提供内置的网关运行状况检查终结点。 访问此终结点以帮助确认 API 网关可用且正常运行。 它不测试后端 API,仅测试网关本身。

对终结点的请求在网关正常时返回 200 OK HTTP 响应;故障指示网络或网关问题。

  • Azure 在内部使用此终结点进行持续 SLA 监视和网关运行状况验证。
  • 客户可以将对此终结点的请求集成到自己的监视工具和探测中。
  • 该终结点适用于托管网关(包括多区域部署中的区域网关)、自承载网关和工作区网关。

小窍门

将 Azure Application Insights 与 API 管理集成后,可以选择启用网关的可用性监视。 此设置定期轮询网关运行状况检查终结点,并在 Application Insights 中的 “可用性 ”选项卡上报告结果。

了解有关以下方面的详细信息: