管理長時間執行的作業

本頁面說明如何在 Certificate Manager 中查看及管理長時間執行的作業。

在 Certificate Manager 中,如果建立、更新或刪除資源等變更要求未立即失敗,API 就會傳回長時間執行的作業 (LRO)。這些作業會追蹤需要較長時間完成的處理工作狀態。根據預設,除非您指定 --async 旗標,否則 gcloud 異動指令會等待作業完成。

您可以使用 projects.locations.operations 集合檢查作業狀態。

所需權限

如要管理目標專案中長時間執行的作業,您必須具備與要執行的工作相對應的權限:

  • certificatemanager.operations.get:擷取特定作業的詳細資料。
  • certificatemanager.operations.list:列出指定位置的所有作業。
  • certificatemanager.operations.delete:刪除已完成的作業資源 (僅限 API)。

如要進一步瞭解角色和權限,請參閱「角色和權限」。

取得長時間執行作業的詳細資料

當您發出呼叫來啟動作業 (例如建立憑證) 時,回應會包含作業名稱,格式如下:projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID。

如要確認作業是否完成,請要求提供目標作業的詳細資料。如果回應包含 "done": false 或不含 "done" 欄位,代表作業仍在進行中。再次檢查狀態,直到回應顯示 "done": true。

gcloud

如要說明長時間執行的作業,請使用 certificate-manager operations describe 指令:

gcloud certificate-manager operations describe OPERATION_ID \
    --location="LOCATION"

更改下列內容:

  • OPERATION_ID:作業 ID。
  • LOCATION:目標 Google Cloud 位置。預設位置為 global。

API

如要取得長時間執行的作業的詳細資料,請向 projects.locations.operations.get 方法傳送 GET 要求:

GET https://certificatemanager.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID

更改下列內容:

  • PROJECT_ID: Google Cloud 專案 ID。
  • LOCATION:目標 Google Cloud 位置。預設位置為 global。
  • OPERATION_ID:作業 ID。

列出長時間執行的作業

您可以列出作業,找出作業 ID 並監控專案中的有效修改。

gcloud

如要列出特定位置中的作業,請使用 certificate-manager operations list 指令:

gcloud certificate-manager operations list \
    --location="LOCATION"

更改下列內容:

  • LOCATION:目標 Google Cloud 位置。預設位置為 global。

API

如要列出特定位置的作業,請向 projects.locations.operations.list 方法發出 GET 要求:

GET https://certificatemanager.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations

更改下列內容:

  • PROJECT_ID: Google Cloud 專案 ID。
  • LOCATION:目標 Google Cloud 位置。預設位置為 global。

刪除已完成的長時間執行作業

如果不再需要結果,可以刪除已完成的作業資源。刪除已完成的操作只會移除操作記錄,不會取消或復原操作所做的變更。

您無法使用 gcloud 指令刪除作業。請改用 REST API。

API

如要刪除已完成的作業,請向 projects.locations.operations.delete 方法傳送 DELETE 要求:

DELETE https://certificatemanager.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID

更改下列內容:

  • PROJECT_ID: Google Cloud 專案 ID。
  • LOCATION:目標 Google Cloud 位置。預設位置為 global。
  • OPERATION_ID:作業 ID。

資料保留政策

Certificate Manager 會根據下列規則 (依優先順序),自動保留及刪除已完成的 LRO:

  1. 不到 1 小時前:如果作業在不到 1 小時前完成,Certificate Manager 會保留該作業。
  2. 超過 1 週:如果作業在 1 週前完成,Certificate Manager 會刪除該作業。
  3. 上限:如果作業在 1 小時到 1 週前完成,Certificate Manager 會在每個專案中保留最多 5,000 項最近完成的作業,並刪除較早完成的作業。

以下舉例說明這些規則的套用方式:

  • 如果專案有 10,000 項已完成的作業,且這些作業都是在 1 小時內完成,Certificate Manager 會保留所有 10,000 項作業。
  • 如果專案有 1,000 項已完成作業,且這些作業都超過 1 週,Certificate Manager 會刪除所有 1,000 項作業。
  • 如果專案有 10,000 項已完成作業,且作業時間都在 1 小時到 1 週之間,Certificate Manager 只會保留最近的 5,000 項作業。