你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
什么是 Azure API 管理?
适用于:所有 API 管理层级
本文概述了 Azure API 管理的常见方案和关键组件。 Azure API 管理是一种混合式多云管理平台,适用于所有环境中的 API。 作为平台即服务,API 管理支持完整的 API 生命周期。
方案
API 可实现数字体验,简化应用程序集成,支持新的数字产品,并使数据和服务可重复使用且可广泛访问。 随着对 API 的依赖日益增加,组织需要在整个生命周期中将其作为一流资产进行管理。
Azure API 管理有助于客户应对以下挑战:
- 抽象化 API 使用者后端体系结构的多样性和复杂性
- 安全地将托管在 Azure 上和 Azure 外部的服务公开为 API
- 保护、加快和观察 API
- 允许内部和外部用户发现和使用 API
常见方案包括:
- 解锁旧版资产 - API 用于抽象化和现代化旧版后端,并使其可从新的云服务和新式应用程序进行访问。 API 支持在没有迁移风险、成本和延迟的情况下进行创新。
- 以 API 为中心的应用集成 - API 是易于使用的、基于标准的自描述机制,用于公开和访问数据、应用程序和进程。 它们简化并降低了应用集成的成本。
- 多通道用户体验 - API 通常用于实现用户体验,例如 Web 应用程序、移动应用程序、可穿戴设备或物联网应用程序。 重复使用 API 以加快开发和 ROI。
- B2B 集成 - 向合作伙伴和客户公开的 API 降低了集成业务流程和在业务实体之间交换数据的障碍。 API 消除了点到点集成中固有的系统开销。 特别是在启用了自助式发现和加入的情况下,API 是缩放 B2B 集成的主要工具。
API 管理组件
Azure API 管理由 API 网关、管理平面和开发人员门户组成。 这些组件是 Azure 托管的,默认情况下是完全托管的。 API 管理在各种层中都有提供,这些层的容量和功能都不同。
API 网关
来自客户端应用程序的所有请求首先到达 API 网关,然后 API 网关将它们转发到各自的后端服务。 API 网关充当后端服务的外观,使 API 提供者能够抽象化 API 实现并改进后端体系结构,而不会影响 API 使用者。 网关支持路由、安全、限制、缓存和可观察性的一致配置。
具体而言,网关执行以下操作:
- 通过接受 API 调用并将其路由到适当的后端,充当后端服务的外观
- 验证与请求一起提供 API 密钥和其他凭据,例如 JWT 令牌和证书
- 强制使用配额和速率限制
- 选择性地转换策略语句中指定的请求和响应
- 如果已配置,将缓存响应以缩短响应延迟并最大程度地减少后端服务负载
- 发出用于监视、报告和故障排除的日志、指标和跟踪
自承载网关
对于自托管网关,客户可以将 API 网关部署到托管其 API 的相同环境中,以优化 API 流量并确保符合当地的法规和指导原则。 使用自托管网关,具有混合 IT 基础结构的客户可以从 Azure 中的单个 API 管理服务管理本地和云中托管的 API。
自托管网关打包为基于 Linux 的 Docker 容器,通常部署到 Kubernetes,包括 Azure Kubernetes 服务和已启用 Azure Arc 的 Kubernetes。
详细信息:
管理平面
API 提供者通过管理平面与服务进行交互,后者提供对 API 管理服务功能的完全访问权限。
客户通过 Azure 门户、Azure PowerShell、Azure CLI、Visual Studio Code 扩展、REST API 或客户端 SDK 等 Azure 工具与管理平面进行交互,这些工具使用多种常用编程语言。
使用管理平面可以:
- 预配和配置 API 管理服务设置
- 定义或导入来自各种源的 API 架构,这些源包括 OpenAPI、WSDL、OData 定义、Azure 计算服务、WebSocket、GraphQL 和 gRPC 后端
- 将 API 打包到产品中
- 设置策略,如 API 的配额或转换
- 从分析中获得见解
- 管理用户
开发人员门户
开放源代码开发人员门户是一个自动生成的、可完全自定义的网站,其中包含 API 的文档。
API 提供者可通过添加自定义内容、自定义样式并添加品牌来自定义开发人员门户的外观。 通过自托管进一步扩展开发人员门户。
应用开发人员使用开放源代码开发人员门户发现 API,加入 API 以供使用,并了解如何在应用程序中使用它们。 (API 还可导出到 Power Platform 供平民开发者发现和使用。)
使用开发人员门户,开发人员可以:
- 阅读 API 文档
- 通过交互式控制台调用 API
- 创建帐户并可以订阅以获取 API 密钥
- 访问他们自己的使用情况分析
- 下载 API 定义
- 管理 API 密钥
API 管理层
API 管理提供多种定价层,以满足不同客户的需求。 对于不同的方案,每个层级提供功能、性能、容量限制、可伸缩性、SLA 和定价的不同组合。 层级按如下分组:
- 经典 - 原始 API 管理产品/服务,包括开发人员层、基本层、标准层和高级层。 高级层专为需要访问专用后端、增强安全功能、多区域部署、可用性区域和高可伸缩性的企业而设计。 开发人员层是非生产用途的经济选择,而基本层、标准层和高级层是生产就绪层。
- V2 - 提供快速预配和缩放的一组新的层级,包括用于开发和测试的基本 v2 层级,以及用于生产工作负载的标准 v2 层级。 标准 v2 层级支持到网络隔离后端的简化连接。
- 消耗 - 消耗层是一个无服务器网关,用于管理根据需求缩放并按执行计费的 API。 它专为具有无服务器计算、基于微服务的体系结构和具有可变流量模式的应用程序而设计。
详细信息:
与 Azure 服务集成
API 管理与许多互补的 Azure 服务集成以创建企业解决方案,包括:
- Azure API 中心,用于生成 API 的完整清单在组织中 - 无论其类型、生命周期阶段或部署位置如何- 用于 API 发现、重用和治理
- Azure Copilot,用于帮助创建 API 管理策略或解释已配置的策略
- Azure Key Vault,用于安全保管和管理客户端证书和机密
- Azure Monitor,用于记录和报告管理操作、系统事件和 API 请求并发出警报
- Application Insights,用于提供实时指标、进行端到端跟踪和故障排除
- 虚拟网络、专用终结点、应用程序网关和 Azure Front Door,用于保护整个网络
- Azure Defender for API 和 Azure DDoS 防护,用于运行时防范恶意攻击
- Microsoft Entra ID,用于开发人员身份验证和请求授权
- 事件中心,用于流式处理事件
- 通常用于在 Azure 上构建和托管 API 的多个 Azure 计算产品/服务,包括 Functions、逻辑应用、Web 应用、Service Fabric 等(包括 Azure OpenAI 服务)。
详细信息:
关键概念
API
API 是 API 管理服务实例的基础。 每个 API 表示一组可供应用开发人员使用的操作。 每个 API 包含对实现 API 的后端服务的引用,而其操作映射到后端操作。
API 管理中的操作高度可配置,可控制 URL 映射、查询和路径参数、请求和响应内容以及操作响应缓存。
详细信息:
产品
产品是如何将 API 提供给开发人员。 API 管理中的产品有一个或多个 API,可处于“打开”或“受保护”状态。 受保护的产品需要订阅密钥,而开放产品可自由使用。
产品可以供开发人员使用时,就会发布。 产品一旦发布,就可供开发人员通过开发人员门户查看或订阅。 在产品级别配置订阅批准,也可由管理员批准或被自动批准。
详细信息:
组
组用于管理产品对开发人员的可见性。 API 管理具有下列面向开发人员的内置组:
开发人员 - 经过身份验证的开发人员门户用户,使用你的 API 构建应用程序。 开发人员有权访问开发人员门户,并构建调用 API 操作的应用程序。
来宾 - 未经身份验证的开发人员门户用户,如访问开发人员门户的潜在客户。 它们可以被授予某些只读访问权限,如能够查看 API,但不能调用它们。
API 管理服务所有者还可创建自定义组或使用关联的 Microsoft Entra 租户中的外部组,使开发人员能够查看和访问 API 产品。 例如,为合作伙伴组织中的开发人员创建自定义组,以访问产品中的特定 API 子集。 用户可以属于多个组。
详细信息:
开发人员
开发人员表示 API 管理服务实例中的用户帐户。 可以让管理员创建或邀请开发人员加入,也可以让开发人员从开发人员门户注册。 每个开发人员是一个或多个组的成员,并且可以订阅授予这些组的可见性的产品。
当开发人员订阅某个产品时,会向其授予该产品的主密钥和辅助密钥,以供调用产品的 API 时使用。
详细信息:
工作区
工作区使分散式 API 开发团队能够管理和产品化自己的 API,同时由中央 API 平台团队维护 API 管理基础结构。 每个工作区都包含仅供工作区协作者访问的 API、产品、订阅和相关实体。 访问通过 Azure 基于角色的访问控制 (RBAC) 进行控制。 每个工作区都与一个工作区网关相关联,该网关可将 API 流量路由到其后端服务。
详细信息:
策略
使用策略时,API 发布者可通过配置更改 API 的行为。 策略是一组语句,在请求或 API 的响应时按顺序执行。 流行的语句包括从 XML 到 JSON 的格式转换,并调用速率限制来限制从一名开发人员的传入调用。 有关完整列表,请参阅 API 管理策略。
在任何 API 管理策略中,策略表达式可以用作属性值或文本值,除非该策略另外指定。 某些策略(如控制流和设置变量策略)基于策略表达式。
策略可应用于不同的范围,具体取决于你的需求:是全局(所有 API)、某个工作区、某个产品、某个特定 API,还是某个 API 操作。
详细信息:
后续步骤
完成以下快速入门,然后即可使用 Azure API 管理: