本頁面說明如何執行 Cloud Run 作業。執行工作會建立工作執行作業,其中所有工作都必須順利執行完畢,工作執行作業才算成功。工作執行作業會將記錄寫入 Cloud Logging,並將監控資料傳送至 Cloud Monitoring。
除了這些記錄功能之外,您還可以使用執行詳細資料窗格查看工作最近 1,000 次執行作業的詳細資料,以及過去七天內發生的任何執行作業。舊執行詳細資料已移除,因此不會再顯示在執行詳細資料窗格中。不過,您仍可在 Cloud Logging 和 Cloud 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 執行工作。
控制台
如要執行工作,請按照下列步驟操作:
找出你感興趣的工作。
按一下工作,即可顯示工作詳細資料頁面。
按一下 [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
覆寫特定執行作業的設定
您可以在執行工作時設定這些參數,藉此覆寫為工作設定的引數、環境變數、工作數量和工作逾時時間。您指定的參數只會影響這次執行作業,不會影響後續作業,因為基礎工作定義不會變更。
常見用途包括:
- 您透過程式設計執行工作,並想要覆寫引數和/或環境變數,例如告訴工作這次執行作業的輸入資料位置。
- 您有一個工作,其中每項工作都只會處理一筆輸入資料。您想要根據要處理的輸入內容數量,覆寫任務數量。
- 工作執行時間會因執行次數而異。您想根據工作的預期執行時間,覆寫工作逾時時間。
如要覆寫執行作業的工作設定,請按照下列步驟操作:
控制台
找出你感興趣的工作。
按一下工作,即可顯示工作詳細資料頁面。
按一下「編輯」按鈕前方的展開箭頭,然後點選「執行時覆寫」,即可顯示「執行時覆寫」工作表單。
視需要變更這次執行作業的引數、環境變數、工作數量和/或工作逾時設定,然後按一下「執行」。
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
取代:
- ACCESS_TOKEN 使用具備執行工作覆寫作業的 IAM 權限帳戶的有效存取權杖。舉例來說,如果您已登入 gcloud,可以使用
gcloud auth print-access-token
擷取存取權權杖。您可以在 Cloud Run 容器執行個體中,使用容器執行個體中繼資料伺服器擷取存取權杖。 - 將 JOB_NAME 替換為工作名稱。
- ARGS 搭配工作引數。
- KEY 和 VALUE 與環境變數配對。
- TASKS 與工作數量。
- TIMEOUT 與工作逾時。
- 將 REGION 替換為工作所在的 Google Cloud 區域。
- PROJECT-ID 與 Google Cloud 專案 ID。
取消工作執行作業
如要停止目前執行中的 Cloud Run 工作,請使用取消功能。取消工作執行作業會停止目前的工作執行作業。已取消的執行作業會顯示「已取消」狀態。您仍可查看執行作業,包括設定資料、記錄和監控資料。
取消工作執行作業不會撤銷費用,因為在工作執行期間,您會因使用任何 Cloud Run 工作而產生費用。
如要取消執行作業,請按照下列步驟操作:
控制台
按一下工作,即可開啟工作詳細資料窗格。
選取要取消的工作執行作業。
在「動作」選單下方,按一下「>」圖示,然後點選「取消」。
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。
刪除工作執行作業
即使工作執行作業正在執行,您還是可以刪除該作業。如果您刪除執行作業,系統就會停止執行作業。詳情請參閱「刪除工作執行作業」。
後續步驟
執行工作後,您可以執行下列操作: