API 管理策略参考
适用于:所有 API 管理层级
本部分提供所有 API 管理策略的参考文章的简要描述和链接。 说明了支持每个策略的 API 管理网关。 有关详细的策略设置和示例,请查看链接的参考文章。
有关策略的详细信息:
重要
按订阅限制调用率和按订阅设置使用量配额依赖于订阅密钥。 应用其他策略时不需要订阅密钥。
速率限制和配额
策略 | 说明 | 经典 | 消耗 | 自承载 | |
---|---|---|---|---|---|
按订阅限制调用率 | 通过在每个订阅的基础上限制调用速率,防止出现 API 使用峰值。 | 是 | 是 | 是 | |
按密钥限制调用速率 | 通过在每个密钥的基础上限制调用速率,防止出现 API 使用峰值。 | 是 | 是 | No | 是 |
按订阅设置使用量配额 | 允许根据订阅强制实施可续订或有生存期的调用量和/或带宽配额。 | 是 | 是 | 是 | |
按密钥设置使用量配额 | 允许根据密钥强制实施可续订或有生存期的调用量和/或带宽配额。 | 是 | No | 是 | |
限制并发 | 阻止括住的策略一次执行超过指定数量的请求。 | 是 | 是 | 是 |
身份验证和授权
策略 | 说明 | 经典 | 消耗 | 自承载 |
---|---|---|---|---|
检查 HTTP 标头 | 强制实施 HTTP 标头的存在和/或值。 | 是 | 是 | 是 |
限制调用方 IP | 筛选(允许/拒绝)来自特定 IP 地址和/或地址范围的调用。 | 是 | 是 | 是 |
验证 Microsoft Entra 令牌 | 强制要求从指定 HTTP 标头、查询参数或令牌值中提取的 Microsoft Entra(以前称为 Azure Active Directory)JWT 存在且有效。 | 是 | 是 | 是 |
验证 JWT | 强制要求从指定 HTTP 标头、查询参数或令牌值提取的 JWT 存在且有效。 | 是 | 是 | 是 |
验证客户端证书 | 强制客户端提供给 API 管理实例的证书与指定的验证规则和声明相匹配。 | 是 | 是 | 是 |
使用基本方法进行身份验证 | 通过后端服务(使用基本身份验证)进行身份验证。 | 是 | 是 | 是 |
使用客户端证书进行身份验证 | 通过后端服务(使用客户端证书)进行身份验证。 | 是 | 是 | 是 |
使用托管标识进行身份验证 | 通过后端服务使用托管标识进行身份验证。 | 是 | 是 | 是 |
内容验证
策略 | 说明 | 经典 | 消耗 | 自承载 | |
---|---|---|---|---|---|
验证内容 | 根据一个或多个 API 架构验证请求或响应正文的大小或内容。 支持的架构格式为 JSON 和 XML。 | 是 | 是 | 是 | |
验证 GraphQL 请求 | 验证对 GraphQL API 的请求并授权。 | 是 | 是 | 是 | 是 |
验证 OData 请求 | 验证对 OData API 的请求,以确保符合 OData 规范。 | 是 | 是 | 是 | |
验证参数 | 根据 API 架构验证请求标头、查询或路径参数。 | 是 | 是 | 是 | |
验证标头 | 根据 API 架构验证响应头。 | 是 | 是 | 是 | |
验证状态代码 | 根据 API 架构验证响应中的 HTTP 状态代码。 | 是 | 是 | 是 |
路由
策略 | 说明 | 经典 | 消耗 | 自承载 |
---|---|---|---|---|
转发请求 | 将请求转发到后端服务。 | 是 | 是 | 是 |
设置后端服务 | 将传入请求的后端服务基 URL 更改为 URL 或后端。 通过引用后端资源,可以在单个位置管理后端服务基 URL 和其他设置。 此外,还可以实施跨后端服务池的流量负载均衡和断路器规则,以保护后端免受过多请求。 | 是 | 是 | 是 |
设置 HTTP 代理 | 允许通过 HTTP 代理路由转发请求。 | 是 | 是 | 是 |
缓存
策略 | 说明 | 经典 | 消耗 | 自承载 |
---|---|---|---|---|
从缓存中获取 | 执行缓存查找,并在缓存可用时返回有效的缓存响应。 | 是 | 是 | 是 |
存储到缓存 | 根据指定的缓存控制配置来缓存响应。 | 是 | 是 | 是 |
从缓存中获取值 | 按键检索缓存的项。 | 是 | 是 | 是 |
在缓存中存储值 | 按键将项存储在缓存中。 | 是 | 是 | 是 |
从缓存中删除值 | 按键从缓存中删除项。 | 是 | 是 | 是 |
转换
策略 | 说明 | 经典 | 消耗 | 自承载 | |
---|---|---|---|---|---|
设置请求方法 | 允许更改请求的 HTTP 方法。 | 是 | 是 | 是 | |
设置状态代码 | 将 HTTP 状态代码更改为指定的值。 | 是 | 是 | 是 | 是 |
设置变量 | 在名为 context 的变量中保留一个值,以供以后访问。 | 是 | 是 | 是 | |
设置正文 | 设置请求或响应的消息正文。 | 是 | 是 | 是 | |
设置 HTTP 标头 | 向现有的响应和/或请求标头赋值,或者添加新的响应和/或请求标头。 | 是 | 是 | 是 | |
设置查询字符串参数 | 添加、替换请求查询字符串参数的值,或将该参数删除。 | 是 | 是 | 是 | |
重写 URL | 将请求 URL 从其公用格式转换为 Web 服务所需的格式。 | 是 | 是 | 是 | |
将 JSON 转换为 XML | 将请求或响应正文从 JSON 转换为 XML。 | 是 | 是 | 是 | |
将 XML 转换为 JSON | 将请求或响应正文从 XML 转换为 JSON。 | 是 | 是 | 是 | |
在正文中查找并替换字符串 | 查找请求或响应子字符串并将其替换为不同的子字符串。 | 是 | 是 | 是 | |
在内容中屏蔽 URL | 重写(屏蔽)响应正文中的链接,使其通过网关指向等效的链接。 | 是 | 是 | 是 | |
使用 XSLT 转换 XML | 在请求或响应正文中将 XSL 转换应用到 XML。 | 是 | 是 | 是 | |
返回响应 | 中止管道执行,将指定的响应直接返回给调用方。 | 是 | 是 | 是 | |
模拟响应 | 中止管道执行,将模拟的响应直接返回给调用方。 | 是 | 是 | 是 |
跨域
策略 | 说明 | 经典 | 消耗 | 自承载 |
---|---|---|---|---|
允许跨域调用 | 使 API 可供基于 Adobe Flash 和 Microsoft Silverlight 浏览器的客户端访问。 | 是 | 是 | 是 |
CORS | 向操作或 API 添加跨域资源共享 (CORS) 支持,以便通过基于浏览器的客户端进行跨域调用。 | 是 | 是 | 是 |
JSONP | 向操作或 API 添加 JSON with Padding (JSONP) 支持,以便通过基于 JavaScript 浏览器的客户端进行跨域调用。 | 是 | 是 | 是 |
集成和外部通信
策略 | 说明 | 经典 | 消耗 | 自承载 | |
---|---|---|---|---|---|
发送请求 | 将请求发送到指定的 URL。 | 是 | 是 | 是 | |
发送单向请求 | 将请求发送到指定的 URL,无需等待响应。 | 是 | 是 | 是 | |
记录到事件中心 | 将指定格式的消息发送到记录器实体定义的事件中心。 | 是 | 是 | 是 | |
发送对服务的请求 (Dapr) | 使用 Dapr 运行时查找 Dapr 微服务并与之进行可靠的通信。 若要了解有关 Dapr 中服务调用的详细信息,请参阅这个 README 文件中的说明。 | 否 | No | 是 | |
将消息发送到发布/订阅主题 (Dapr) | 使用 Dapr 运行时将消息发布到发布/订阅主题。 若要了解有关 Dapr 中发布/订阅消息的详细信息,请参阅这个 README 文件中的说明。 | 否 | No | No | 是 |
触发器输出绑定 (Dapr) | 使用 Dapr 运行时通过输出绑定调用外部系统。 若要了解有关 Dapr 中绑定的详细信息,请参阅此 README 文件中的说明。 | 否 | No | 是 |
日志记录
策略 | 说明 | 经典 | 消耗 | 自承载 |
---|---|---|---|---|
跟踪 | 将自定义跟踪添加到测试控制台、Application Insights 遥测和资源日志中的请求跟踪输出中。 | 是 | 是 | 是 |
发出指标 | 在执行时将自定义指标发送到 Application Insights。 | 是 | 是 | 是 |
GraphQL 解析程序
策略 | 说明 | 经典 | 消耗 | 自承载 |
---|---|---|---|---|
解析程序的 Azure SQL 数据源 | 配置 Azure SQL 请求和可选响应,以解析 GraphQL 架构中对象类型和字段的数据。 | 是 | 否 | 否 |
解析程序的 Cosmos DB 数据源 | 配置 Cosmos DB 请求和可选响应,以解析 GraphQL 架构中对象类型和字段的数据。 | 是 | 否 | 否 |
解析程序的 HTTP 数据源 | 配置 HTTP 请求,并选择性地配置 HTTP 响应以解析 GraphQL 架构中对象类型和字段的数据。 | 是 | 是 | 否 |
将事件发布到 GraphQL 订阅 | 将事件发布到 GraphQL API 架构中指定的一个或多个订阅。 为架构中的相关字段配置 GraphQL 解析程序中的策略,以便用于另一种操作类型,如变更。 | 是 | 是 | 否 |
策略控制和流
策略 | 说明 | 经典 | 消耗 | 自承载 |
---|---|---|---|---|
控制流 | 基于布尔表达式的计算结果,有条件地应用策略语句。 | 是 | 是 | 是 |
包含片段 | 在策略定义中插入策略片段。 | 是 | 是 | 是 |
重试 | 重试执行括住的策略语句,直到符合条件为止。 系统会按指定的时间间隔重复执行,直到达到指定的重试计数为止。 | 是 | 是 | 是 |
Wait | 在继续下一步之前,等待括住的发送请求、从缓存中获取值或控制流策略完成。 | 是 | 是 | 是 |
后续步骤
有关使用策略的详细信息,请参阅:
- 教程:转换和保护 API
- 策略参考,其中提供了策略语句及其设置的完整列表
- 策略表达式
- 设置或编辑策略
- 策略示例