鏈結多個 API Proxy

您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件
資訊

您可以指定一個 Proxy 是另一個 Proxy 的目標端點,以有效連接 Proxy 鏈結中的兩個 Proxy。以這種方式鏈結 Proxy 可協助您避免網路躍點,進而改善整體效能。

使用 Proxy 鏈結時,您可以指定其中一個 Proxy 是另一個 Proxy 的本機目標端點。您可以不使用 HTTPTargetConnection 元素呼叫第二個 Proxy,而是使用 LocalTargetConnection 元素。

<LocalTargetConnection>
    <APIProxy>myproxy2</APIProxy>
    <ProxyEndpoint>default</ProxyEndpoint>
</LocalTargetConnection>

當您的 Proxy 提供部分獨立的低階功能,其他 Proxy 會使用時,Proxy 鏈結可能會很有用。舉例來說,針對後端資料儲存區公開建立/讀取/更新/刪除作業的 Proxy,可能會是多個向用戶端公開資料的其他 Proxy 的目標 Proxy。

影片:請觀看短片,進一步瞭解 API Proxy 鏈結。

Proxy 鏈結的運作方式

當呼叫另一個 Proxy 時,Proxy 鏈結會使用本機連線,將網路負擔降至最低。這個本機連線會略過負載平衡器、路由器和訊息處理器等網路功能,因此更有效率。

以下範例說明使用 HTTPTargetConnectionLocalTargetConnection (Proxy 鏈結) 連線 Proxy 之間的差異:

如要連結 Proxy,只要將 Proxy 指定為另一個本機目標端點即可。您可以透過下列兩種方式在 Proxy 之間建立本機連線:

  • 指定目標 Proxy 的名稱和 ProxyEndpoint 名稱
  • 指定目標 Proxy 端點的路徑

您可以在 TargetEndpoint 設定中使用 LocalTargetConnection 元素連結目標 Proxy,如下所述。

依 Proxy 名稱連結 Proxy

您可以依名稱指定目標 Proxy。當您從一開始就建立連線,並一起開發 Proxy 時,可能會覺得這項功能最實用。如果您不知道名稱 (或名稱可能會改變),請考慮連線至目標 Proxy 的端點路徑,如下所述。

依名稱連線至目標 Proxy 時,您必須指定 Proxy 的名稱及其 ProxyEndpoint 的名稱。

以下範例指定名為 data-manager 的目標 Proxy,以及由 data-manager 公開的 ProxyEndpoint 名稱。如需參考資訊,請參閱 API Proxy 設定參考資料

<TargetEndpoint name="datamanager">
    <PreFlow name="PreFlow">
        <!-- PreFlow policies -->
    </PreFlow>
    <PostFlow name="PostFlow">
        <!-- PostFlow policies -->
    </PostFlow>
    <LocalTargetConnection>
        <APIProxy>data-manager</APIProxy>
        <ProxyEndpoint>default</ProxyEndpoint>
    </LocalTargetConnection>
</TargetEndpoint>

透過路徑連結 Proxy

您可以透過端點路徑指定目標 Proxy。若您不知道 Proxy 名稱,或是名稱可能有所變更,建議您以這種方式使用。

如果 Proxy 只是目標 Proxy 的取用端 (例如非同時開發),路徑或許是最可靠的連線方式。舉例來說,如果您要連線的 Proxy 是由其他團隊開發及維護,您可能會想使用可靠的端點路徑進行連線。

以下範例會在 /v1/streetcarts/foodcarts/data-manager 中指定目標 Proxy,其中主機會假設主機與目前的 Proxy 相同。如需參考資訊,請參閱 API Proxy 設定參考資料

<TargetEndpoint name="datamanager">
    <PreFlow name="PreFlow">
        <!-- PreFlow policies -->
    </PreFlow>
    <PostFlow name="PostFlow">
        <!-- PostFlow policies -->
    </PostFlow>
    <LocalTargetConnection>
        <Path>/v1/streetcarts/foodcarts/data-manager</Path> 
    </LocalTargetConnection>
</TargetEndpoint>

將 Proxy 與管理控制台連結

您可以使用 Edge 管理控制台建立 Proxy 鏈結連線。

  1. 開啟即將使用目標 Proxy 的 Proxy。
  2. 在「Navigator」中,按一下「Target Endpoints」旁的加號。
  3. 在「New Target Endpoint」對話方塊中,輸入目標端點的名稱。
  4. 在「目標端點名稱」方塊下方,選取下列其中一個選項:
    • Proxy 鏈結:從機構和環境中現有的 Proxy 清單中選取。
      1. 在「Proxy Name」下拉式選單中,選取目標 Proxy。
      2. 在「Proxy 端點」方塊中,輸入要連線的目標 Proxy 端點路徑。
    • 路徑鏈結:輸入目標 Proxy 基本路徑,例如 /mypath/myproxy/myendpoint
  5. 按一下 [新增]。

鏈結 Proxy、API 產品和安全性

如果兩個 Proxy 位於同一個 API 產品,則最適合使用 Proxy 鏈結。根據預設,用戶端可以使用兩者。Apigee 目前不支援在用戶端不應存取的獨立 API 產品中繫結第二個 Proxy。

如果您的第二個 Proxy 必須受到直接用戶端要求保護,請考慮加入邏輯,讓第二個 Proxy 檢查用戶端的 IP 位址。如果是透過鏈結發出的呼叫,IP 位址會是本機。您的程式碼可用來驗證本機環境,然後允許處理作業繼續。如有需要,請參閱存取權控管政策