适用于:所有 API 管理层级
本文介绍如何在 Azure 门户中通过编辑策略定义来配置 API 管理实例中的策略。 每个策略定义是一个 XML 文档,描述针对 API 请求或响应按顺序运行的入站和出站语句序列。
门户中的策略编辑器提供引导式窗体,API 发布者可以使用这些窗体在策略定义中添加和编辑策略。 你还可以直接在策略代码编辑器中编辑 XML。
有关策略的详细信息:
先决条件
如果你没有 API 管理实例和后端 API,请参阅:
转到你的 API 管理实例
- 在 Azure 门户中搜索并选择“API 管理服务” 。   
- 在“API 管理”服务页上,选择你的 API 管理实例。   
在门户中配置策略
以下示例演示如何使用门户的策略编辑器中的两个选项配置策略:
- 基于引导式窗体的编辑器,可以简化配置大量策略的操作
- 代码编辑器,可在其中直接添加或编辑 XML
在此示例中,策略将筛选来自特定传入 IP 地址的请求。 筛选范围限定为所选 API。
若要配置策略,请执行以下操作:
- 在 API 管理实例的左侧导航栏中,选择“API”。 
- 选择前面导入的 API。 
- 选择“设计”选项卡。 
- 若要将策略应用到所有操作,请选择“所有操作”。 
- 在“入站处理”部分,选择“+ 添加策略”。   
- 在“添加入站策略”中,选择要添加的策略。 例如,选择“筛选 IP 地址”。   - 提示 - 显示的策略范围限定为要配置的策略部分 - 在本例中限定为入站处理。
- 如果未看到所需的策略,请选择“其他策略”磁贴。 这会打开 XML 代码编辑器,并显示该部分和范围的策略的完整列表。
 
- 选择“允许的 IP”>“+ 添加 IP 筛选器”,并添加允许发出 API 请求的传入地址范围的第一个和最后一个 IP 地址。 根据需要添加其他 IP 地址范围。   
- 选择“保存”以立即将更改传播到 API 管理网关。 - ip-filter 策略现在会显示在“入站处理”部分。 
在不同的范围配置策略
API 管理让你可以在每个策略部分灵活地在多个范围配置策略定义。
重要
并非所有策略都可以在每个范围或策略部分应用。 如果要添加的策略未启用,请确保在支持的策略部分和该策略的范围内操作。 若要查看某个策略的策略部分和范围,请参阅策略参考主题中的“用法”部分。
注意
“后端”策略部分只能包含一个策略元素。 默认情况下,API 管理在全局范围的“后端”部分配置 forward-request 策略,并在其他范围配置 base 元素。
全局范围
全局范围是针对 API 管理实例中的所有 API 配置的。
- 在 API 管理实例的左侧导航栏中,选择“API”>“所有 API”。 
- 选择“设计”选项卡。   
- 在策略部分,选择“+ 添加策略”以使用基于窗体的策略编辑器,或选择“</>”(代码编辑器)图标直接添加和编辑 XML。 
- 选择“保存”以立即将更改传播到 API 管理网关。 
产品范围
产品范围是针对选定的产品配置的。
- 在左侧菜单中选择“产品”,然后选择要对其应用策略的产品。 
- 在产品窗口中选择“策略”。   
- 在策略部分,选择“+ 添加策略”以使用基于窗体的策略编辑器,或选择“</>”(代码编辑器)图标直接添加和编辑 XML。 
- 选择“保存”以立即将更改传播到 API 管理网关。 
API 范围
API 范围是针对选定 API 的所有操作配置的。
- 在 API 管理实例的左侧导航栏中选择“API”,然后选择要对其应用策略的 API。 
- 选择“设计”选项卡。 
- 选择“所有操作”。   
- 在策略部分,选择“+ 添加策略”以使用基于窗体的策略编辑器,或选择“</>”(代码编辑器)图标直接添加和编辑 XML。 
- 选择“保存”以立即将更改传播到 API 管理网关。 
操作范围
操作范围是针对选定的 API 操作配置的。
- 在 API 管理实例的左侧导航栏中,选择“API”。 
- 选择“设计”选项卡。 
- 选择要将策略应用到的操作。   
- 在策略部分,选择“+ 添加策略”以使用基于窗体的策略编辑器,或选择“</>”(代码编辑器)图标直接添加和编辑 XML。 
- 选择“保存”以立即将更改传播到 API 管理网关。 
使用 base 元素设置策略评估顺序
如果在多个范围内配置策略定义,则可将多个策略应用到 API 请求或响应。 根据不同范围内策略的应用顺序,请求或响应的转换可能不同。
在 API 管理中,通过在每个范围的策略定义中放置 base 元素来确定策略评估顺序。 base 元素继承处于下一个更宽泛(父)范围的该部分中配置的策略。 base 元素默认包含在每个策略部分。
注意
若要查看当前范围的有效策略,请在策略编辑器中选择“计算有效策略”。
若要使用策略编辑器修改策略评估顺序,请执行以下操作:
- 首先处理配置的最窄范围的、API 管理最先应用的定义。 - 例如,在使用全局范围和 API 范围配置的策略定义时,请先处理 API 范围的配置。 
- 将 - base元素放在某个部分,以确定要从父范围的相应部分的哪个位置继承所有策略。- 例如,在 API 范围配置的 - inbound部分,放置一个- base元素,以控制要在哪个位置继承全局范围的- inbound部分中配置的策略。 在以下示例中,从全局范围继承的策略将先应用,然后再应用- ip-filter策略。- <policies> <inbound> <base /> <ip-filter action="allow"> <address>10.100.7.1</address> </ip-filter> </inbound> [...] </policies>- 注意 - 可以在部分中的任何策略元素之前或之后放置 base元素。
- 若要防止从父范围继承策略,请删除 base元素。 在大多数情况下,不建议这样做。
 
- 可以在部分中的任何策略元素之前或之后放置 
- 在连续扩大的范围的策略定义中继续配置 - base元素。- 全局范围的策略没有父范围,在其中使用 - base元素不起作用。
相关内容
有关使用策略的详细信息,请参阅:

