執行工作

本頁面說明如何執行 Cloud Run 作業。執行工作會建立工作執行作業,其中所有工作都必須順利執行完畢,工作執行作業才算成功。工作執行作業會將記錄寫入 Cloud Logging,並將監控資料傳送至 Cloud Monitoring

除了這些記錄功能之外,您還可以使用執行詳細資料窗格查看工作最近 1,000 次執行作業的詳細資料,以及過去七天內發生的任何執行作業。舊執行詳細資料已移除,因此不會再顯示在執行詳細資料窗格中。不過,您仍可在 Cloud LoggingCloud Monitoring 中查看舊執行作業的記錄和監控資料,但須遵守這些產品的保留政策。

必要的角色

如要取得執行本頁所述作業所需的權限,請要求管理員授予您 Cloud Run 工作中下列其中一個 IAM 角色:

  • 如要使用 Google Cloud CLI 執行工作,請在 Cloud Run 工作中使用 Cloud Run 調用器 (roles/run.invoker)
  • 如要使用 Google Cloud 控制台執行工作、覆寫工作設定或取消工作執行作業,請在 Cloud Run 工作中使用 Cloud Run Developer (roles/run.developer)

如需與 Cloud Run 相關聯的 IAM 角色和權限清單,請參閱「Cloud Run IAM 角色」和「Cloud Run IAM 權限」。如果 Cloud Run 工作介面與Google Cloud API 互動 (例如 Cloud 用戶端程式庫),請參閱服務身分設定指南。如要進一步瞭解如何授予角色,請參閱「部署權限」和「管理存取權」。

執行工作

您可以使用 Google Cloud 控制台、Google Cloud CLI、用戶端程式庫或 REST API 執行工作。

控制台

如要執行工作,請按照下列步驟操作:

  1. 前往 Cloud Run 工作頁面

  2. 找出你感興趣的工作。

  3. 按一下工作,即可顯示工作詳細資料頁面。

  4. 按一下 [Execute] (執行)

gcloud

如要執行現有工作,請按照下列步驟操作:

gcloud run jobs execute JOB_NAME

如果您希望指令等待執行作業完成,請使用

gcloud run jobs execute JOB_NAME --wait --region=REGION

取代:

  • JOB_NAME 替換為工作名稱。
  • REGION 改成資源所在的區域。或者,您也可以設定 run/region 屬性。

用戶端程式庫

如要透過程式碼執行現有工作,請按照下列步驟操作:

REST API

如要執行現有工作,請將 POST HTTP 要求傳送至 jobs.run API 方法

例如使用 curl

curl -H "Content-Type: application/json" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -X POST \
  -d '' \
  https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB-NAME:run

取代:

  • ACCESS_TOKEN 使用具備執行工作的 IAM 權限的帳戶,提供有效的存取權杖。舉例來說,如果您已登入 gcloud,可以使用 gcloud auth print-access-token 擷取存取權權杖。您可以在 Cloud Run 容器執行個體中,使用容器執行個體中繼資料伺服器擷取存取權杖。
  • JOB-NAME 替換為工作名稱。
  • REGION 替換為工作所在的 Google Cloud 區域。
  • PROJECT-ID 與 Google Cloud 專案 ID。

建立工作後立即執行工作

如果您使用指令列,可以在建立工作後立即指定工作執行作業:

gcloud run jobs create JOB_NAME --execute-now --region=REGION

覆寫特定執行作業的設定

您可以在執行工作時設定這些參數,藉此覆寫為工作設定的引數、環境變數、工作數量和工作逾時時間。您指定的參數只會影響這次執行作業,不會影響後續作業,因為基礎工作定義不會變更。

常見用途包括:

  • 您透過程式設計執行工作,並想要覆寫引數和/或環境變數,例如告訴工作這次執行作業的輸入資料位置。
  • 您有一個工作,其中每項工作都只會處理一筆輸入資料。您想要根據要處理的輸入內容數量,覆寫任務數量。
  • 工作執行時間會因執行次數而異。您想根據工作的預期執行時間,覆寫工作逾時時間。

如要覆寫執行作業的工作設定,請按照下列步驟操作:

控制台

  1. 前往 Cloud Run 工作頁面

  2. 找出你感興趣的工作。

  3. 按一下工作,即可顯示工作詳細資料頁面。

  4. 按一下「編輯」按鈕前方的展開箭頭,然後點選「執行時覆寫」,即可顯示「執行時覆寫」工作表單。

    圖片

  5. 視需要變更這次執行作業的引數、環境變數、工作數量和/或工作逾時設定,然後按一下「執行」

gcloud

使用以下指令:

gcloud run jobs execute JOB_NAME \
     --args ARGS \
     --update-env-vars KEY=VALUE>,KEY_N=VALUE_N \
     --tasks TASKS \
     --task-timeout TIMEOUT

取代

用戶端程式庫

如要透過程式碼執行現有工作,並覆寫工作設定:

REST API

如要覆寫現有工作的工作設定,請將 POST HTTP 要求傳送至 Cloud Run Admin API jobs 端點

例如使用 curl

curl -H "Content-Type: application/json" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -X POST \
  -d '{"overrides": {"containerOverrides": [{"args": ["ARGS"], "env": [{"name": "KEY", "value": "VALUE"}]}], "taskCount": TASK-COUNT, "timeout": "TIMEOUT" }}' \
  https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB-NAME:run

取代:

取消工作執行作業

如要停止目前執行中的 Cloud Run 工作,請使用取消功能。取消工作執行作業會停止目前的工作執行作業。已取消的執行作業會顯示「已取消」狀態。您仍可查看執行作業,包括設定資料、記錄和監控資料。

取消工作執行作業不會撤銷費用,因為在工作執行期間,您會因使用任何 Cloud Run 工作而產生費用。

如要取消執行作業,請按照下列步驟操作:

控制台

  1. 前往 Cloud Run 工作頁面

  2. 按一下工作,即可開啟工作詳細資料窗格。

  3. 選取要取消的工作執行作業。

  4. 在「動作」選單下方,按一下「>」圖示,然後點選「取消」

gcloud

使用以下指令:

gcloud run jobs executions cancel EXECUTION_NAME

EXECUTION_NAME 替換為執行作業的名稱。

這個指令會要求確認,因此請輸入 y 回應提示。

用戶端程式庫

如要透過程式碼取消工作執行作業,請按照下列步驟操作:

REST API

如要取消工作執行作業,請將 POST HTTP 要求傳送至 Cloud Run Admin API jobs 端點

例如使用 curl

curl -H "Content-Type: application/json" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -X POST \
  -d '' \
  https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB-NAME/executions/EXECUTION-NAME:cancel

取代:

  • ACCESS_TOKEN 使用有效的存取權存證,該存證適用於具備IAM 權限可取消工作執行作業的帳戶。舉例來說,如果您已登入 gcloud,可以使用 gcloud auth print-access-token 擷取存取權權杖。您可以在 Cloud Run 容器執行個體中,使用容器執行個體中繼資料伺服器擷取存取權杖。
  • JOB_NAME 替換為工作名稱。
  • EXECUTION-NAME 改為工作執行作業的名稱。
  • REGION 替換為工作所在的 Google Cloud 區域。
  • PROJECT-ID 與 Google Cloud 專案 ID。

刪除工作執行作業

即使工作執行作業正在執行,您還是可以刪除該作業。如果您刪除執行作業,系統就會停止執行作業。詳情請參閱「刪除工作執行作業」。

後續步驟

執行工作後,您可以執行下列操作: