你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于:所有 API 管理层级
本文介绍如何在 Azure API 管理策略定义中创建和使用 策略片段 。 策略片段是集中管理的可重用 XML 代码段,其中包含一个或多个 API 管理 策略 配置。
策略片段有助于以一致的方式配置策略并维护策略定义,而无需重复或重新键入 XML 代码。
策略片段:
- 必须是包含一个或多个策略配置的有效 XML。
- 如果引用的策略支持策略表达式,就可以包含策略表达式。
- 在策略定义中通过 include-fragment 策略插入了 as-is。
的限制:
- 策略片段不能包含策略节标识符(
<inbound>
<outbound>
例如)或<base/>
元素。 - 目前,策略片段无法嵌套另一个策略片段。
- 策略片段的最大大小为 32 KB。
先决条件
如果你没有 API 管理实例和后端 API,请参阅:
虽然这不是必需的,但你可能想要 配置 一个或多个策略定义。 创建策略片段时,可以从这些定义复制策略元素。
转到你的 API 管理实例
在 Azure 门户中,搜索并选择“API 管理服务”:
在“API 管理服务”页上,选择你的 API 管理实例:
创建策略片段
在 API 管理实例的左窗格中的 “API”下,选择“ 策略片段”。 在 “策略片段 ”窗格中,选择“ + 创建”。
在 “创建新策略片段 ”窗口中,输入 名称和 (可选)策略片段 的说明 。 该名称在 API 管理实例中必须是唯一的。
示例名称:ForwardContext
在 XML 策略片段编辑器中,在标签
<fragment>
和</fragment>
之间键入或粘贴一个或多个策略 XML 元素:例如,以下片段包含一个
set-header
策略配置,用于将上下文信息转发到后端服务。 此片段将包含在入站策略部分中。 此示例中的策略表达式访问内置context
变量。<fragment> <set-header name="x-request-context-data" exists-action="override"> <value>@(context.User.Id)</value> <value>@(context.Deployment.Region)</value> </set-header> </fragment>
选择“创建”。 该片段被添加到策略片段列表中。
在策略定义中包含片段
使用 include-fragment
策略在策略定义中插入策略片段。 有关策略定义的详细信息,请参阅设置或编辑策略。
- 只要片段中的基础策略或策略支持使用,就可以在任何范围和任何策略部分包含片段。
- 可以在策略定义中包含多个策略片段。
例如,在入站策略部分插入名为 ForwardContext 的策略片段:
<policies>
<inbound>
<include-fragment fragment-id="ForwardContext" />
<base />
</inbound>
[...]
提示
要查看策略定义中显示的包含片段的内容,请在策略编辑器中选择“计算有效策略”。
管理策略片段
创建策略片段后,可以随时查看和更新其属性或删除它。
查看策略片段的属性:
- 在 API 管理实例的左窗格中的 “API”下,选择“ 策略片段”。 选择片段的名称。
- 在概述页面上,查看“策略文档参考”以查看包含该片段的策略定义。
- 在 “属性 ”页上的 “设置”下,查看策略片段的名称和说明。 以后无法更改此名称。
编辑策略片段:
- 在 API 管理实例的左窗格中的 “API”下,选择“ 策略片段”。 选择片段的名称。
- 在 “设置”下,选择 “策略编辑器”。
- 更新片段中的语句,然后选择“ 应用”。
注意
更新会影响包含片段的所有策略定义。
删除策略片段:
- 在 API 管理实例的左窗格中的 “API”下,选择“ 策略片段”。 选择片段的名称。
- 查看包含片段的策略定义的策略文档参考。 在删除片段之前,必须从所有策略定义中删除片段引用。
- 删除所有引用后,选择“删除”。
相关内容
有关使用策略的详细信息,请参阅:
- 教程:转换和保护 API
- 策略参考,其中提供了策略语句及其设置的完整列表
- 策略表达式
- 设置或编辑策略
- 重复使用策略配置
- 策略片段存储库
- Azure API 管理策略工具包
- 获取 Copilot 帮助以创建、解释策略和排查策略问题