你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

什么是 Azure API Management 中的工作区?

适用于:高级

在 API Management 中,工作区为组织的 API 团队带来了一个新的自治级别,使他们能够在 API Management 服务中更快、更可靠、更安全、更高效地创建、管理和发布 API。 通过提供隔离的管理访问和 API 运行时,工作区增强了 API 团队的能力,同时允许 API 平台团队保持监督权限。 这包括集中监视、API 策略和合规性的执行,以及通过统一的开发人员门户发布 API 以便发现。

工作区在 API Management 服务中的功能类似于“文件夹”:

  • 每个工作区都包含 API、产品、订阅、命名值和相关资源。
  • 对工作区内资源的访问是通过 Azure 的基于角色的访问控制 (RBAC) 进行管理的,该控制具有可分配给 Microsoft Entra 帐户的内置或自定义角色。
  • 每个工作区都与一个工作区网关相关联,该网关用于将 API 流量路由到工作区中 API 的后端服务。

包含工作区的 API Management 服务的概念图。

注意

  • API 管理 REST API 版本 2023-09-01-preview 或更高版本支持最新工作区功能。
  • 有关定价注意事项,请参阅 API 管理定价

包含工作区的联合 API 管理

除了已经支持的集中式和孤立模型之外,工作区还为 API Management 中管理 API 的联合模型添加了一流的支持。 有关这些模型的比较,请参阅下表。

模型 说明
集中式

Azure API Management 的集中式模型的示意图。
优点
• 集中式 API 治理和可观测性
• 统一的开发人员门户,用于实现高效的 API 发现和加入
• 基础设施经济高效

缺点
• 团队之间没有管理权限的隔离
• API 网关是单一故障点
• 无法将运行时问题归因于特定团队
• 平台团队为促进协作而承受的负担可能会减少 API 的增长
孤立

Azure API Management 的孤立模型的示意图。
优点
• 团队之间管理权限的隔离提高了工作效率和安全性
• 团队之间 API 运行时的隔离提高了 API 可靠性、复原能力和安全性
• 运行时问题可控,并可归因于特定团队

缺点
• 缺少集中式 API 治理和可观测性
• 缺少统一的开发人员门户
• 成本增加,平台管理更加困难
联合

Azure API Management 的联合模型的示意图。
优点
• 集中式 API 治理和可观测性
• 统一的开发人员门户,用于实现高效的 API 发现和加入
• 团队之间管理权限的隔离提高了工作效率和安全性
• 团队之间 API 运行时的隔离提高了 API 可靠性、复原能力和安全性
• 运行时问题可控,并可归因于特定团队

缺点
• 平台成本和管理难度高于集中式模式,但低于孤立模式

示例方案概述

使用 Azure API 管理管理 API 的组织可能有多个开发团队来开发、定义、维护和产品化不同的 API 集。 工作区使这些团队能够使用 API Management 单独管理、访问和保护其 API,独立于服务基础结构的管理。

下面是用于创建和使用工作区的示例工作流。

  1. 管理 API 管理实例的中心 API 平台团队会创建一个工作区,并使用 RBAC 角色向工作区协作者分配权限,例如在工作区中创建或读取资源的权限。 还会为工作区创建专用 API 网关。

  2. 中央 API 平台团队使用 DevOps 工具为该工作区中的 API 创建 DevOps 管道。

  3. 工作区成员在工作区中开发、发布、产品化和维护 API。

  4. 中央 API 平台团队管理服务的基础结构,例如监视、复原能力和所有 API 策略的强制实施。

工作区中的 API 管理

各个团队在工作区内管理自己的 API、产品、订阅、后端、策略、记录器和其他资源。 有关工作区中支持的资源和操作的完整列表,请参阅 API Management REST API 参考

虽然工作区是独立于 API Management 服务和其他工作区进行管理的,但按照设计,它们可以引用一些精选的服务级资源。 请参阅下文中的工作区和其他 API Management 功能

工作区网关

每个工作区都可以与工作区网关相关联,以启用在工作区内管理的 API 的运行时。 工作区网关是一个独立的 Azure 资源,其核心功能与 API Management 服务中内置的网关相同。

工作区网关独立于 API Management 服务进行管理,并且彼此独立。 它们确保了工作区之间运行时的隔离,提高了 API 的可靠性、复原能力和安全性,并使运行时问题能够归因于各个工作区。

网关主机名

工作区到工作区网关的每个关联都会为该工作区中管理的 API 创建一个唯一的主机名。 默认主机名遵循模式 <workspace-name>-<hash>.gateway.<region>.azure-api.net。 目前,工作区网关不支持自定义主机名。

注意

到 2024 年 10 月,除了工作区网关的主机名外,在运行时还可以使用 API Management 实例的网关主机名访问工作区中的 API。

网络隔离

还可以选择在专用虚拟网络中配置工作区网关,以隔离入站和/或出站流量。 如果配置,则该工作区网关必须使用虚拟网络中的专用子网。

有关详细要求,请参阅工作区网关的网络资源要求

注意

  • 工作区网关的网络配置独立于 API 管理实例的网络配置。
  • 目前,只有在创建网关时,才可以在虚拟网络中配置工作区网关。 稍后无法更改网关的网络配置或设置。

扩展容量

通过手动添加或移除规模单元来管理网关容量,类似于某些服务层级中可以添加到 API Management 实例的单元。 工作区网关的成本基于所选单元数。

区域可用性

工作区网关目前在以下区域中可用:

注意

这些区域是提供了 API Management 的区域的一部分。

  • 美国西部
  • 美国中北部
  • 美国东部 2
  • 英国南部
  • 法国中部
  • 北欧
  • 东亚
  • 东南亚
  • 澳大利亚东部
  • Japan East

网关约束

工作区网关目前存在以下约束:

  • 工作区网关必须与 API 管理实例的主要 Azure 区域位于同一区域,并在同一订阅中。
  • 一个网关只能与一个工作区相关联
  • 工作区不能与自承载网关相关联
  • 工作区网关不支持入站专用终结点
  • 无法为工作区网关中的 API 分配自定义主机名
  • Defender for API 未涵盖工作区中的 API
  • 工作区网关不支持 API Management 服务的凭据管理器
  • 工作区网关仅支持内部缓存;不支持外部缓存
  • 工作区网关不支持合成 GraphQL API 和 WebSocket API
  • 工作区网关不支持从 Azure 资源(例如 Azure OpenAI 服务、应用服务、函数应用等)直接创建 API
  • 在 Azure Monitor 中不能按工作区拆分请求指标;所有工作区指标都在服务级别聚合
  • Azure Monitor 日志在服务级别聚合;工作区级日志不可用
  • 工作区网关不支持 CA 证书
  • 工作区网关不支持自动缩放
  • 工作区网关不支持托管标识及相关功能,例如在 Azure Key Vault 中存储机密和使用 authentication-managed-identity 策略

适用于工作区的 RBAC 角色

Azure RBAC 用于配置工作区协作者读取和编辑工作区中的实体的权限。 有关角色的列表,请参阅如何在 API 管理中使用基于角色的访问控制

若要管理工作区中的 API 和其他资源,必须为工作区成员分配作用域为 API Management 服务、工作区和工作区网关的角色(或使用自定义角色的等效权限)。 服务范围角色支持从工作区级别资源引用特定的服务级别资源。 例如,将用户组织到工作区级别组中,以控制 API 和产品可见性。

注意

为便于管理,请设置 Microsoft Entra 组,以将工作区权限分配给多个用户。

工作区和其他 API 管理功能

工作区被设计为自包含的,可以最大限度地隔离管理访问和 API 运行时。 有几个例外可以确保更高的工作效率,并实现平台级治理、可观察性、可重用性和 API 发现。

  • 资源引用 - 工作区中的资源可以引用工作区中的其他资源和服务级别中的精选资源,例如用户、授权服务器或内置用户组。 它们不能从另一个工作区引用资源。

    出于安全原因,无法从工作区级别策略引用服务级别资源(例如命名值)或按资源名称引用,例如 set-backend-service 策略中的 backend-id

    重要

    API 管理服务中的所有资源(例如 API、产品、标记或订阅)都需要具有唯一的名称,即使它们位于不同的工作区中也是如此。 在同一工作区、其他工作区或服务级别中,不能有任何类型相同且 Azure 资源名称相同的资源。

  • 开发人员门户 - 工作区是一个管理概念,不会向开发人员门户使用者呈现,包括通过开发人员门户 UI 和基础 API。 工作区中的 API 和产品可以发布到开发人员门户,就像服务级别上的 API 和产品一样。

    注意

    API Management 支持将服务级别上定义的授权服务器分配给工作区中的 API。

从预览版工作区迁移

如果你在 Azure API 管理中创建了预览版工作区并想要继续使用它们,请通过将工作区网关与每个工作区关联来将这些工作区迁移到正式版。

若要了解详细信息,并了解可能影响预览版工作区的其他更改,请参阅工作区中断性变更(2025 年 3 月)

删除工作区

如果使用 Azure 门户界面删除工作区,则删除工作区会删除其所有子资源(API、产品,等等)及其关联的网关。 它不会删除 API Management 实例或其他工作区。