本頁面說明如何使用 Cloud Scheduler 依排程執行 Cloud Run 工作。
必要的角色
如要取得本頁面所述作業所需的權限,請要求管理員授予您 Cloud Run 作業的 IAM 角色:
- Cloud Scheduler 管理員 (
roles/cloudscheduler.admin),或具有cloudscheduler.jobs.create權限的自訂角色。 - Cloud Run Invoker (
roles/run.invoker):使用 Google Cloud CLI 執行工作。Cloud Run Developer (roles/run.developer):使用 Google Cloud 控制台執行工作。
如要查看與 Cloud Run 相關聯的 IAM 角色和權限清單,請參閱「Cloud Run IAM 角色」和「Cloud Run IAM 權限」。如果 Cloud Run 作業會與Google Cloud API (例如 Cloud 用戶端程式庫) 介接,請參閱服務身分設定指南。 如要進一步瞭解如何授予角色,請參閱「部署權限」和「管理存取權」。
事前準備
- 如果尚未建立 Cloud Run 工作,請建立一個。
為專案啟用 Cloud Scheduler API:
gcloud services enable cloudscheduler.googleapis.com
設定 Cloud Run 工作,依排程執行
您可以使用Google Cloud 控制台、gcloud CLI 或 Terraform,設定 Cloud Run 工作依排程執行:
控制台
前往 Google Cloud 控制台的 Cloud Run jobs 頁面:
按一下要依排程執行的工作。
按一下「觸發條件」分頁標籤。
按一下「新增排程器觸發條件」。
在 Cloud Scheduler 工作表單中,按照下列步驟操作:
在「Name」部分,輸入 Cloud Scheduler 工作的名稱。
在「Region」(區域),選取 Cloud Scheduler 工作的區域。 不必與 Cloud Run 作業使用的區域相符。
使用 unix-cron 格式指定工作執行頻率,例如
0 12 * * *選取時區。
按一下「繼續」。
在「設定執行作業」部分,選取有權叫用目前 Cloud Run 作業的服務帳戶。
按一下「建立」,建立 Cloud Scheduler 工作,以指定頻率執行 Cloud Run 工作。
gcloud
執行下列指令:
gcloud scheduler jobs create http SCHEDULER_JOB_NAME \
--location SCHEDULER_REGION \
--schedule="SCHEDULE" \
--uri="https://run.googleapis.com/v2/projects/PROJECT_ID/locations/CLOUD_RUN_REGION/jobs/JOB:run" \
--http-method POST \
--oauth-service-account-email PROJECT_NUMBER-compute@developer.gserviceaccount.com
更改下列內容:
SCHEDULER_JOB_NAME:排程器工作的名稱。SCHEDULER_REGION:Cloud Scheduler 支援的區域,例如europe-west2。SCHEDULE:必要頻率,例如0 12 * * *。PROJECT_ID:您的專案 ID。CLOUD_RUN_REGION:Cloud Run 作業的區域。例如:europe-west1。JOB:Cloud Run 工作名稱。PROJECT_NUMBER:您的專案編號。
Terraform
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。
在 Terraform 設定的google_cloud_run_v2_job 資源中新增下列項目:Cloud Scheduler 會按照指定頻率執行 Cloud Run 工作。
在 VPC Service Controls perimeter 內排定作業時間
如果您的 Google Cloud 專案位於虛擬私有雲網路的 VPC Service Controls perimeter 內,Cloud Scheduler 與 VPC Service Controls 的整合功能支援以 Cloud Run 作業做為目標,並使用下列 URI 格式:
https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB:run
更改下列內容:
PROJECT_ID: Google Cloud 專案 ID。REGION:作業的 Google Cloud 區域。JOB:Cloud Run 工作名稱。
如要進一步瞭解如何為 Cloud Run 設定 VPC Service Controls,請參閱「使用 VPC Service Controls (VPC SC)」。如要進一步瞭解如何搭配使用 Cloud Scheduler 與 VPC Service Controls,請參閱「使用 VPC Service Controls 保護 Cron 工作」。
後續步驟
使用這項功能後,你可以執行下列操作: