本頁適用於 Apigee 和 Apigee 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 中使用,以便建構更專門的應用程式。
開發共用流程
開發共用流程時,請務必使用傳送至 API Proxy 的呼叫進行測試。換句話說,您無法像 API 代理程式一樣,將要求直接傳送至共用流程。而是將要求傳送至 API Proxy,再由 API Proxy 呼叫共用流程。
以下是開發共用流程的大致步驟:
- 找出共用功能組合應包含哪些內容。
舉例來說,您可能會想結合流量管理功能,包括抑制流量尖峰。這樣一來,您就能在實作業務線邏輯的工作流程之外管理設定。
-
開發共用流程,方法是實作政策和支援資源,就像開發 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 要求設定環境變數」。 -
在部署會使用共用流程的 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 的共用流程都是零停機時間部署。
-
開發使用 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 或共用流程呼叫共用流程」
- 部署使用 API Proxy,即可開始使用共用流程。(如要進一步瞭解一般部署作業,請參閱部署總覽)。
-
透過追蹤功能逐步開發,就像使用 API Proxy 一樣。
如同 API Proxy,您可以透過重複叫用和追蹤,直到取得所需的邏輯為止,藉此開發共用流程。在這種情況下,由於共用流程不會自行執行,因此您需要叫用 Proxy 端點並對 Proxy 進行偵錯。
步驟如下:
- 請確認共用流程和使用
FlowCallout
政策呼叫共用流程的 API Proxy 都位於同一個機構,且已部署至相同的環境。 - 在 API Proxy 的「Trace」Trace分頁中,開始追蹤 API Proxy。
- 將要求傳送至 API Proxy 中的 Proxy 端點。端點的流程必須包含呼叫共用流程的
FlowCallout
政策。 - 在「Trace」Trace分頁中,檢查從 API Proxy 到共用流程的流程。
請注意,在追蹤中,共用流程會以一組步驟或政策表示,並以灰色方塊包圍。代表
FlowCallout
政策的圖示會出現在共用流程之前。(如要進一步瞭解追蹤功能,請參閱「偵錯工具」一文)。
- 請確認共用流程和使用
在 Apigee UI 中建立共用流程
使用 Apigee API 建立共用流程時,您可以從頭開始建立,也可以將現有的流程來源匯入為流程套件 ZIP 檔案。
如要存取「共用流程」頁面,請按照下列說明操作。在「共用流程」頁面中,您可以查看機構中共用流程的清單,並編輯或刪除清單中的流程。
如何在 Apigee UI 中建立共用流程:
- 登入 Apigee UI。
-
選取含有共用流程的機構。請參閱切換機構。
共用流程可供該機構環境中部署的任何 API Proxy 和共用流程使用。這個應用程式不會提供給機構外部的使用者。
- 在左側導覽列中,依序選取「Develop」>「Shared Flows」。
-
建立或上傳共用流程:
-
按一下「建立新流程」,從頭開始建立新流程。您可以將政策和資源設為流程中的步驟。
系統會顯示「Create a Shared Flow」對話方塊。
-
輸入共用流程的名稱。
這是 API Proxy 和其他共用流程用來參照此共用流程的名稱。名稱應能讓使用該流程的開發人員瞭解其用途。
- 輸入說明,進一步說明流程的功能。
- 如果貴機構已啟用 Apigee Spaces,您可以將共用流程與從可用選項清單中選取的聊天室建立關聯。詳情請參閱 Apigee Spaces 總覽。
-
按一下「建立」。
共用流程已建立。
- 接下來,您可以開發共用流程功能,並部署至所需環境。
-
輸入共用流程的名稱。
- 按一下「上傳套件」,即可上傳流程套件,並從現有來源建立共用流程。
共用流程組合包含共用流程的來源構件。舉例來說,如果您從 Apigee UI 下載共用流程,就會取得包含流程套件的 ZIP 檔案。
系統會顯示「Create a Shared Flow」對話方塊。
- 選取含有新流程中所需構件的 ZIP 檔案。
- 按一下「開啟」。
-
輸入匯入的共用流程名稱。
這是 API Proxy 和其他共用流程用來參照此共用流程的名稱。名稱應能讓使用該流程的開發人員瞭解其意義。
-
按一下「建立」。
共用流程會從套件建立。
- 接下來,您可以開發共用流程功能,並部署至所需環境。
-
按一下「建立新流程」,從頭開始建立新流程。您可以將政策和資源設為流程中的步驟。
從 API Proxy 或共用流程呼叫共用流程
您可以使用 FlowCallout 政策,從 Proxy 或其他共用流程呼叫共用流程。
- 在 Apigee UI 中,開啟要呼叫共用流程的 API Proxy 或共用流程。
- 按一下「開發」分頁標籤。
- 在「Navigator」中,按一下「Policies」旁的「+」。
- 在政策清單的「擴充功能」下方,按一下「FlowCallout」。
- 輸入顯示名稱和名稱 (專屬 ID),然後選取這項政策將呼叫的共用流程。
- 按一下「新增」。
- 將新的
FlowCallout
政策新增至要進行呼叫的 Proxy。