根據預設,每項工作最多執行 10 分鐘:你可以將時間縮短,或延長至最多 168 小時 (7 天)。如果工作使用 GPU,逾時時間上限為 1 小時。
您可以按照本頁說明設定工作逾時時間。工作執行作業沒有明確的逾時時間:所有工作完成後,工作執行作業就會完成。
單位會指定時間長度。您可以指定逾時時間長度,以秒、分鐘或小時為單位,並以整數值表示。舉例來說,如要將逾時時間長度設為 10 分鐘 5 秒,請將值指定為 605 秒。
如果作業已啟用重試,逾時設定會套用至每個工作嘗試。如果工作嘗試未在這段時間內完成,系統就會停止。工作執行時間越長,越可能遇到導致工作失敗的問題,例如下游依附元件失敗、記憶體不足錯誤或基礎架構問題。建議您為所有工作啟用重試功能,尤其是長時間執行的工作。
維護事件
工作會定期進行維護事件。在維護作業期間,任何進行中的工作都會從目前的機器遷移至其他機器。遷移工作時,處理作業會暫停一小段時間。
遷移程序會保留工作狀態,但有一項明顯例外:維護事件期間,傳出虛擬私有雲網路連線會中斷。建議您使用可處理偶爾連線重設的用戶端程式庫。
每當工作開始和完成遷移時,Cloud Run 都會列印記錄訊息。
此外,如要以特定方式監控或處理維護事件,可以擷取 SIGTSTP 信號,該信號會在工作遷移前 10 秒傳送。遷移後,工作會在重新啟動後立即收到 SIGCONT 信號。
下列 Go 範例函式會擷取這些信號,並輸出記錄項目:
func testSignals() { sigs := make(chan os.Signal, 1) signal.Notify(sigs, syscall.SIGTSTP, syscall.SIGCONT) go func() { for { sig := <-sigs log.Printf("Got Signal: %v", sig) } }() }
必要的角色
如要取得設定 Cloud Run 作業所需的權限,請要求管理員授予您下列 IAM 角色:
- Cloud Run 開發人員 (
roles/run.developer) 在 Cloud Run 工作上 - 服務身分上的服務帳戶使用者 (
roles/iam.serviceAccountUser)
如需與 Cloud Run 相關聯的 IAM 角色和權限清單,請參閱「Cloud Run IAM 角色」和「Cloud Run IAM 權限」。如果 Cloud Run 作業會與Google Cloud API (例如 Cloud 用戶端程式庫) 介接,請參閱服務身分設定指南。 如要進一步瞭解如何授予角色,請參閱「部署權限」和「管理存取權」。
設定工作逾時時間
您可以使用Google Cloud 控制台、gcloud CLI、YAML 或 Terraform,為 Cloud Run 工作設定工作逾時:
控制台
前往 Google Cloud 控制台的 Cloud Run 頁面:
從 Cloud Run 導覽選單中選取「作業」:
如要建立新工作,請按一下「Deploy container」(部署容器),填寫初始工作設定頁面。
如要設定現有工作,請選取該工作,然後按一下「View and edit job configuration」(查看及編輯工作設定)。
按一下「容器、連線、安全性」,展開工作屬性頁面。
在「工作逾時」欄位中,指定目前工作中的工作逾時時間長度上限,然後選取「時間單位」。您只能以秒、分鐘或小時為單位,將逾時時間指定為整數值。舉例來說,如要將時間長度設為 10 分鐘 5 秒,請在「工作逾時」欄位中指定
605,並將「時間單位」選為「秒」。按一下「建立」或「更新」。
gcloud
如要在建立新工作時設定工作逾時,請執行下列指令:
gcloud run jobs create JOB --image IMAGE_URL --task-timeout TIMEOUT
更改下列內容:
JOB:Cloud Run 工作名稱。IMAGE_URL:容器映像檔的參照,例如us-docker.pkg.dev/cloudrun/container/job:latest。TIMEOUT:工作任務的最長時間,指定時間長度和單位,例如10m5s是十分五秒。
如要更新現有工作的任務逾時,請執行下列指令:
gcloud run jobs update JOB --task-timeout TIMEOUT
YAML
如要建立新工作,請略過這個步驟。 如要更新現有工作,請下載其 YAML 設定:
gcloud run jobs describe JOB --format export > job.yaml
更新
timeoutSeconds:屬性:apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB spec: template: spec: template: spec: containers: - image: IMAGE_URL timeoutSeconds: TIMEOUT
更改下列內容:
JOB:Cloud Run 工作名稱。IMAGE_URL:容器映像檔的參照,例如us-docker.pkg.dev/cloudrun/container/job:latest。TIMEOUT:工作任務的時長上限,指定時間量和單位。您只能以整數值指定時間,單位為秒、分鐘或小時。舉例來說,如要將時間長度設為 10 分鐘 5 秒,請指定605。
您也可以指定更多設定詳細資料,例如環境變數或記憶體限制。
使用下列指令建立或更新作業:
gcloud run jobs replace job.yaml
gcloud run jobs replace指令預設會使用job.yaml檔案 (如有)。
Terraform
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。
在 Terraform 設定的google_cloud_run_v2_job 資源中新增下列項目:查看工作逾時設定
如要查看 Cloud Run 作業目前的任務逾時設定,請使用 Google Cloud 控制台或 Google Cloud CLI:
控制台
前往 Google Cloud 控制台的 Cloud Run jobs 頁面:
按一下工作,開啟「工作詳細資料」頁面。
按一下「查看及編輯工作設定」。
在設定詳細資料中找出工作逾時設定。
gcloud
執行下列指令:
gcloud run jobs describe JOB
在傳回的設定中找出工作逾時設定。