在界面中关联和配置政策

本页面适用于 ApigeeApigee Hybrid

查看 Apigee Edge 文档。

向 API 代理添加基于政策的功能是两步流程:

  1. 配置政策类型的实例。
  2. 将政策实例附加到流。

下图显示了政策与流之间的关系。如您所见,政策作为处理步骤附加到流中。如需为您的 API 配置所需行为,您需要对流有一定了解。(本主题在前面的配置流中有介绍。)

政策与流之间的关系

一种常用的政策是 SpikeArrest 政策。SpikeArrest 可防止可能会导致后端服务出现故障的消息流量突然增加。

将政策附加到流

新版代理编辑器

如需将政策附加到流,请执行以下操作:

  1. 选择 API 代理并导航到开发视图。
  2. 在左侧窗格中,点击政策行中的 + 按钮。
  3. 创建政策对话框中,点击选择政策类型字段,然后向下滚动到流量管理并选择 SpikeArrest

  4. (可选)您可以更改政策的显示名名称

    “创建政策”对话框。

    完成后,点击创建以创建该政策。

  5. 现在您已经创建了 SpikeArrest 政策,接下来可以将其附加到 PreFlow 中的一个步骤。为此,请在左侧窗格中选择代理端点 > 默认 > PreFlow

    在 Proxy Explorer 中选择的 PreFlow 的目标端点。

  6. 点击可视化编辑器右下角响应窗格中 PreFlow 旁边的 + 按钮:

    点击“响应”窗格中 PreFlow 旁边的 + 按钮。

  7. 添加政策步骤对话框中,选择 SpikeArrest 政策。
  8. 点击添加以附加政策。

    SpikeArrest 政策现在显示在响应窗格中:

    “响应”窗格中显示的 SpikeArrest 政策。

    代理的以下 XML 代码显示在文本编辑器中:

    <ProxyEndpoint name="default">
      <PreFlow name="PreFlow">
        <Request/>
        <Response>
          <Step><
            <Name>SA-</Name>
          </Step>
        </Response>
      </PreFlow>
      <Flows/>
      <PostFlow name="PostFlow">
        <Request/>
        <Response/>
      </PostFlow>
      <HTTPProxyConnection>
        <BasePath>/myproxy</BasePath>
      </HTTPProxyConnection>
      <RouteRule name="default">
        <TargetEndpoint>default</TargetEndpoint>
      </RouteRule>
    </ProxyEndpoint>
      

从流中分离政策

如需从流中分离政策,请点击流旁边的三点状菜单,然后选择删除政策步骤

经典版代理编辑器

如需将政策附加到流,请执行以下操作:

  1. 选择 API 代理并导航到开发视图。
  2. 在 API 代理编辑器中,在导航工具窗格中选择要附加政策的流。
    例如,系统会为下图中的默认 API 代理端点选择 PreFlow 流:
    选择要附加政策的流
  3. 在设计视图中,点击与请求或响应流关联的 + 步骤 以附加政策。例如:
    点击 + 步骤
    系统会打开“添加步骤”对话框,其中会显示已分类的政策列表。
    类别中的政策列表
  4. 滚动并选择要附加到所选流的政策类型。
  5. 修改以下字段。
    • 显示名:政策的唯一显示名。界面将生成一个默认名称,但建议为政策创建描述性名称。这将确保组织中的其他开发者能够轻松了解相应政策的作用。

    • 名称:政策的唯一名称。政策名称与显示名匹配,但存在以下例外:

      • 将空格替换为短划线。

      • 将连续短划线替换为一个短划线。

      • 除短划线、下划线和空格(将被替换,如上文所述)之外,将移除非字母数字字符(如井号、百分号、和符号等)。

  6. 点击添加

    政策将附加到所选流。

附加政策后,您将在流的设计者视图中看到显示的政策,在本示例中是默认代理端点的 PreFlow,而且在导航窗格的政策列表中也将看到。代码视图(显示新附加政策的 XML)将显示在设计者视图下方。Apigee 会生成政策实例,其中包含一组合理的默认值。

“设计师和代码”视图中的 PreFlow 政策

添加政策而不将其附加到流

要添加政策而不将其附加到流(有助于处理错误),请点击导航工具视图的政策栏中的 +,以打开添加政策对话框,然后添加政策(如上一部分中的第 4 步到第 6 步中所述)。

点击 + 以添加政策

未附加到任何流的政策在政策列表中都标有“分离”图标,如上图所示的 API 密钥消息政策旁所示。

创建政策后,您可以将其附加到一个流中,方法是将其从政策列表拖放到设计师视图中的所需流。

从流中分离政策

要从流中分离政策,请选择流。将鼠标悬停在流的设计师视图中的政策图标上。点击图标中显示的圆圈中的 X

删除政策实例

要删除政策实例,请将鼠标悬停在导航工具 视图中政策对应的条目。点击条目右侧显示的圆圈中的 X

在界面中配置政策

当界面生成政策实例时,它会应用常用设置的合理默认值。您可能需要修改这些设置才能满足自己的要求。

例如:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<SpikeArrest async="false" continueOnError="false" enabled="true" name="spikearrest-1">
  <DisplayName>SpikeArrest-1</DisplayName>
  <FaultRules/>
  <Properties/>
  <Identifier ref="request.header.some-header-name"/>
  <MessageWeight ref="request.header.weight"/>
  <Rate>30ps</Rate>
</SpikeArrest>

您可以通过在代码视图中直接编辑 XML 配置来配置政策。例如,Splik Arrest 政策的峰值消息速率最初设置为每秒 30 条消息。您可以通过更改政策的 XML 中的 <Rate> 元素值来更改峰值速率。如需详细了解如何配置政策,请参阅政策参考

您还可以将政策剪切并粘贴到代码视图中。这是重复使用 GitHub 中提供的示例的好方法。

当您在代码视图中更改政策定义时,更改会反映在属性检查器中。反过来也是如此:在属性检查器 中进行更改,更改会显示在代码视图的 XML 中。

如需查看本主题中所用配额政策的相关文档,请参阅配额政策