适用于:所有 API 管理层级
本文介绍 API 管理 网关 组件的角色和功能。 它还比较了可以部署的网关。
相关信息:
有关 API 管理方案、组件和概念的概述,请参阅 什么是Azure API 管理?
有关 API 管理服务层和功能的详细信息,请参阅:
网关的角色
API 管理网关(也称为数据平面或运行时)是负责代理 API 请求、应用策略和收集遥测的服务组件。
具体而言,网关执行以下操作:
- 作为前端接口,通过接受 API 调用并将其路由到适当的后端服务。
- 验证 API 密钥 和其他凭据,例如 JWT 和证书,这些凭据随请求一起提交。
- 实施用量配额和速率限制
- 选择性地转换策略语句中指定的请求和响应
- 如果已配置,将缓存响应以缩短响应延迟并最大程度地减少后端服务负载
- 发出用于监视、报告和故障排除的日志、指标和跟踪
注意
对 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 证书详细信息。
7 从 2026 年 1 月开始创建的经典层实例的预览版。 请联系技术支持以激活现有经典层实例。
后端 API
| 功能支持 | 经典 | 消耗 | 自托管 |
|---|---|---|---|
| OpenAPI 规范 | ✔️ | ✔️ | ✔️ |
| WSDL 规范 | ✔️ | ✔️ | ✔️ |
| WADL 规范 | ✔️ | ✔️ | ✔️ |
| 逻辑应用 | ✔️ | ✔️ | ✔️ |
| 应用服务 | ✔️ | ✔️ | ✔️ |
| Function App | ✔️ | ✔️ | ✔️ |
| Service Fabric | 开发人员、高级 | ❌ | ❌ |
| 透传 GraphQL | ✔️ | ✔️ | ✔️ |
| 合成 GraphQL | ✔️ | ✔️1 | ✔️1 |
| 直通 WebSocket | ✔️ | ❌ | ✔️ |
| 直通 gRPC | ❌ | ❌ | ✔️ |
| 后端中的断路器 | ✔️ | ❌ | ✔️ |
| 负载均衡后端池 | ✔️ | ✔️ | ✔️ |
策略
托管和自托管网关支持策略定义中的所有可用策略,但以下策略例外。 有关每个策略的详细信息,请参阅策略参考。
| 功能支持 | 经典 | 消耗 | 自托管1 | |
|---|---|---|---|---|
| Dapr 集成 | ❌ | ❌ | ✔️ | |
| 服务总线 集成(预览版) | ✔️ | ❌ | ❌ | |
| GraphQL 解析程序和 GraphQL 验证 | ✔️ | ✔️ | ❌ | |
| 获取授权上下文 | ✔️ | ✔️ | ❌ | |
| 配额和速率限制 | ✔️ | ✔️ | ✔️2 | ✔️3 |
1 在策略执行过程中,将跳过自托管网关不支持的已配置策略。
2 按密钥的速率限制、按密钥的配额、AI 标记限制策略在消耗层级不可用。
3 自托管网关中的速率限制计数可以配置为在本地同步(在群集节点之间的网关实例之间),例如,通过 Kubernetes 的 Helm chart 部署或使用 Azure 门户 部署模板。 但是,速率限制计数不会与 API 管理实例中配置的其他网关资源同步,包括云中的托管网关。
了解详细信息
监控
有关监视选项的详细信息,请参阅 Azure API 管理 中的 观测性。
| 功能支持 | 经典 | 消耗 | 自托管 |
|---|---|---|---|
| API 分析 | ✔️ | ❌ | ❌ |
| Application Insights | ✔️ | ✔️ | ✔️ |
| 通过事件中心进行日志记录 | ✔️ | ✔️ | ✔️ |
| Azure Monitor 中的指标 | ✔️ | ✔️ | ✔️ |
| OpenTelemetry 收集器 | ❌ | ❌ | ✔️ |
| ✔️ | ❌ | ❌ 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 应用程序 Insights 集成到 API 管理时,可以选择启用网关的可用性监视。 此设置定期轮询网关运行状况检查终结点,并在 Application Insights 中的 “可用性 ”选项卡上报告结果。
相关内容
了解有关以下方面的详细信息:
- 混合和多云世界中的 API 管理
- 缩放决策的容量指标
- API 管理中的可观测性功能