本页面适用于 Apigee 和 Apigee Hybrid。
查看 Apigee Edge 文档。
在附加到流之前,不会执行政策。您可以通过在“步骤”配置中为政策命名来创建政策附加。
附加点的选择对于 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>