你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在 API 管理策略定义中重用策略配置

适用于:所有 API 管理层级

本文介绍如何在 Azure API 管理策略定义中创建和使用 策略片段 。 策略片段是集中管理的可重用 XML 代码段,其中包含一个或多个 API 管理 策略 配置。

策略片段有助于以一致的方式配置策略并维护策略定义,而无需重复或重新键入 XML 代码。

策略片段:

  • 必须是包含一个或多个策略配置的有效 XML。
  • 如果引用的策略支持策略表达式,就可以包含策略表达式
  • 在策略定义中通过 include-fragment 策略插入了 as-is。

的限制:

  • 策略片段不能包含策略节标识符(<inbound><outbound>例如)或<base/>元素。
  • 目前,策略片段无法嵌套另一个策略片段。
  • 策略片段的最大大小为 32 KB。

先决条件

如果你没有 API 管理实例和后端 API,请参阅:

虽然这不是必需的,但你可能想要 配置 一个或多个策略定义。 创建策略片段时,可以从这些定义复制策略元素。

转到你的 API 管理实例

  1. 在 Azure 门户中,搜索并选择“API 管理服务”:

    在搜索结果中显示 API 管理服务的屏幕截图。

  2. 在“API 管理服务”页上,选择你的 API 管理实例:

    显示“API 管理服务”页面上的 API 管理实例的屏幕截图。

创建策略片段

  1. 在 API 管理实例的左窗格中的 “API”下,选择“ 策略片段”。 在 “策略片段 ”窗格中,选择“ + 创建”。

  2. “创建新策略片段 ”窗口中,输入 名称和 (可选)策略片段 的说明 。 该名称在 API 管理实例中必须是唯一的。

    示例名称:ForwardContext

  3. 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>
    
  4. 选择“创建”。 该片段被添加到策略片段列表中。

在策略定义中包含片段

使用 include-fragment 策略在策略定义中插入策略片段。 有关策略定义的详细信息,请参阅设置或编辑策略

  • 只要片段中的基础策略或策略支持使用,就可以在任何范围和任何策略部分包含片段。
  • 可以在策略定义中包含多个策略片段。

例如,在入站策略部分插入名为 ForwardContext 的策略片段:

<policies>
    <inbound>
        <include-fragment fragment-id="ForwardContext" />
        <base />
    </inbound>
[...]

提示

要查看策略定义中显示的包含片段的内容,请在策略编辑器中选择“计算有效策略”。

管理策略片段

创建策略片段后,可以随时查看和更新其属性或删除它。

查看策略片段的属性:

  1. 在 API 管理实例的左窗格中的 “API”下,选择“ 策略片段”。 选择片段的名称。
  2. 在概述页面上,查看“策略文档参考”以查看包含该片段的策略定义。
  3. “属性 ”页上的 “设置”下,查看策略片段的名称和说明。 以后无法更改此名称。

编辑策略片段:

  1. 在 API 管理实例的左窗格中的 “API”下,选择“ 策略片段”。 选择片段的名称。
  2. “设置”下,选择 “策略编辑器”。
  3. 更新片段中的语句,然后选择“ 应用”。

注意

更新会影响包含片段的所有策略定义。

删除策略片段:

  1. 在 API 管理实例的左窗格中的 “API”下,选择“ 策略片段”。 选择片段的名称。
  2. 查看包含片段的策略定义的策略文档参考。 在删除片段之前,必须从所有策略定义中删除片段引用。
  3. 删除所有引用后,选择“删除”。

有关使用策略的详细信息,请参阅: