暫停工作
「Suspend」(暫停) 工作可讓您暫時停止執行整合,然後再繼續執行。
在整合作業執行期間,當控制項到達暫停任務時,執行作業會停止,且暫停任務之後的所有任務都會暫停。發生下列任一事件時,整合作業會繼續執行:
- 指定的停權時間到期。
- 收到
SuspensionsAPI 的繼續執行要求後。
您也可以為「暫停」工作設定輸出變數 (「暫停結果」),並將其設為任何值,然後使用該值建立分支條件,以便執行下游工作。
比較核准工作、暫停工作和計時器工作
這三項工作 (核准、暫停和計時器) 的功能類似,都是暫停及繼續執行整合。不過,兩者之間仍有細微差異。下表說明這三項工作的差異。
| 審核工作 | 暫停工作 | 計時器工作 |
|---|---|---|
| 當使用者在「整合」UI 中或使用 API 核准或拒絕要求時,系統會繼續執行。 | 支援手動和自動恢復整合。如果沒有手動介入撤銷暫停,整合會在暫停時間限制到期後自動恢復執行。 | 僅支援自動恢復整合。暫停時間限制到期後,系統會自動恢復執行整合。 |
可透過「整合」UI 或呼叫 suspensions.resolve 方法,繼續執行整合作業。請參閱「使用 API 核准或拒絕」。 |
可以呼叫 suspensions.lift 方法來繼續整合。 |
僅支援自動恢復整合。 |
| 整合功能暫停 (停權) 時,使用者會收到通知。 | 整合功能暫停 (停用) 時,使用者不會收到任何通知。 | 整合功能暫停 (停用) 時,使用者不會收到任何通知。 |
支援輸出變數 (布林值),可讓您在繼續執行整合前執行條件檢查。不過,輸出變數的值只能是 true 或 false。 |
支援輸出變數 (字串),可讓您在繼續執行整合前執行條件檢查。您可以為輸出變數設定任何值。 | 不支援任何輸出變數。 |
設定暫停工作
如要設定「Suspend」工作,請按照下列步驟操作:
- 前往 Google Cloud 控制台的「Application Integration」頁面。
- 在導覽選單中,按一下「Integrations」(整合)。
「Integrations」(整合) 頁面隨即顯示,列出 Google Cloud 雲端專案中所有可用的整合項目。
- 選取現有整合項目,或按一下「Create integration」(建立整合項目) 建立新的整合項目。
如要建立新的整合:
- 在「Create Integration」(建立整合項目) 窗格中,輸入名稱和說明。
- 選取整合項目的區域。
- 選取整合作業的服務帳戶。您隨時可以透過整合工具列中的「 整合摘要」窗格,變更或更新整合項目的服務帳戶詳細資料。
- 點選「建立」。新建立的整合作業會在整合服務編輯器中開啟。
- 在整合編輯器導覽列中,按一下「Tasks」(工作),查看可用工作和連接器清單。
- 在整合服務編輯器中,按一下並放置「Suspend」(暫停) 任務元素。
- 在設計工具中,按一下「Suspend」(暫停) 任務元素,即可查看「Suspend」(暫停) 任務設定窗格。
- 使用工作的設定屬性設定其餘欄位,詳情請參閱下表。
系統會自動儲存對屬性所做的所有變更。
設定屬性
下表說明「Suspend」工作的設定屬性。
| 屬性 | 資料類型 | 說明 |
Suspension Time
|
整數 | 整合執行作業必須暫停的時間 (以分鐘為單位)。時間上限為 44640 分鐘 (31 天),這也是預設值。 如果整合執行作業未在指定時間限制內恢復,整合會在時間限制到期後自動恢復執行,並將 |
Suspension result
|
String | 用於儲存暫停工作結果的變數。您可以選擇是否要為這個變數設定值。您可以根據需求,將這個變數設為任何值。如要進一步控管整合項目的執行流程,這個變數就非常實用。舉例來說,您可以讀取暫停結果,並根據任何下游任務中的值設定條件式決策。 |
Suspension Id
|
字串 | 暫停工作的專屬 ID。系統會在整合作業暫停後,立即設定這個變數的值。您可以在整合 UI 的執行記錄頁面中取得 ID 值。如果您使用 API 觸發整合作業,也可以從 API 的回應物件取得 ID 值。 您可以使用暫停 ID 或整合項目的執行 ID 繼續執行整合項目。 |
使用 Suspensions API 撤銷停權
Suspensions API 可讓您透過 API 呼叫撤銷停權。如要使用 Suspensions API 撤銷暫停,您必須具備整合的執行 ID 或暫停工作的暫停 ID。如要撤銷停權,您必須向下列 API 發出 POST 要求:
https://REGION-integrations.googleapis.com/v1/{name=projects/PROJECT/locations/LOCATION/integrations/INTEGRATION_ID/executions/EXECUTION_ID/suspensions/SUSPENSION_ID}:lift
在這個 API 中,INTEGRATION_ID 為選用項目。不過,您必須提供 EXECUTION_ID 或 SUSPENSION_ID。如果沒有任何 ID 值,可以改用 -。在這個 API 中,REGION、PROJECT 和 LOCATION 是必填欄位。
撤銷暫停後,整合執行作業會恢復,並執行「暫停」工作後的下游工作。
以下範例說明如何使用 suspensions API 撤銷停權。
範例 1:僅使用停權 ID 撤銷停權
下列 curl 指令說明如何在只有停權 ID 的情況下撤銷停權:
curl -H "Authorization: Bearer $TOKEN" \
-H "Content-type: application/json" \
-H X-GFE-SSL: yes \
-X POST \
-d '{"suspension_result":"Approved"}' \
https://us-east1-integrations.googleapis.com/v1/projects/demo-project/locations/us-east1/integrations/-/executions/-/suspensions/c6a13a79-a918-41e2-82b9-32b5a010755a:lift
在這個範例中,Suspension result 變數設為 Approved,停權 ID 為 c6a13a79-a918-41e2-82b9-32b5a010755a。
範例 2:僅使用執行 ID 撤銷暫停
下列 curl 指令說明如何在只有執行 ID 的情況下撤銷暫停:
curl -H "Authorization: Bearer $TOKEN" \
-H "Content-type: application/json" \
-H X-GFE-SSL: yes \
-X POST \
-d '{"suspension_result":"true"}' \
https://us-east1-integrations.googleapis.com/v1/projects/demo-project/locations/us-east1/integrations/-/executions/76a391e7-c801-45d7-8046-eab20d167ec5/suspensions/-:lift
在這個範例中,執行 ID 76a391e7-c801-45d7-8046-eab20d167ec5 的 Suspension result 變數設為 true。
範例 3:使用執行 ID 和停權 ID 撤銷停權
下列 curl 指令說明如何在同時擁有執行 ID 和暫停 ID 時撤銷暫停:
curl -H "Authorization: Bearer $TOKEN" \
-H "Content-type: application/json" \
-H X-GFE-SSL: yes \
-X POST \
-d '{"suspension_result":"{processname: "Release", owner: "John", status: "approved"};"}' \
https://us-east1-integrations.googleapis.com/v1/projects/demo-project/locations/us-east1/integrations/-/executions/9b721baa-0a23-4576-b2b6-d251d163ea6f/suspensions/f01815bf-ed18-4e01-9d41-cc2ce7861e95:lift
在這個範例中,Suspension result 變數設為 {processname: "Release", owner: "John", status: "approved"};,暫停 ID 為 f01815bf-ed18-4e01-9d41-cc2ce7861e95。
錯誤處理策略
工作錯誤處理策略會指定工作因暫時性錯誤而失敗時,應採取的動作。如要瞭解如何使用錯誤處理策略,以及各種錯誤處理策略,請參閱「錯誤處理策略」。
配額與限制
如要瞭解配額和限制,請參閱「配額與限制」。