本頁說明如何延後執行工作。延遲執行作業可讓您將非緊急工作延後最多 12 小時。使用這項功能時,系統會在資源使用率較低的時段佈建作業,以換取較低的價格。詳情請參閱定價頁面。
具體情況如下:
- 延遲工作執行作業的佈建時間最多可能為 12 小時,且延遲工作執行作業中所有工作的總執行時間為 12 小時。這些規定加總起來,可確保延遲執行的工作會在 24 小時內完成。
- 因此,延遲工作的任務逾時限制為 12 小時。
- 如果延遲執行的工作達到執行時間上限,系統就會取消執行作業。
一般工作與延遲工作
每項 Cloud Run 工作都會建立為一般工作或延遲工作。
無論工作建立方式為何,您都可以執行其他類型的工作。 詳情請參閱:
定價
如要進一步瞭解 Cloud Run 延遲工作的定價,請參閱「Cloud Run 定價」一文。
必要的角色
如要取得建立 Cloud Run 作業所需的權限,請要求管理員授予您下列 IAM 角色:
- Cloud Run 開發人員 (
roles/run.developer) 在 Cloud Run 工作上 - 服務身分上的服務帳戶使用者 (
roles/iam.serviceAccountUser) - Artifact Registry 讀取者 (
roles/artifactregistry.reader) 在作業的容器映像檔 Artifact Registry 存放區中
如需與 Cloud Run 相關聯的 IAM 角色和權限清單,請參閱「Cloud Run IAM 角色」和「Cloud Run IAM 權限」。如果 Cloud Run 作業與Google Cloud API (例如 Cloud 用戶端程式庫) 介接,請參閱服務身分設定指南。如要進一步瞭解如何授予角色,請參閱「部署權限」和「管理存取權」。
建立延遲工作
根據預設,當您建立及執行新工作時,系統會盡快開始執行。
使用延遲工作功能,您可以建立內建延遲執行的工作:
控制台
前往 Google Cloud 控制台的 Cloud Run 頁面:
從 Cloud Run 導覽選單中選取「工作」,然後按一下「部署容器」,顯示「建立工作」表單。
填寫「建立工作」表單中的欄位,如「建立工作」一文所述。
選取「延後執行」,最多可延後 12 小時。
gcloud
使用 --delay-execution 旗標建立工作:
gcloud beta run jobs create JOB_NAME \ --image IMAGE_URL \ --delay-execution \ --region=REGION
如果您將工作建立為延遲工作,則無須加入 --delay-execution 旗標即可執行:
gcloud beta run jobs execute JOB_NAME \ --region=REGION
YAML
將 job.yaml 的 delayExecution 屬性設為 true,藉此更新 :
apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB_NAME spec: delayExecution: "true"
將一般工作做為延遲工作執行
如要將一般工作做為延遲工作執行,請按照下列步驟操作:
控制台
前往 Google Cloud 控制台的 Cloud Run 頁面:
按一下要編輯的工作名稱。
按一下「查看及編輯工作設定」。
選取「延遲執行」。
按一下「Update」。
gcloud
執行下列指令:
gcloud beta run jobs execute JOB_NAME \ --async \ --delay-execution \ --region=REGION
YAML
將 delayExecution 屬性設為 true,更新 job.yaml:
apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB_NAME spec: delayExecution: "true"
將延遲工作視為一般工作執行
停用延遲執行後,工作會更新為一般工作。這表示您下次執行這項工作時,系統會盡快執行。
如要停用延遲執行功能,請按照下列步驟操作:
控制台
前往 Google Cloud 控制台的 Cloud Run 頁面:
按一下要編輯的工作名稱。
按一下「查看及編輯工作設定」。
取消選取「延後執行作業」。
按一下「Update」。
gcloud
使用 --no-delay-execution 旗標。您也可以搭配 update 指令使用此旗標。如果您對一般工作使用這個旗標,系統會更新工作,停用延遲執行。
gcloud beta run jobs update JOB_NAME \ --image IMAGE_URL \ --no-delay-execution \ --region=REGION
YAML
將 delayExecution 屬性設為 false,更新 job.yaml:
apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB_NAME spec: delayExecution: "false"
在建立或更新時執行延遲工作
使用 --execute-now 旗標建立延遲工作時,系統會在建立工作時觸發執行作業,並在接下來的 12 小時內執行工作。
如要在建立或更新時執行延遲工作,請按照下列步驟操作:
控制台
前往 Google Cloud 控制台的 Cloud Run「Jobs」頁面:
如果您有現有的延遲工作,請按一下該工作,顯示工作詳細資料頁面,然後選取「查看及編輯工作設定」。如要建立新的延遲工作,請選取「Deploy container」(部署容器)。
前往頁面底部,然後勾選「Execute job immediately」(立即執行工作) 方塊,再建立或更新工作。
gcloud
建立或更新延遲工作時,請指定 --execute-now 旗標:
建立工作:
gcloud run jobs create JOB_NAME \ --image IMAGE_URL \ --delay-execution \ --execute-now \ --region=REGION
更新職缺:
gcloud run jobs update JOB_NAME \ --execute-now \ --region=REGION