Menjalankan tugas sesuai jadwal

Halaman ini menjelaskan cara menjalankan tugas Cloud Run sesuai jadwal menggunakan Cloud Scheduler.

Peran yang diperlukan

Untuk mendapatkan izin yang Anda perlukan untuk operasi yang dijelaskan di halaman ini, minta administrator untuk memberi Anda peran IAM pada tugas Cloud Run:

  • Admin Cloud Scheduler (roles/cloudscheduler.admin), atau peran kustom dengan izin cloudscheduler.jobs.create
  • Cloud Run Invoker (roles/run.invoker) untuk menjalankan tugas menggunakan Google Cloud CLI, atau Cloud Run Developer (roles/run.developer) untuk menjalankan tugas menggunakan konsol Google Cloud

Untuk mengetahui daftar peran dan izin IAM yang terkait dengan Cloud Run, lihat peran IAM Cloud Run dan izin IAM Cloud Run. Jika tugas Cloud Run Anda berinteraksi dengan Google Cloud API, seperti Library Klien Cloud, lihat panduan konfigurasi identitas layanan. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat izin deployment dan mengelola akses.

Sebelum memulai

Membuat tugas Cloud Run.

Mengonfigurasi tugas Cloud Run untuk dijalankan sesuai jadwal

Untuk menjalankan tugas Cloud Run sesuai jadwal:

Konsol

  1. Buka job Cloud Run

  2. Klik tugas yang ingin Anda jalankan sesuai jadwal.

  3. Klik tab Trigger.

  4. Klik Add Scheduler Trigger.

  5. Jika belum mengaktifkan Cloud Scheduler API untuk project, Anda akan diminta untuk melakukannya di panel paling kanan: klik Enable API.

  6. Isi formulir tugas Cloud Scheduler

    gambar

  7. Di bagian Tentukan jadwal:

    1. Beri nama pada tugas Cloud Scheduler Anda.

    2. Pilih region untuk tugas Cloud Scheduler Anda. Region tidak perlu sama dengan region yang digunakan untuk tugas Cloud Run.

    3. Tentukan frekuensi untuk menjalankan tugas menggunakan format unix-cron, misalnya 0 12 * * *

    4. Pilih zona waktu.

  8. Klik Lanjutkan.

  9. Di menu dropdown Akun Layanan, pilih akun layanan yang memiliki izin untuk memanggil layanan Cloud Run saat ini.

  10. Klik Buat untuk membuat tugas Cloud Scheduler yang akan menjalankan tugas Cloud Run pada frekuensi yang ditentukan.

Command line

  1. Pastikan Anda sebelumnya telah membuat tugas Cloud Run.

  2. Jalankan perintah:

    gcloud scheduler jobs create http SCHEDULER_JOB_NAME \
      --location SCHEDULER_REGION \
      --schedule="SCHEDULE" \
      --uri="https://CLOUD_RUN_REGION-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/PROJECT-ID/jobs/JOB-NAME:run" \
      --http-method POST \
      --oauth-service-account-email PROJECT-NUMBER-compute@

    Ganti

    • SCHEDULER_JOB_NAME dengan nama yang ingin Anda berikan tugas terjadwal.
    • SCHEDULER_REGION dengan region yang didukung oleh Cloud Scheduler, misalnya, europe-west2.
    • CLOUD_RUN_REGION dengan region untuk tugas Cloud Run Anda. Untuk pratinjau, gunakan europe-west9.
    • SCHEDULE dengan frekuensi yang diinginkan, misalnya 0 12 * * *
    • PROJECT-ID dengan project ID Anda.
    • PROJECT-NUMBER dengan nomor project Anda.
    • JOB-NAME dengan tugas Cloud Run Anda.

Terraform

Untuk membuat tugas Cloud Scheduler yang menjalankan tugas Cloud Run:

resource "google_cloud_scheduler_job" "job" {
  provider         = google-beta
  name             = "schedule-job"
  description      = "test http job"
  schedule         = "*/8 * * * *"
  attempt_deadline = "320s"
  region           = "us-central1"
  project          = data.google_project.project.project_id

  retry_config {
    retry_count = 3
  }

  http_target {
    http_method = "POST"
    uri         = "https://${google_cloud_run_v2_job.default.location}-run.googleapis.com/apis/run.googleapis.com/v1/namespaces/${data.google_project.project.number}/jobs/${google_cloud_run_v2_job.default.name}:run"

    oauth_token {
      service_account_email = google_service_account.cloud_run_invoker_sa.email
    }
  }

  depends_on = [resource.google_project_service.cloudscheduler_api, resource.google_cloud_run_v2_job.default, resource.google_cloud_run_v2_job_iam_binding.binding]
}

Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.

Cloud Scheduler akan menjalankan tugas Cloud Run pada frekuensi yang ditentukan.

Langkah berikutnya

Setelah menggunakan fitur ini, Anda dapat melakukan hal berikut: