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

本頁適用於 ApigeeApigee Hybrid

查看 Apigee Edge 說明文件。

政策必須先附加至流程,才能執行。您可以在步驟設定中命名政策,藉此建立政策附件。

選擇連結點對於 API Proxy 的行為至關重要。舉例來說,如果您將配額政策附加至回應流程,則會在傳送請求訊息至後端服務後,強制執行配額。這會違背套用配額政策的目的!因此,您需要將配額政策附加為要求流程中的處理步驟。

政策附件的格式如下:

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

例如:

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

將政策附加至流程的方法,是在 ProxyEndpoint 或 TargetEndpoint 設定中,將步驟設定加入至適當的請求或回應流程元素。

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

以下範例示範 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>