Menjadwalkan alur kerja menggunakan Cloud Scheduler

Halaman ini menunjukkan cara menggunakan Cloud Scheduler untuk menjalankan alur kerja sesuai jadwal tertentu, seperti setiap hari Senin pukul 09.00 atau setiap 15 menit. Anda dapat mengonfigurasi jadwal di konsol Google Cloud atau menggunakan Google Cloud CLI.

Sebelum memulai

  1. Jika Anda belum memiliki alur kerja yang ingin dijadwalkan, buat dan deploy alur kerja.
  2. Enable the Cloud Scheduler API.

    Enable the API

  3. Atau, di terminal, masukkan perintah berikut:
    gcloud services enable cloudscheduler.googleapis.com

Menjadwalkan alur kerja

  1. Buat akun layanan agar Cloud Scheduler dapat membuat permintaan ke Workflows API:

    gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

    Ganti SERVICE_ACCOUNT_NAME dengan nama yang terdiri dari 6 hingga 30 karakter. Nama ini dapat berisi karakter alfanumerik huruf kecil dan tanda hubung. Setelah membuat akun layanan, Anda tidak dapat mengubah namanya.

  2. Agar akun utama yang akan menjalankan perintah Cloud Scheduler Anda dapat bertindak sebagai akun layanan Identity and Access Management (IAM), berikan peran yang memungkinkan akun utama meniru identitas akun layanan.

  3. Berikan peran workflows.invoker kepada akun layanan baru Anda agar akun tersebut memiliki izin untuk memicu alur kerja Anda:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
      --role roles/workflows.invoker

    Ganti kode berikut:

    • PROJECT_ID: ID project Google Cloud Anda.
    • SERVICE_ACCOUNT_NAME: nama akun layanan yang Anda buat sebelumnya.
  4. Buat tugas Cloud Scheduler yang memicu alur kerja Anda, menggunakan akun layanan yang sebelumnya Anda buat untuk melakukan autentikasi.

    Perhatikan bahwa jika menerapkan logging panggilan, Anda harus mengonfigurasi logging panggilan melalui halaman Alur Kerja di konsol Google Cloud. Untuk mengetahui detailnya, lihat langkah-langkah berikut.

    Konsol

    1. Untuk menjadwalkan alur kerja, buka halaman Workflows di konsol Google Cloud:

      Buka Workflows

    2. Di halaman Alur Kerja, pilih alur kerja untuk membuka halaman detailnya.

    3. Di halaman Detail alur kerja, klik Edit.

    4. Di halaman Edit alur kerja, pilih Tambahkan pemicu baru > Cloud Scheduler.

      Panel Create a Scheduler job akan terbuka.

    5. Tentukan jadwal:

      1. Di kolom Name, masukkan nama untuk tugas Cloud Scheduler Anda. Nama harus unik di seluruh tugas dalam region yang sama.

      2. Dalam daftar Region, pilih region yang sesuai; misalnya, us-central1.

      3. Di kolom Frequency, tentukan interval waktu yang Anda tentukan dalam format unix-cron. Misalnya, untuk menjadwalkan alur kerja Anda agar dieksekusi setiap 5 menit, ketik */5 * * * *.

      4. Dalam daftar Zona waktu, pilih zona waktu yang harus digunakan Cloud Scheduler untuk menafsirkan jadwal yang Anda berikan. Anda dapat menelusuri menurut negara.

    6. Klik Lanjutkan.

    7. Konfigurasikan eksekusi:

      1. Di kolom Argumen alur kerja, tentukan argumen runtime yang akan diteruskan ke alur kerja Anda sebelum dieksekusi. Argumen harus dalam format JSON. Misalnya: {"firstName":"Sherlock", "lastName":"Holmes"}. Jika alur kerja Anda tidak menggunakan argumen runtime, terima default {}, atau kosongkan kolom.

      2. Dalam daftar Level log panggilan alur kerja, pilih level logging panggilan yang ingin Anda terapkan selama eksekusi alur kerja:

        • Tidak ditentukan: tidak ada level logging yang ditentukan. Ini adalah setelan defaultnya. Level log eksekusi lebih diutamakan daripada level log alur kerja apa pun, kecuali jika level log eksekusi tidak ditentukan (default); dalam hal ini, level log alur kerja berlaku.
        • Hanya error: mencatat semua pengecualian yang tertangkap; atau saat panggilan dihentikan karena adanya suatu pengecualian.
        • Semua panggilan: catat semua panggilan ke sub-alur kerja atau fungsi library beserta hasilnya.
        • Tidak ada pencatatan: tidak ada logging panggilan.
      3. Dalam daftar Service account, pilih akun layanan yang Anda buat sebelumnya.

    8. Klik Create.

      Perhatikan bahwa jika Anda memperbarui alur kerja yang ada, Anda tidak perlu men-deploy ulang alur kerja.

      Tugas Cloud Scheduler kini tercantum di tab Pemicu di halaman Detail alur kerja.

    9. Jika ingin memperbarui atau menghapus tugas, Anda harus mengedit alur kerja:

      1. Di halaman Detail alur kerja, klik Edit.
      2. Di bagian Pemicu, cari tugas yang ingin Anda perbarui atau hapus.
      3. Klik Edit resource atau Hapus resource.

    gcloud

    1. Buka terminal dan masukkan perintah berikut:

      gcloud scheduler jobs create http JOB_NAME \
          --schedule="FREQUENCY" \
          --uri="https://workflowexecutions.googleapis.com/v1/projects/PROJECT_ID/locations/REGION_NAME/workflows/WORKFLOW_NAME/executions" \
          --message-body="{\"argument\": \"DOUBLE_ESCAPED_JSON_STRING\"}" \
          --time-zone="TIME_ZONE" \
          --oauth-service-account-email="SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com"

      Ganti kode berikut:

      • JOB_NAME: nama yang Anda berikan ke tugas Cloud Scheduler.
      • FREQUENCY: interval waktu yang Anda tentukan menggunakan format unix-cron. Misalnya, untuk menjadwalkan alur kerja Anda agar dieksekusi setiap 5 menit, ketik */5 * * * *.
      • PROJECT_ID: ID project Google Cloud Anda.
      • REGION_NAME: region tempat Alur Kerja Anda berada, seperti us-central1.
      • WORKFLOW_NAME: nama alur kerja yang ingin Anda jadwalkan eksekusinya.
      • DOUBLE_ESCAPED_JSON_STRING: encoding JSON dari argumen apa pun yang Anda teruskan. Tanda kutip ganda di dalam string yang dikutip di-escape menggunakan garis miring terbalik (\). Misalnya: --message-body="{\"argument\": \"{\\\"foo\\\": \\\"bar\\\"}\"}"
      • TIME_ZONE: Zona waktu yang harus digunakan Cloud Scheduler untuk menafsirkan jadwal yang Anda berikan. Misalnya: America/New_York
      • SERVICE_ACCOUNT_NAME: nama akun layanan yang Anda buat sebelumnya.
    2. Untuk menampilkan daftar semua tugas dalam project:

      gcloud scheduler jobs list

    3. Untuk menghapus tugas:

      gcloud scheduler jobs delete JOB_NAME

Alur kerja Anda kini dijalankan sesuai dengan frekuensi yang telah Anda tentukan.

Langkah selanjutnya