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 Anda untuk memberi Anda peran IAM pada tugas Cloud Run Anda:

  • Cloud Scheduler Admin (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 Google Cloud konsol.

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

Buat tugas Cloud Run jika Anda belum membuat satu pun.

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 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://run.googleapis.com/v2/projects/PROJECT-ID/locations/CLOUD_RUN_REGION/jobs/JOB-NAME:run" \
      --http-method POST \
      --oauth-service-account-email PROJECT-NUMBER-compute@developer.gserviceaccount.com

    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. Contoh, europe-west1.
    • SCHEDULE dengan frekuensi yang diperlukan, misalnya 0 12 * * *.
    • PROJECT-ID dengan ID project Anda.
    • PROJECT-NUMBER dengan nomor project Anda.
    • JOB-NAME dengan tugas Cloud Run Anda.

Terraform

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

Tambahkan kode berikut ke resource google_cloud_run_v2_job di konfigurasi Terraform Anda:
resource "google_cloud_scheduler_job" "job" {
  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://run.googleapis.com/v2/projects/${data.google_project.project.project_id}/locations/${google_cloud_run_v2_job.default.location}/jobs/${google_cloud_run_v2_job.default.name}:run"
    body        = base64encode("{}")

    headers = {
      "Content-Type" = "application/json"
    }

    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]
}

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

Menjadwalkan tugas Anda di dalam perimeter Kontrol Layanan VPC

Jika Google Cloud project Anda berada di dalam perimeter Kontrol Layanan VPC di jaringan Virtual Private Cloud, integrasi Cloud Scheduler dengan Kontrol Layanan VPC mendukung tugas Cloud Run sebagai target menggunakan format URI berikut:

https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB_NAME:run

Ganti kode berikut:

  • PROJECT_ID: Project ID Google Cloud
  • REGION: Region tugas Google Cloud
  • JOB_NAME: Nama tugas Cloud Run

Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi Kontrol Layanan VPC untuk Cloud Run, lihat Menggunakan Kontrol Layanan VPC (VPC SC). Untuk mengetahui informasi selengkapnya tentang cara menggunakan Cloud Scheduler dengan Kontrol Layanan VPC, lihat Mengamankan tugas cron dengan Kontrol Layanan VPC.

Langkah berikutnya

Setelah menggunakan fitur ini, Anda dapat melakukan hal berikut: