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

您目前查看的是 Apigee Edge 說明文件。
參閱 Apigee X 說明文件
資訊

政策只有在附加至流程之後才會執行。您可以在步驟設定中為政策命名,藉此建立政策附件。

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

政策附件的格式如下:

<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 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>

有時候,您可能希望在 Proxy 端點上進行一些其他初始處理後,再執行政策。舉例來說,您可以先查看 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>