停止或終止執行中工作
呼叫工作區工作 (例如 plan、apply 或 destroy) 之後,您可能想要停止執行中工作,或停止供應資源。 當停止或取消長時間執行的工作時,建議您先檢查工作日誌,以判斷工作是否實際停留且需要停止,或是否正在執行長時間執行的作業,這些作業需要一些時間來完成。
Schematics 提供多種選項,讓使用者能根據停止操作的緊急程度與影響程度,依序對正在執行的工作執行「(gracefully) stop」、「force-stop」或「terminate」等操作。
停止工作類型
此表格提供停止工作類型的清單:
| 類型 | 說明 |
|---|---|
stop |
將岔斷信號傳送至執行中的 Terraform 指令。 這會執行與獨立式執行 Terraform 時相同的功能,其中使用 cntl-C 傳送 interrupt,或與 Terraform 類似。 可以多次傳送岔斷信號,以通知 Terraform 停止。 在任何執行中資源作業完成並清除之後,Terraform 會嘗試停止執行中指令 (plan、apply、delete)。Schematics 會等待指令完成。 在停止或完成指令之後,會收集並儲存狀態及日誌檔。 |
force-stop |
將結束信號傳送至執行中的 Terraform 指令。 如果您想要在看到 stop 指令 (岔斷) 未停止指令之後結束 Terraform 指令,請使用此選項。 force-stop 可以根據需要傳送多次,直到指令完成且工作停止為止。 如果它能夠回應 kill 信號,則 Terraform 會立即停止執行中指令及資源作業並清除。 在指令停止或完成之後,會收集並儲存狀態檔和日誌檔。 |
terminate |
如果先前的作業失敗,終止會立即停止 Schematics 工作。 工作已標示為 STOPPED,且工作區已解除鎖定。 會保留先前儲存的日誌及 statefile 的任何副本。 當工作終止時,會結束工作,而不會在結束時個別收集任何檔案。 此選項可能會導致日誌檔及最新 statefile 更新項目的資料遺失,應該小心使用。 |
在工作停止之前,您可以傳送任何數目的停止信號。 一般而言,您不應該傳送超過三個信號。 如果 Terraform 未回應 stop 要求 (岔斷信號),您一律可以使用 force-stop。 如果 force-stop 由於工作中的某個問題而未回應,則您一律可以 terminate 封鎖工作。
取消工作
如果工作處於 pending 狀態,任何類型的停止要求都會導致工作取消。 如果工作處於 pending 狀態,則會顯示 Cancel 按鈕,只要取消即可。 取消會從擱置佇列中移除工作。 如果同時啟動 plan、apply 或 destroy 執行,則會變成 Terraform 的停止 (岔斷) 信號。
使用使用者介面停止執行中工作
您可以遵循下列步驟,使用主控台來停止執行中工作區工作。
-
從 工作區儀表板中,選取與執行中工作相關的工作區。
您可以在計劃、套用或毀損執行期間停止或取消執行中工作。
-
按一下 工作 標籤,以檢視 停止、強制停止、終止及 取消 按鈕。
| 按鈕 | 說明 |
|---|---|
| 停止 | 從擱置佇列中移除工作 (如果工作處於擱置狀態)。 否則,會將岔斷信號傳送至 Terraform 指令。 |
| 強制停止 | 將結束信號傳送至執行中的 Terraform 指令。 |
| 終止 | 終止 Schematics 工作,並將工作標示為 STOPPED 並解除鎖定工作區。 應該小心使用此指令,因為它可能會導致資料流失。 |
| 取消 | 如果工作處於 pending 狀態,則會顯示 Cancel 按鈕,只要取消即可。 取消會從擱置佇列中移除工作。 如果同時啟動 plan、apply 或 destroy 執行,則這會變成 Terraform 執行的岔斷信號。 |
- 在 鍵入選項以確認 文字框中鍵入
<option>名稱。 - 按一下 確認選項 按鈕。
使用 CLI 停止執行中工作
停止正在執行的 IBM Cloud Schematics 工作區工作。
語法
ibmcloud schematics workspace job stop --id WORKSPACE_ID --job-id JOB_ID [--stop] [--force-stop] [--terminate] [--no-prompt]
指令選項
| 旗標 | 必要/選用 | 說明 |
|---|---|---|
--id 或 -i |
必要 | 要更新的工作區 ID。 |
--job-id 或 --jid |
必要 | 該工作的工作編號。 |
--stop |
選用 | 從擱置佇列中移除工作 (如果工作處於擱置狀態)。 否則,會將岔斷信號傳送至 Terraform 指令。 |
--force-stop 或 --fs |
選用 | 向引擎中的 Terraform 執行程序發送終止訊號,試圖立即停止該執行程序。 |
--terminate 或 -t |
選用 | 突然結束引擎,將工作標示為已停止,並解除鎖定您的工作區。 未使用此旗標儲存資料。 |
--no-prompt |
選用 | 設定此旗標以在沒有互動模式的情況下執行指令。 |
範例
ibmcloud schematics workspace job stop --id <WORKSPACE_ID> --stop --job-id <JOB_ID>
ibmcloud schematics workspace job stop --id <WORKSPACE_ID> --force-stop --job-id <JOB_ID>
ibmcloud schematics workspace job stop --id <WORKSPACE_ID> --terminate --job-id <JOB_ID>
透過 API 停止執行中工作
您可以使用以下 cURL 指令,來停止 IBM Cloud Schematics 工作區中正在執行的任務。
停止執行中工作的語法
-
設定 REST 用戶端 以執行 Schematics API。
-
使用語法及範例來停止執行中工作。
語法
curl -X DELETE https://schematics.cloud.ibm.com/v1/workspaces/<wks_id>/actions/{job_id}?signal=interrupt -H "Authorization: <iam_token>"範例
curl -X DELETE https://schematics.cloud.ibm.com/v2/jobs/{job_id}?signal=interrupt -H "Authorization: <iam_token>" -
使用範例來
force-stop執行中工作。範例
curl -X DELETE https://schematics.cloud.ibm.com/v1/workspaces/<wks_id>/actions/{job_id}?signal=force-stop -H "Authorization: <iam_token>" -
使用範例來
terminate執行中工作。範例
curl -X DELETE https://schematics.cloud.ibm.com/v1/workspaces/<wks_id>/actions/{job_id}?signal=terminate -H "Authorization: <iam_token>"如需停止執行中工作的相關資訊,請參閱 停止並刪除執行中工作 API。
檢閱 Schematics 工作詳細資料
使用主控台中的 Schematics 工作頁面來尋找所有 Schematics 活動的歷程,例如下載 template、plan、apply,以及查看工作的日誌。 當您執行範本時,即會建立工作。 您也可以查看 plan 中的資源計數,或 apply 處於 已新增、已修改或 已毀損 狀態的工作。 如需工作佇列處理程序的相關資訊,請參閱 Schematics 工作佇列的執行處理程序。
在工作日誌中,您可以看到如下訊息:
-
已觸發 活動。 等待日誌。 這表示工作處於擱置狀態且尚未處理。
-
您的工作已提交且在佇列中,位置 x (共 y 個)。 這裡
x是工作在擱置佇列中的位置,y是擱置工作總數。 Schematics 後端中的可用資源平均配送至擱置中工作。 如果您正在執行大量工作,則可以檢視位置隨著總計的增加而增加。