將政策附加至 ProxyEndpoint 或目標端點流程

本頁內容適用於 ApigeeApigee Hybrid

查看 Apigee Edge 說明文件。

政策必須附加至流程,才會執行。在步驟設定中命名政策,即可建立政策附件。

附件點的選擇對 API Proxy 的行為至關重要。舉例來說,如果您將配額政策附加至回應流程,系統會在要求訊息傳送至後端服務「後」強制執行配額。這樣就無法達到套用配額政策的目的!因此,您需要在要求流程中附加配額政策做為處理步驟。

政策附件的格式如下:

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

例如:

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

如要將政策附加至流程,請在 ProxyEndpoint 或 TargetEndpoint 設定中,將 Step 設定新增至適當的要求或回應 Flow 元素。

您可以將政策附加至要求或回應流程。要求和回應流程會進一步細分為前置流程和後置流程。

以下範例展示最低 ProxyEndpoint 設定,沒有任何政策附件。它只會定義 (連入) HTTPProxyConnection 和 RouteRule。

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

您必須修改這項設定,讓 ProxyEndpoint 在 API Proxy 執行任何其他處理作業前,強制執行配額政策 (做為處理步驟)。如果開發人員超出配額,您就不想在額外要求上浪費任何運算資源。

如要強制執行這項設定,請將處理步驟附加至要求 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>