停止或終止執行中工作

呼叫工作區工作 (例如 planapplydestroy) 之後,您可能想要停止執行中工作,或停止供應資源。 當停止或取消長時間執行的工作時,建議您先檢查工作日誌,以判斷工作是否實際停留且需要停止,或是否正在執行長時間執行的作業,這些作業需要一些時間來完成。

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 按鈕,只要取消即可。 取消會從擱置佇列中移除工作。 如果同時啟動 planapplydestroy 執行,則會變成 Terraform 的停止 (岔斷) 信號。

使用使用者介面停止執行中工作

您可以遵循下列步驟,使用主控台來停止執行中工作區工作。

  1. 工作區儀表板中,選取與執行中工作相關的工作區。

    您可以在計劃、套用或毀損執行期間停止或取消執行中工作。

  2. 按一下 工作 標籤,以檢視 停止強制停止終止取消 按鈕。

停止工作選項
按鈕 說明
停止 從擱置佇列中移除工作 (如果工作處於擱置狀態)。 否則,會將岔斷信號傳送至 Terraform 指令。
強制停止 將結束信號傳送至執行中的 Terraform 指令。
終止 終止 Schematics 工作,並將工作標示為 STOPPED 並解除鎖定工作區。 應該小心使用此指令,因為它可能會導致資料流失。
取消 如果工作處於 pending 狀態,則會顯示 Cancel 按鈕,只要取消即可。 取消會從擱置佇列中移除工作。 如果同時啟動 planapplydestroy 執行,則這會變成 Terraform 執行的岔斷信號。
  1. 鍵入選項以確認 文字框中鍵入 <option> 名稱。
  2. 按一下 確認選項 按鈕。

使用 CLI 停止執行中工作

停止正在執行的 IBM Cloud Schematics 工作區工作。

語法

ibmcloud schematics workspace job stop --id WORKSPACE_ID --job-id JOB_ID [--stop] [--force-stop] [--terminate] [--no-prompt]

指令選項

Schematics 工作停止旗標
旗標 必要/選用 說明
--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 工作區中正在執行的任務。

停止執行中工作的語法

  1. 設定 REST 用戶端 以執行 Schematics API。

  2. 使用語法及範例來停止執行中工作。

    語法

    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>"
    
  3. 使用範例來 force-stop 執行中工作。

    範例

    curl -X DELETE https://schematics.cloud.ibm.com/v1/workspaces/<wks_id>/actions/{job_id}?signal=force-stop -H "Authorization: <iam_token>"
    
  4. 使用範例來 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 活動的歷程,例如下載 templateplanapply,以及查看工作的日誌。 當您執行範本時,即會建立工作。 您也可以查看 plan 中的資源計數,或 apply 處於 已新增已修改已毀損 狀態的工作。 如需工作佇列處理程序的相關資訊,請參閱 Schematics 工作佇列的執行處理程序

在工作日誌中,您可以看到如下訊息:

  • 已觸發 活動。 等待日誌。 這表示工作處於擱置狀態且尚未處理。

  • 您的工作已提交且在佇列中,位置 x (共 y 個)。 這裡 x 是工作在擱置佇列中的位置,y 是擱置工作總數。 Schematics 後端中的可用資源平均配送至擱置中工作。 如果您正在執行大量工作,則可以檢視位置隨著總計的增加而增加。