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

本頁內容適用於 ApigeeApigee Hybrid

查看 Apigee Edge 說明文件。

將政策和資源組合為共用流程,即可從多個 API Proxy,甚至是其他共用流程取用。雖然共用流程類似於 Proxy,但沒有端點。只能從與共用流程位於相同機構的 API Proxy 或共用流程使用。

共用流程可擷取多個位置適用的功能,集中管理,有助於確保一致性、縮短開發時間,以及更輕鬆地管理程式碼。

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

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

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

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

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

在下圖中,兩個 API Proxy 會呼叫 (使用 FlowCallout 政策) 共用流程,驗證傳入的使用者要求。AuthSharedFlow 已部署至機構,且部署時間早於 Proxy,因此可支援 Proxy 的要求。負責廣泛公司政策的團隊可以開發及管理共用流程,然後由建構更專業應用程式的業務線團隊在 Proxy 中使用。

流程圖:POST /foodcarts 政策 -> POST /menus 政策 -> AuthSharedFlow。
          宣傳文字:
          a) 多個 API Proxy 透過 FlowCallout 使用共用流程。
          b) FlowCallout 政策會從 API Proxy 呼叫共用流程。
          c) 共用流程套件包含可重複使用的邏輯,例如政策和資源。

開發共用流程

開發共用流程時,您必須一律透過傳送至 API Proxy 的呼叫進行測試。換句話說,您無法像 API 代理一樣,直接將要求傳送至共用流程。您會改為將要求傳送至 API Proxy,後者會呼叫共用流程。

以下是開發共用流程的基本步驟:

  1. 找出共用功能集應包含哪些功能。

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

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

    共用流程是一連串的條件步驟,因此開發一個 API Proxy 就像開發 API Proxy 一樣。您可以加入 Proxy 中可能包含的政策和資源。

    舉例來說,為了支援流量管理,您可能會實作 Spike Arrest 政策,每秒只允許 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 使用者介面中建立共用流程」。

    與 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 對共用流程的依附元件。

    您可以透過 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)。

    如要使用共用的流程,請在要使用該流程的 Proxy 或共用流程中新增 FlowCallout 政策。與您呼叫其他服務的服務呼叫政策類似,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。

    開始執行下列步驟前,請確認共用流程和呼叫該流程的 API Proxy 位於同一個機構,且部署至相同環境。FlowCallout

    Cloud 控制台中的 Apigee

    1. 在 API Proxy 的「Debug」分頁中,開始偵錯 API Proxy。
    2. 將要求傳送至 API Proxy 中的 Proxy 端點。端點的流程必須包含呼叫共用流程的 FlowCallout 政策。
    3. 在「Debug」分頁中,檢查從 API Proxy 到共用流程的流程。(如要進一步瞭解如何偵錯,請參閱「偵錯工具」一文)。

    傳統版 Apigee

    1. 在 API Proxy 的「追蹤」分頁中,開始追蹤 API Proxy。
    2. 將要求傳送至 API Proxy 中的 Proxy 端點。端點的流程必須包含呼叫共用流程的 FlowCallout 政策。
    3. 在「追蹤」分頁中,檢查從 API Proxy 到共用流程的流程。

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

      交易地圖。摘要文字:
            a) FlowCallout 政策會呼叫共用流程。
            b) 共用流程包含 SpikeArrest 政策和 FlowCallout 政策。
            FlowCallout 政策會呼叫另一個共用流程,並採用 VerifyAPIKey 政策。

在 Apigee UI 中建立共用流程

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

按照下列步驟存取「共用流程」頁面。在「共用流程」頁面中,您可以查看機構中的共用流程清單,並編輯或刪除清單中的流程。

如要在 Apigee 使用者介面中建立共用流程,請按照下列步驟操作:

Cloud 控制台中的 Apigee

  1. 前往 Google Cloud 控制台的「Proxy development > Shared flows」(Proxy 開發 > 共用流程) 頁面。

    前往共用流程

  2. 選取含有共用流程的機構。請參閱「切換機構」。

    部署至這個機構環境的任何 API Proxy 和共用流程,都能使用共用流程。這個應用程式不會開放給機構外部使用者。

  3. 建立或上傳共用流程:
    • 按一下「建立」,從頭開始建立新流程。您可以在流程中設定政策和資源。

      系統會顯示「建立共用的流程」對話方塊。

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

        API Proxy 和其他共用流程會使用這個名稱參照此共用流程。名稱應含有足以讓使用流程的開發人員識別的描述。

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

        系統會建立共用流程。

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

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

      系統會顯示「建立共用的流程」對話方塊。

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

        API Proxy 和其他共用流程會使用這個名稱參照此共用流程。名稱應含有足以讓使用流程的開發人員識別的描述。

      4. 按一下「建立」

        共用流程是從套裝組合建立。

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

傳統版 Apigee

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

    部署至這個機構環境的任何 API Proxy 和共用流程,都能使用共用流程。這個應用程式不會開放給機構外部使用者。

  3. 在左側導覽列中,選取「開發」>「共用流程」
  4. 建立或上傳共用流程:
    • 按一下「建立新流程」,從頭開始建立新流程。您可以在流程中設定政策和資源。

      系統會顯示「建立共用的流程」對話方塊。

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

        API Proxy 和其他共用流程會使用這個名稱參照此共用流程。名稱應含有足以讓使用流程的開發人員識別的描述。

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

        系統會建立共用流程。

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

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

      系統會顯示「建立共用的流程」對話方塊。

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

        API Proxy 和其他共用流程會使用這個名稱參照此共用流程。名稱應含有足以讓使用流程的開發人員識別的描述。

      4. 按一下「建立」

        共用流程是從套裝組合建立。

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

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

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

Cloud 控制台中的 Apigee

  1. 執行下列任一操作:
    • 在 Google Cloud 控制台中,前往「Proxy development」>「API proxies」頁面。

      前往 API Proxy

    • 前往 Google Cloud 控制台的「Proxy development > Shared flows」(Proxy 開發 > 共用流程) 頁面。

      前往共用流程

  2. 按一下「開發」分頁標籤。
  3. 在導覽窗格中,按一下「政策」旁的
  4. 在政策清單中,選取「Extension」下方的「FlowCallout」
  5. 輸入顯示名稱和名稱 (專屬 ID),然後選取這項政策會呼叫的共用流程。
  6. 點選「建立」
  7. 按一下「儲存」旁的 ,然後按一下「另存為新修訂版本」

傳統版 Apigee

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

另請參閱

鏈結多個 API Proxy