可重複使用的共用流程

您正在查看 Apigee Edge 說明文件。
前往 Apigee X 說明文件
info

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

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

以下影片示範如何在 Edge UI 中建立及追蹤共用流程。

以下 5 分鐘影片示範如何在傳統版 Edge UI (僅適用於 Private Cloud) 中建立並追蹤共用流程。

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

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

舉例來說,假設您有某些功能會在多個位置使用,或者必須針對貴機構的各個 API 進行標準化。您可以為每個類別建立共用流程,包括:

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

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

開發共用流程

開發共用流程時,您一律必須使用傳送至 API Proxy 的呼叫來測試這個流程。換句話說,您無法像 API Proxy 一樣,將要求直接傳送至共用流程。而是將要求傳送至 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>
    

    如要瞭解如何在管理主控台中啟動共用流程,請參閱在 Edge UI 中建立共用流程

    與 API Proxy 一樣,您可以匯入包含共用流程來源構件的 ZIP 檔案 (如要進一步瞭解如何匯入 Proxy,請參閱「匯入新的 API Proxy」)。以下說明如何使用管理 API 匯入共用流程:

    curl -X POST -F "file=@/path/to/zip/file.zip" \ 'https://api.enterprise.apigee.com/v1/o/{org_name}/sharedflows?action=import&name=shared-flow-name' \
    -u email:password
    
  3. 在部署會使用共用流程的 Proxy 或共用流程之前,請先將共用流程部署至環境。部署共用流程的方式與部署 API Proxy 相同。(詳情請參閱部署總覽)。

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

    您可以透過 Management API 呼叫來部署共用流程,例如:

    curl -X POST --header "Content-Type: application/octet-stream" \
    https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/sharedflows/{shared_flow_name}/revisions/{revision_number}/deployments \
    -u email:password
    

    您也可以在不停機的狀態下,取代目前已部署的共用流程。(這很像 API Proxy。詳情請參閱「使用管理 API 部署 API Proxy」一文。以下是使用管理 API 的申請表單:

    curl -X POST --header "Content-Type:application/x-www-form-urlencoded" \
    https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/sharedflows/{shared_flow_name}/revisions/{revision_number}/deployments?"override=true" \
    -u email:password
    
  4. 開發耗用的 API Proxy,讓該 Proxy 可以在自身流程中呼叫共用流程。

    您可以透過 API Proxy 呼叫含有 FlowCallout 政策的共用流程。(您也可以使用流程掛鉤將共用流程附加至 Proxy,詳情請參閱「使用流程掛鉤附加共用流程」)。如需有關建立 API Proxy 的入門教學課程,請參閱「建構第一個 API 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」分頁中,開始追蹤 API Proxy。
    3. 將要求傳送至 API Proxy 中的 Proxy 端點。端點的流程必須包含呼叫共用流程的 FlowCallout 政策。
    4. 在「Trace」分頁中,檢查從 API Proxy 到共用流程的流程。

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

在 Edge UI 中建立共用流程

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

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

    Edge

    如要使用 Edge UI 存取「共用流程」頁面,請按照下列步驟操作:

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

      共用流程可供該機構環境中部署的任何 API Proxy 和共用流程使用。機構外部使用者無法存取。

    3. 在左側導覽列中依序選取「Develop」(開發) >「Shared Flows」(共用流程)

    Classic Edge (Private Cloud)

    如何使用傳統版 Edge UI 存取「共用流程」頁面:

    1. 登入 http://ms-ip:9000,其中 ms-ip 是管理伺服器節點的 IP 位址或 DNS 名稱。
    2. 選取含有共用流程的機構。請參閱「切換機構」。

      共用流程可供該機構環境中部署的任何 API Proxy 和共用流程使用。機構外部使用者無法存取。

    3. 在頂端導覽列中,依序選取「APIs」>「Shared Flows」
  2. 按一下「+ 共用流程」按鈕,開始新增共用流程。
  3. 在「建構共用流程」頁面上,選擇建立新流程的方式:
    • 從頭開始建立新的流程。您可以將政策和資源設為流程中的步驟。
      1. 選取「Empty Shared Flow」
      2. 輸入名稱值。這是 API Proxy 和其他共用流程用來參照此共用流程的名稱。這個名稱應清楚描述,方便取用流程的開發人員使用。
      3. 輸入說明,進一步說明流程的功能。
      4. 點選「下一步」
      5. 視需要選取要部署新流程的環境。

        舉例來說,如要透過部署至測試環境的 API Proxy 測試共用流程,請將共用流程部署至「test」

      6. 按一下「Build and Deploy」,即可建立新的共用流程並部署至所選環境。如果您未選取任何環境,系統會建立共用流程,但不會部署。

    • 上傳流程套件,從現有來源建立共用流程。
      1. 選取「共用流程套件」,指定含有新流程中所需構件的 .zip 檔案。

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

      2. 點選「下一步」
      3. 按一下「選擇檔案」,瀏覽含有要匯入的共用流程來源 .zip 檔案。
      4. 在「共用流程名稱」方塊中,輸入匯入流程的名稱。這是 API Proxy 和其他共用流程用來參照此共用流程的名稱。這個名稱應清楚描述,方便取用流程的開發人員使用。
      5. 點選「下一步」
      6. 按一下「Build」,根據匯入來源建立新流程。

透過 API Proxy 或共用流程呼叫共用流程

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

  1. 在 Edge UI 中,找出要用來呼叫其他共用流程的代理程式或共用流程。
  2. 在「導覽器」中,按一下「政策」旁的「+」按鈕。
  3. 在政策清單的「擴充功能」下方,按一下「FlowCallout」
  4. 輸入顯示名稱與名稱 (專屬 ID),然後選取這項政策將呼叫的共用流程。
  5. 按一下 [新增]。
  6. 將新的 FlowCallout 政策新增至要進行呼叫的 Proxy。

另請參閱

鏈結多個 API Proxy