鏈結多個 API Proxy

您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件
info

您可以指定一個 Proxy 做為另一個 Proxy 的目標端點,在 Proxy 鏈中有效連結這兩個 Proxy。以這種方式串連 Proxy 可避免網路躍點,進而提升整體效能。

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

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

當您有提供某些離散低層級功能的 Proxy,而其他 Proxy 會耗用這些功能時,Proxy 鏈結就可能很有用。舉例來說,如果某個 Proxy 透過後端資料存放區公開建立/讀取/更新/刪除作業,則該 Proxy 可能會成為多個其他 Proxy 的目標 Proxy,這些 Proxy 會向用戶端公開資料。

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

Proxy 鏈結的運作方式

從一個 Proxy 呼叫另一個 Proxy 時,Proxy 鏈結會使用本機連線,盡量減少網路額外負荷。這類本機連線會略過負載平衡器、路由器和訊息處理器等網路功能,因此效率更高。

下圖說明使用 HTTPTargetConnectionLocalTargetConnection (Proxy 鏈結) 連接 Proxy 的差異:

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

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

您可以使用 LocalTargetConnection 元素,在 TargetEndpoint 設定中連結目標 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 Chaining:從機構和環境中已有的 Proxy 清單中選取。
      1. 在「Proxy Name」下拉式選單中,選取目標 Proxy。
      2. 在「Proxy Endpoint」方塊中,輸入要連線的目標 Proxy 端點路徑。
    • 路徑鏈結,輸入目標 Proxy 底層路徑,例如 /mypath/myproxy/myendpoint
  5. 按一下 [新增]。

鏈結的 Proxy、API 產品和安全性

如果兩個 Proxy 位於同一個 API 產品中,最適合使用 Proxy 鏈結。根據預設,客戶可使用這兩種方式。Apigee 目前不支援將第二個 Proxy 綁定至用戶端不應存取的獨立 API 產品。

如果第二個 Proxy 必須防範直接用戶端要求,請考慮新增邏輯,讓第二個 Proxy 檢查用戶端的 IP 位址。如果是透過鏈結撥打的電話,IP 位址會是本機 IP 位址。您的程式碼可以先驗證是否為本機,再允許繼續處理。如需其中一種做法,請參閱存取權控管政策