Azure API 管理中的 API 网关

适用于:所有 API 管理层级

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

相关信息:

网关的角色

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

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

注意

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

API 管理中的托管网关和自承载网关

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

  • 内置托管网关 - API 管理为每个服务层中的每个 API 管理实例提供一个默认的内置托管网关。 使用托管网关时,所有 API 流量都会流经Azure,而不考虑托管实现 API 的后端。 在高级层中,可以选择在多个区域添加和分发网关容量。

    注意

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

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

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

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

小窍门

为了管理 AI 后端(如 LLM API),API 管理还提供一组可用于托管网关和自承载网关的 AI 网关功能 。 这些功能扩展了现有的 API 网关;AI 网关不是单独的网关类型。

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

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

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

注意

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

基础结构

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

1 取决于网关的部署方式,但由客户负责。
2 连接到自承载网关 v2 配置终结点需要终结点主机名的 DNS 解析。
每个网关单独管理自承载网关的 3 个 CA 根证书。
需要启用 4 客户端协议。
5 使用 转发请求 策略进行配置。
6 在后端设置中配置 后端 证书身份验证的 CA 证书详细信息。
7 从 2026 年 1 月开始创建的经典层实例的预览版。 请联系技术支持以激活现有经典层实例。

后端 API

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

1 从 2026 年 1 月开始创建的经典层实例的预览版。 请联系技术支持以激活现有经典层实例。

策略

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

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

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

API 监控

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

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

1自承载网关当前不会将资源日志(诊断日志)发送到Azure Monitor。 (可选)发送指标到Azure Monitor,或在其中部署自承载网关时,配置并在本地保存日志

网关吞吐量和扩展

重要

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

托管网关

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

重要

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

  • 经典层级

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

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

本地托管网关

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

工作区网关

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

网关运行时限制

下表列出了在处理 API 请求和响应时适用于 API 管理网关的限制。

运行时限制 经典 消耗
每个 HTTP 颁发机构的并行后端连接1 每单位 2,0482 无限制
缓存的响应大小 2 MiB 2 MiB
策略文档大小 512 KiB 16 KiB
请求数据负载大小 无限制 1 GiB
缓冲有效负载大小 500 MiB 2 MiB
诊断日志中的请求与响应负载大小 8,192 字节 8,192 字节
请求 URL 大小3 无限制 16384 字节
URL 路径段的长度 1,024 个字符 1,024 个字符
命名值的长度 4,096 个字符 4,096 个字符
验证内容策略中的请求或响应正文的大小 100 KiB 100 KiB
验证策略使用的 API 架构的大小 4 MB 4 MB
请求总持续时间 无限制 30 秒
每个单元的活动 WebSocket 连接数为 4 5,000 N/A

1除非被后端明确关闭,否则将共用并重新使用连接。
2 在开发人员层限制为 1,024。
3 包含最多 2048 字节长的查询字符串。
4 每个服务实例最多 60,000 个连接。

网关运行状况检查终结点

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

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

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

小窍门

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

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