将政策附加到 ProxyEndpoint 或 TargetEndpoint 流

<ph type="x-smartling-placeholder"></ph> 您正在查看 Apigee Edge 文档。
转到 Apigee X 文档
信息

在附加到流之前,不会执行政策。您可以通过在“步骤”配置中为政策命名来创建政策附加。

附加点的选择对于 API 代理的行为至关重要。例如,如果您将配额政策附加到响应流,则在将请求消息发送到后端服务后,才会实施配额。 这将使应用配额政策的目的无法实现!因此,您需要在请求流中将配额政策作为处理步骤附加。

政策附加的格式为:

<Step>
    <Name>{policy_name}</Name>
</Step>

例如:

<Step>
    <Name>QuotaPolicy</Name>
</Step>

通过将“步骤”配置添加到 ProxyEndpoint 或 TargetEndpoint 配置中的相应请求或响应流元素,系统会将政策附加到流。

您可以将政策附加到请求或响应流。请求和响应流会在 PreFlow 和 PostFlow 中进一步细分。

以下示例展示了没有政策连接的最小 ProxyEndpoint 配置。它只定义(入站)HTTPProxyConnection 和 RouteRule。

<ProxyEndpoint name="default">
    <HTTPProxyConnection>
        <BasePath>/weather</BasePath>
        <VirtualHost>default</VirtualHost>
    </HTTPProxyConnection>
    <RouteRule name="default">
        <TargetEndpoint>default</TargetEndpoint>
    </RouteRule>
</ProxyEndpoint>

您必须修改此配置,以便 ProxyEndpoint 在 API 代理执行任何其他处理之前强制执行配额政策(作为处理步骤)。如果开发者超出配额,您就不会在其他请求上浪费任何计算资源。

要实施此配置,请按以下方式将处理步骤附加到请求 PreFlow 中:

<ProxyEndpoint name="default">
  <PreFlow>
    <Request>
      <Step><Name>QuotaPolicy</Name></Step>
    </Request>
  </PreFlow>
  <HTTPProxyConnection> 
    <BasePath>/weather</BasePath> 
    <VirtualHost>default</VirtualHost> 
  </HTTPProxyConnection> 
  <RouteRule name="default"> 
    <TargetEndpoint>default</TargetEndpoint> 
  </RouteRule> 
</ProxyEndpoint>

有时,您可能希望在对 ProxyEndpoint 执行其他初始处理后执行一个政策。例如,您想要检查 PreFlow 中的配额,然后在检查配额后执行另一组处理,例如将请求从 JSON 转换为 XML。为此,请在 PostFlow 请求路径中附加一个政策。以下是请求 PostFlow 附加示例。在执行 PreFlow(和任何条件流)中的所有政策后,将对请求消息执行此政策。

<PostFlow>
  <Request>
    <Step><Name>JSONtoXMLPolicy</Name></Step>
  </Request>
</PostFlow>

以下是响应 PostFlow 附加示例。此政策将对响应消息执行。(ProxyEndpoint 响应 PostFlow 是响应返回到发出请求的客户端应用之前的最终处理阶段。)

<PostFlow>
  <Response>
    <Step><Name>XMLtoJSONPolicy</Name></Step>
  </Response>
</PostFlow>