建立可重複使用的共用流程

本頁適用於 ApigeeApigee Hybrid

查看 Apigee Edge 說明文件。

將政策和資源組合成共用流程,您就能從多個 API Proxy 甚至其他共用流程中取用。雖然共用流程類似於 Proxy,但沒有端點。您只能在與共用流程相同機構的 API Proxy 或共用流程中使用這項功能。

共用流程可在單一位置擷取多個位置都會用到的功能,有助於確保一致性、縮短開發時間,並更輕鬆地管理程式碼。

以下影片示範如何在 Apigee UI 中建立及偵錯共用流程。

您可以使用 FlowCallout 政策呼叫共用流程。此外,您也可以將共用流程附加至流程掛鉤,讓共用流程在 Proxy 或目標要求之前或之後執行,或是在 Proxy 或目標回應之後執行。

如要參考 FlowCallout 政策,請參閱「FlowCallout 政策」。如要進一步瞭解流程掛鉤,請參閱「使用流程掛鉤附加共用的流程」。

舉例來說,假設您有許多功能區域,這些功能可能會用於多個位置,或是必須在貴機構的所有 API 中標準化。您可以為每個類別建立共用流程,包括:

  • 安全性:使用 OAuth 和 API 金鑰驗證的授權碼,以及威脅防護碼。
  • Logging:用於產生標準錯誤訊息。
  • Mediation:用於在 XML 和 JSON 訊息格式之間轉換。

在下圖中,兩個 API Proxy 會透過 FlowCallout 政策呼叫共用流程,以便驗證傳入的使用者要求。AuthSharedFlow 已在 Proxy 之前單獨部署至機構,以便支援 Proxy 的要求。負責公司整體政策的團隊可以開發及管理共用流程,然後由業務團隊在 Proxy 中使用,以便建構更專門的應用程式。

流程圖顯示 POST /foodcarts 政策,以及 POST /menus 政策到 AuthSharedFlow。說明文字:
           a) 多個 API Proxy 會透過 FlowCallouts 使用共用流程。b) FlowCallout 政策會從 API Proxy 呼叫共用流程。c) 共用流程套件包含可重複使用的邏輯,做為政策和資源。

開發共用流程

開發共用流程時,請務必使用傳送至 API Proxy 的呼叫進行測試。換句話說,您無法像 API 代理程式一樣,將要求直接傳送至共用流程。而是將要求傳送至 API Proxy,再由 API Proxy 呼叫共用流程。

以下是開發共用流程的大致步驟:

  1. 找出共用功能組合應包含哪些內容。

    舉例來說,您可能會想結合流量管理功能,包括抑制流量尖峰。這樣一來,您就能在實作業務線邏輯的工作流程之外管理設定。

  2. 開發共用流程,方法是實作政策和支援資源,就像開發 API Proxy 一樣。

    共用流程是一系列的條件步驟,因此,開發這類應用程式就像開發 API Proxy 一樣。您可以加入 Proxy 中可能會用到的政策和資源。

    舉例來說,您可以實作流量管理支援的一部分,實施「尖峰封鎖」政策,只允許每秒 30 個要求,如下所示:

    <SpikeArrest async="false" continueOnError="false" enabled="true" name="Spike-Arrest">
        <DisplayName>Spike Arrest</DisplayName>
        <Properties/>
        <Identifier ref="request.header.some-header-name"/>
        <MessageWeight ref="request.header.weight"/>
        <Rate>30ps</Rate>
    </SpikeArrest>

    接著,您可以將 Spike Arrest 政策附加為流量管理共用流程中的步驟。這項政策會針對呼叫共用流程的任何 API Proxy 執行。

    <SharedFlow name="default">
        <Step>
            <Name>Spike-Arrest</Name>
        </Step>
    </SharedFlow>

    如要瞭解如何在管理主控台中啟動共用流程,請參閱「在 Apigee UI 中建立共用流程」一文。

    如同 API Proxy,您可以使用「Create shared flow API」匯入包含共用流程來源構件的 ZIP 檔案。以下說明如何使用 Apigee API 匯入共用流程:

    curl "https://apigee.googleapis.com/v1/organizations/$ORG/sharedflows?action=import&name=mySharedFlow" \
      -X POST \
      -F "file=@sharedflow.zip" \
      -H "Authorization: Bearer $TOKEN"

    其中 $TOKEN 會設為您的 OAuth 2.0 存取權憑證,如取得 OAuth 2.0 存取權憑證一節所述。如要瞭解本範例中使用的 curl 選項,請參閱「使用 curl」。如要瞭解所使用的環境變數,請參閱「為 Apigee API 要求設定環境變數」。

  3. 在部署會使用共用流程的 Proxy 或共用流程之前,請先將共用流程部署至環境。部署共用流程的方式與部署 API Proxy 相同。(詳情請參閱「部署總覽」)。

    共用流程必須位於同一個機構,並且與 API Proxy 和其他共用流程 (會使用該 Proxy) 部署至相同的環境。在 Proxy 之前部署共用流程,可在部署期間解決 Proxy 對共用流程的依附性。

    您可以使用 Apigee API 呼叫部署共用流程,例如:

    curl https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/sharedflows/$SHAREDFLOW/revisions/$REV/deployments \
      -X POST \
      -H "Authorization: Bearer $TOKEN"

    與 API Proxy 類似,所有成功部署至 Apigee 的共用流程都是零停機時間部署

  4. 開發使用 API Proxy,讓其可在其自身流程中呼叫共用流程。

    您可以透過 API Proxy 呼叫含有 FlowCallout 政策的共用流程。(您也可以使用流程掛鉤將共用流程附加至 Proxy)。

    如要使用共用流程,請將 FlowCallout 政策新增至將要使用該流程的 Proxy 或共用流程。就像您使用服務呼叫政策呼叫其他服務一樣,FlowCallout 會呼叫共用流程。使用 API Proxy 必須在共用流程之後部署,且部署至與共用流程相同的環境。如要使用 FlowCallout 政策測試對其的呼叫,必須先建立共用流程。

    在以下程式碼中,FlowCallout 政策會呼叫名為 traffic-management-shared 的共用流程。

    <FlowCallout async="false" continueOnError="false" enabled="true" name="Traffic-Management-Flow-Callout">
        <DisplayName>Traffic Management FlowCallout</DisplayName>
        <Properties/>
        <SharedFlowBundle>traffic-management-shared</SharedFlowBundle>
    </FlowCallout>

    詳情請參閱「從 API Proxy 或共用流程呼叫共用流程

  5. 部署使用 API Proxy,即可開始使用共用流程。(如要進一步瞭解一般部署作業,請參閱部署總覽)。
  6. 透過追蹤功能逐步開發,就像使用 API Proxy 一樣。

    如同 API Proxy,您可以透過重複叫用和追蹤,直到取得所需的邏輯為止,藉此開發共用流程。在這種情況下,由於共用流程不會自行執行,因此您需要叫用 Proxy 端點並對 Proxy 進行偵錯。

    步驟如下:

    1. 請確認共用流程和使用 FlowCallout 政策呼叫共用流程的 API Proxy 都位於同一個機構,且已部署至相同的環境。
    2. 在 API Proxy 的「Trace」Trace分頁中,開始追蹤 API Proxy。
    3. 將要求傳送至 API Proxy 中的 Proxy 端點。端點的流程必須包含呼叫共用流程的 FlowCallout 政策。
    4. 在「Trace」Trace分頁中,檢查從 API Proxy 到共用流程的流程。

      請注意,在追蹤中,共用流程會以一組步驟或政策表示,並以灰色方塊包圍。代表 FlowCallout 政策的圖示會出現在共用流程之前。(如要進一步瞭解追蹤功能,請參閱「偵錯工具」一文)。

      交易對應圖。說明文字:
            a) FlowCallout 政策會呼叫共用流程。b) 共用流程包含 SpikeArrest 政策和 FlowCallout 政策。
            「FlowCallout」政策會呼叫另一個設有「VerifyAPIKey」政策的共用流程。

在 Apigee UI 中建立共用流程

使用 Apigee API 建立共用流程時,您可以從頭開始建立,也可以將現有的流程來源匯入為流程套件 ZIP 檔案。

如要存取「共用流程」頁面,請按照下列說明操作。在「共用流程」頁面中,您可以查看機構中共用流程的清單,並編輯或刪除清單中的流程。

如何在 Apigee UI 中建立共用流程:

  1. 登入 Apigee UI
  2. 選取含有共用流程的機構。請參閱切換機構

    共用流程可供該機構環境中部署的任何 API Proxy 和共用流程使用。這個應用程式不會提供給機構外部的使用者。

  3. 在左側導覽列中,依序選取「Develop」>「Shared Flows」
  4. 建立或上傳共用流程:
    • 按一下「建立新流程」,從頭開始建立新流程。您可以將政策和資源設為流程中的步驟。

      系統會顯示「Create a Shared Flow」對話方塊。

      1. 輸入共用流程的名稱。

        這是 API Proxy 和其他共用流程用來參照此共用流程的名稱。名稱應能讓使用該流程的開發人員瞭解其用途。

      2. 輸入說明,進一步說明流程的功能。
      3. 如果貴機構已啟用 Apigee Spaces,您可以將共用流程與從可用選項清單中選取的聊天室建立關聯。詳情請參閱 Apigee Spaces 總覽
      4. 按一下「建立」

        共用流程已建立。

      5. 接下來,您可以開發共用流程功能,並部署至所需環境。
    • 按一下「上傳套件」,即可上傳流程套件,並從現有來源建立共用流程。

      共用流程組合包含共用流程的來源構件。舉例來說,如果您從 Apigee UI 下載共用流程,就會取得包含流程套件的 ZIP 檔案。

      系統會顯示「Create a Shared Flow」對話方塊。

      1. 選取含有新流程中所需構件的 ZIP 檔案。
      2. 按一下「開啟」
      3. 輸入匯入的共用流程名稱。

        這是 API Proxy 和其他共用流程用來參照此共用流程的名稱。名稱應能讓使用該流程的開發人員瞭解其意義。

      4. 按一下「建立」

        共用流程會從套件建立。

      5. 接下來,您可以開發共用流程功能,並部署至所需環境。

從 API Proxy 或共用流程呼叫共用流程

您可以使用 FlowCallout 政策,從 Proxy 或其他共用流程呼叫共用流程。

  1. 在 Apigee UI 中,開啟要呼叫共用流程的 API Proxy 或共用流程。
  2. 按一下「開發」分頁標籤。
  3. 在「Navigator」中,按一下「Policies」旁的「+」
  4. 在政策清單的「擴充功能」下方,按一下「FlowCallout」
  5. 輸入顯示名稱和名稱 (專屬 ID),然後選取這項政策將呼叫的共用流程。
  6. 按一下「新增」。
  7. 將新的 FlowCallout 政策新增至要進行呼叫的 Proxy。

另請參閱

API Proxy 鏈結