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 Google Cloud konsol atau dengan menggunakan Google Cloud CLI.

Sebelum memulai

  1. Jika Anda belum memiliki alur kerja yang ingin dijadwalkan, buat dan deploy alur kerja tersebut.
  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 tersebut.

  3. Beri akun layanan baru Anda peran workflows.invoker 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 Google Cloud project Anda.
    • SERVICE_ACCOUNT_NAME: nama akun layanan yang sebelumnya Anda buat.
  4. Buat tugas Cloud Scheduler yang memicu alur kerja Anda, menggunakan akun layanan yang Anda buat sebelumnya untuk melakukan autentikasi.

    Perhatikan bahwa jika Anda menerapkan logging panggilan, Anda harus mengonfigurasi logging panggilan melalui halaman Workflows di konsolGoogle 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 Workflows, pilih alur kerja untuk membuka halaman detailnya.

    3. Di halaman Workflow details, 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 tersebut 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. Di daftar Zona waktu, pilih zona waktu yang harus digunakan Cloud Scheduler untuk menafsirkan jadwal yang Anda berikan. Anda dapat menelusuri berdasarkan negara.

    6. Klik Lanjutkan.

    7. Konfigurasi 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 biarkan kolom kosong.

      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 Buat.

      Perhatikan bahwa jika Anda memperbarui alur kerja yang sudah 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 Workflow details, klik Edit.
      2. Di bagian Pemicu, temukan tugas yang ingin Anda perbarui atau hapus.
      3. Klik Edit fasilitas atau Hapus fasilitas.

    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 Google Cloud project 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 sebelumnya Anda buat.
    2. Untuk mencantumkan semua tugas dalam sebuah 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 berikutnya