你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于:所有 API 管理层级
本文提供有关 API 管理网关组件的角色和功能的信息,并对可部署的网关进行比较。
相关信息:
- 有关 API 管理方案、组件和概念的概述,请参阅什么是 Azure API 管理? 
- 有关 API 管理服务层和功能的详细信息,请参阅: 
网关的角色
API 管理网关(也称为数据平面或运行时)是负责代理 API 请求、应用策略和收集遥测的服务组件。
具体而言,网关执行以下操作:
- 通过接受 API 调用并将其路由到适当的后端,充当后端服务的外观
- 验证 API 密钥 和其他凭据,例如 JWT 和证书,这些凭据随请求一起提交。
- 强制使用配额和速率限制
- 根据策略声明中的规定,选择性地转换请求和响应
- 缓存响应(如果已配置)可以改善响应延迟,并最大程度地减轻后端服务的负载
- 发出日志、指标和跟踪用于监视、报告和故障排除
Note
对 API 管理网关的所有请求(包括被策略配置拒绝的请求)都将计入所配置的速率限制、配额和计费限制(如果服务层级中已应用)。
托管和自托管
API 管理提供托管和自托管网关:
- 托管 - 托管网关是 Azure 中为每个服务层级中的每个 API 管理实例部署的默认网关组件。 独立托管网关也可以与 API 管理实例中的工作区相关联。 使用托管网关,无论实现 API 的后端托管在何处,所有 API 流量都流经 Azure。 - Note - 由于基础服务体系结构存在差异,不同 API 管理服务层中提供的网关在功能上存在一些差异。 有关详细信息,请参阅功能比较:托管网关与自托管网关部分。 
- 自承载 - 自承载网关是可选的容器化版本的默认托管网关,可在优选服务层中使用。 它对于要求在托管 API 后端的同一环境中在 Azure 之外运行网关的混合和多云场景非常有用。 使用自托管网关,具有混合 IT 基础结构的客户可以从 Azure 中的单个 API 管理服务管理本地和云中托管的 API。 - 自托管网关打包为基于 Linux 的 Docker 容器,通常部署到 Kubernetes,包括 Azure Kubernetes 服务和已启用 Azure Arc 的 Kubernetes。 
- 每个自托管网关都与基于云的API 管理实例中的网关资源相关联,它从该实例中接收配置更新并传递状态。 
 
功能比较:托管网关与自托管网关
下表比较了以下 API 管理网关中可用的功能:
- 经典 - 可在开发人员、基本、标准和高级服务层中使用的托管网关(以前归为专用层)
- V2 - 可在基本 v2、标准 v2 和高级 v2 层中使用的托管网关
- 消耗 - 消耗层中可用的托管网关
- 自承载 - 可选的自承载网关,可在优选服务层中使用
- 工作区 - 选定服务层中的工作区中可用的托管网关
基础结构
| 功能支持 | Classic | V2 | 消耗 | Self-hosted | Workspace | 
|---|---|---|---|---|---|
| 自定义域 | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | 
| 内置缓存 | ✔️ | ✔️ | ❌ | ❌ | ✔️ | 
| 外部 Redis 兼容缓存 | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | 
| 虚拟网络注入 | 开发人员、高级 | 高级 v2 | ❌ | ✔️1,2 | ✔️ | 
| 入站专用终结点 | ✔️ | 标准 v2 | ❌ | ❌ | ❌ | 
| 出站虚拟网络集成 | ❌ | 标准 v2、高级 v2 | ❌ | ❌ | ✔️ | 
| 可用性区域 | 高级 | ❌ | ❌ | ✔️1 | ❌ | 
| 多区域部署 | 高级 | ❌ | ❌ | ✔️1 | ❌ | 
| CA 根证书,用于证书验证 | ✔️ | ❌ | ❌ | ✔️3 | ❌ | 
| 托管域证书 | ✔️ | ❌ | ✔️ | ❌ | ❌ | 
| TLS 设置 | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | 
| HTTP/2(客户端到网关) | ✔️4 | ✔️4 | ❌ | ✔️ | ❌ | 
| HTTP/2(网关到后端) | ❌ | ✔️5 | ❌ | ✔️5 | ❌ | 
| 使用 Defender for API 进行 API 威胁检测 | ✔️ | ✔️ | ❌ | ❌ | ❌ | 
              1 取决于网关的部署方式,但由客户负责。
              2 连接到自承载网关 v2 配置终结点需要终结点主机名的 DNS 解析。
              3 自托管网关的 CA 根证书是按网关单独管理的
              4 需要启用客户端协议。
              5 使用 转发请求 策略进行配置。
后端 API
| 功能支持 | Classic | V2 | 消耗 | Self-hosted | Workspace | 
|---|---|---|---|---|---|
| OpenAPI 规范 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | 
| WSDL 规范 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | 
| WADL 规范 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | 
| 逻辑应用 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | 
| 应用程序服务 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | 
| 函数应用 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | 
| 容器应用 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | 
| Service Fabric | 开发人员、高级 | ❌ | ❌ | ❌ | ❌ | 
| 直通 GraphQL | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | 
| 合成 GraphQL | ✔️ | ✔️ | ✔️1 | ✔️1 | ❌ | 
| 直通 WebSocket | ✔️ | ✔️ | ❌ | ✔️ | ✔️ | 
| 直通 gRPC | ❌ | ❌ | ❌ | ✔️ | ❌ | 
| OData | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | 
| Azure OpenAI 和 LLM | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | 
| 后端中的断路器 | ✔️ | ✔️ | ❌ | ✔️ | ✔️ | 
| 负载均衡后端池 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | 
| 直通 MCP 服务器(预览版) | 基本、标准、高级 | ✔️ | ❌ | ❌ | ❌ | 
Policies
托管和自托管网关支持策略定义中的所有可用策略,但以下策略例外。 有关每个策略的详细信息,请参阅策略参考。
| 功能支持 | Classic | V2 | 消耗 | Self-hosted1 | Workspace | 
|---|---|---|---|---|---|
| Dapr 集成 | ❌ | ❌ | ❌ | ✔️ | ❌ | 
| 服务总线集成 (预览版) | ✔️ | ❌ | ❌ | ❌ | ❌ | 
| GraphQL 解析程序和 GraphQL 验证 | ✔️ | ✔️ | ✔️ | ❌ | ❌ | 
| 获取授权上下文 | ✔️ | ✔️ | ✔️ | ❌ | ❌ | 
| 使用托管标识进行身份验证 | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | 
| Azure OpenAI 和 LLM 语义缓存 | ✔️ | ✔️ | ✔️ | ❌ | ❌ | 
| 配额和速率限制 | ✔️ | ✔️ | ✔️2 | ✔️3 | ✔️ | 
              1 在执行策略期间,将跳过自承载网关不支持的已配置策略。
              2 按密钥的速率限制、按密钥的配额、AI 标记限制策略在消耗层级不可用。
              3 可以将自承载网关中的速率限制计数配置为在本地同步(在群集节点中的网关实例之间),例如,通过 Kubernetes 的 Helm 图表部署或使用 Azure 门户部署模板。 但是,速率限制计数不会与 API 管理实例中配置的其他网关资源(包括云中的托管网关)同步。 
              了解详细信息
Monitoring
有关监视选项的详细信息,请参阅 Azure API 管理中的可观测性。
| 功能支持 | Classic | V2 | 消耗 | Self-hosted | Workspace | 
|---|---|---|---|---|---|
| API 分析 | ✔️ | ✔️1 | ❌ | ❌ | ❌ | 
| Application Insights | ✔️ | ✔️ | ✔️ | ✔️2 | ✔️ | 
| 通过事件中心进行日志记录 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | 
| Azure Monitor 中的指标 | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | 
| OpenTelemetry 收集器 | ❌ | ❌ | ❌ | ✔️ | ❌ | 
| Azure Monitor 和 Log Analytics 中的请求日志 | ✔️ | ✔️ | ❌ | ❌ 3 | ❌ | 
| 本地指标和日志 | ❌ | ❌ | ❌ | ✔️ | ❌ | 
| 请求跟踪 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | 
              1 v2 层支持基于 Azure Monitor 的分析。
              2 网关使用 Azure Application Insight 的内置内存缓冲区,并且不提供传递保证。
              3 自托管网关当前不会向 Azure Monitor 发送资源日志(诊断日志)。 可以将指标发送到 Azure Monitor,或在部署自托管网关的本地配置和保存日志。
身份验证和授权
托管和自托管网关支持所有可用的 API 身份验证和授权选项,存在以下例外。
| 功能支持 | Classic | V2 | 消耗 | Self-hosted | Workspace | 
|---|---|---|---|---|---|
| 凭据管理器 | ✔️ | ✔️ | ✔️ | ❌ | ❌ | 
网关吞吐量和缩放
Important
吞吐量受以下因素影响:并发客户端连接的数量和速率、配置策略的种类和数量、有效负载大小、后端 API 性能等。 自托管网关吞吐量也取决于运行它的主机的计算容量(CPU 和内存)。 使用预期的生产条件执行网关负载测试,以准确确定预期的吞吐量。
托管网关
有关 API 管理服务层级中估计的最大网关吞吐量,请参阅 API 管理定价。
Important
吞吐量数据仅供参考,不能作为容量和预算计划的依据。 有关详细信息,请参阅 API 管理定价。
- 经典等级 - 通过添加和删除缩放单元来缩放网关容量或升级服务层级。 (缩放在开发人员层不可用。)
- 在基本层、标准层和高级层中,可以选择配置 Azure Monitor 自动缩放。
- 在高级层中,可以选择跨多个区域添加和分配网关容量。
 
- v2 层 - 通过添加和删除缩放单元来缩放网关容量或升级服务层级。
 
- 消耗层 - “消耗”层中的 API 管理实例会根据流量自动缩放。
 
自托管网关
- 在 Kubernetes 等环境中,添加多个网关副本以处理预期使用情况。
- (可选)配置自动缩放以满足流量需求。
工作区网关
通过在工作区网关中添加和移除缩放单元来缩放容量。
相关内容
详细了解:
- 混合和多云世界中的 API 管理
- 缩放决策的容量指标
- API 管理中的可观测性功能
- API 管理中的 AI 网关功能