什么是 Azure API 管理?

已完成

首先快速了解 Azure API 管理及其核心功能。 本概述应有助于确定 Azure API 管理是否是降低公司 API 复杂性的合适解决方案。

什么是 API 生命周期管理?

API 生命周期管理是在 API 的整个生命周期中对其进行管理的过程,包括设计、创建、过时和停用等阶段。 就本模块而言,我们将在设计、编码和部署 API 后再继续学习。 让我们专注于 API 生命周期管理任务的其余部分,其中包括:

  • 提供 API 文档、测试和代码示例。
  • 加入和停用用户。
  • 管理 API 订阅和订阅密钥的分发。
  • 以可控且安全的方式实现 API 修订。
  • 管理 API 的多个版本。
  • 实现 API 访问控制,例如身份验证和调用速率限制。
  • 提供有关使用情况、错误等的 API 报告。
  • 为公司和使用 API 的开发人员管理分析。

Azure API 管理定义

Azure API 管理是一项云服务,提供一个用于发布、保护、维护和分析公司所有 API 的平台。 Azure API 管理提供三个主要组件来完成这些任务:

  • 网关
  • 管理界面
  • 开发人员门户

The main components of Azure API Management include the administration interface, gateway, and developer portal.

重要

Azure API 管理不托管实际 API;API 保留在其最初部署的位置。 Azure API 管理改为充当 API 的一种外观或“前门”。 这样,通过 Azure API 管理可以在 Azure 中设置 API 策略和其他管理选项,同时保持部署的后端 API 不变,从而分离 API。

网关

Azure API 管理网关是一个可接受来自所有 API 的所有调用的 Azure 终结点。 网关:

  • 验证 API 订阅密钥和其他凭据。
  • 强制实施使用配额和速率限制。
  • 根据需要转换 API 以实现后端兼容性。
  • 将每次调用路由到其相应的后端服务器。
  • 缓存后端响应。
  • 收集分析工作负载的调用元数据。

管理界面

Azure API 管理的管理界面是一组可用于管理服务和 API 的 Azure 门户页面和工具。 除了预配、缩放和监视服务外,还可以使用管理接口执行以下操作:

  • 定义或导入 API 规范
  • 实施使用策略,例如配额和速率限制
  • 设置安全策略
  • 管理用户
  • 将 API 打包到产品中
  • 定义 API 转换
  • 管理 API 修订和版本
  • 针对 API 元数据运行分析

开发人员门户

Azure API 管理开发人员门户是一个完全可自定义的网站,使开发人员可以通过以下方式与 API 交互:

  • 查看每个 API 的文档。
  • 通过交互式控制台尝试使用 API。
  • 查看采用不同编程语言的代码示例。
  • 订阅 API 并获取 API 订阅密钥。
  • 针对开发人员的使用情况运行分析。

Azure API 管理层级

Azure API 管理提供多个服务层级,每一层级提供一组不同的功能、容量和定价。 下表按从低到高的价格顺序列出了这些层级,并比较了一些关键功能。

条件 消耗 开发人员 基本 标准 高级
用途 轻量使用 计算、测试和其他非生产使用 入门级生产使用 中量生产使用 大量或企业生产使用
缓存 仅外部 10 兆字节 (MB) 50 MB 1 千兆字节 (GB) 5 GB
服务级别协议 (SLA) 99.95% 99.95% 99.95% 99.99%
开发人员门户
内置分析
吞吐量(估计请求数/秒) 空值 500 1,000 2,500 4,000

注意

消耗层级的定价按 API 调用数计费,其中前一百万次调用是免费的,其余的按每 10,000 次调用的固定费率收费。 所有其他层级的定价按小时计费。

将策略应用于 API 请求和响应

拥有多个已发布的 API 的一个最大问题是每个 API 都需要一组单独的策略。 此处的策略是指控制 API 行为的设置或操作。 例如,如果想要强制实施速率限制(给定时间段内允许从单个源调用的最大 API 数),需要将此限制作为 API 策略的一部分。 速率限制只是一个示例,但还有大量可应用的策略。 将其与多个不同的 API 相乘,管理工作量就会变得非常大。

Azure API 管理解决了 API 策略问题,让你可以在一个位置(即 Azure API 管理的管理界面)为所有 API 设置策略。 通过 Azure API 管理,可在许多类别中设置策略。 部分列表包括:

  • 访问限制。 这些策略确定何时允许 API 请求通过网关。 例如,强制实施速率限制和使用配额、筛选调用方 IP 以及检查有效的 JSON Web 令牌 (JWT)。
  • 身份验证。 例如,通过使用基本身份验证、客户端证书或托管标识对 API 调用进行身份验证。
  • 缓存。 通过在缓存中存储和检索响应,提高 API 性能。
  • 验证。 通过将某些参数与 API 规范中的内容进行比较来验证 API 调用。 例如,验证请求或响应正文、请求头参数以及响应头。

在策略定义中灵活组合策略,这些定义是由一系列语句组成的 XML 文档,其中每个语句都表示一个策略及其参数。 策略定义允许在 API 请求-响应管道的不同阶段配置单独的策略:

A consumer's API request enters the Azure API Management gateway where it passes through inbound policies before being sent to the backend server. The API response then passes through the gateway's outbound policies before being sent to the originating API consumer.