Menjadwalkan alur kerja menggunakan Cloud Scheduler

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

Sebelum memulai

  1. Jika Anda belum memiliki alur kerja yang ingin dijadwalkan, buat dan deploy.
  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 berisi 6 hingga 30 karakter. Nama dapat berisi karakter alfanumerik huruf kecil dan tanda hubung. Setelah membuat akun layanan, Anda tidak dapat mengubah namanya.

  2. Untuk mengizinkan akun utama yang akan menjalankan Cloud Scheduler Anda memiliki kemampuan untuk bertindak sebagai akun layanan Identity and Access Management (IAM), berikan peran yang memungkinkan akun utama meniru identitas akun layanan.

  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 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 dibuat untuk melakukan autentikasi.

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

    3. Di halaman Workflow details, klik Edit.

    4. Di halaman Edit Workflow, pilih Add new trigger > Cloud Scheduler.

      Panel Create a Scheduler job akan terbuka.

    5. Tentukan jadwal:

      1. Di kolom Name, masukkan nama untuk tugas Cloud Scheduler Anda. Nama ini harus unik di seluruh pekerjaan di 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 dijalankan setiap 5 menit, ketik */5 * * * *.

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

    6. Klik Lanjutkan.

    7. Konfigurasikan eksekusi:

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

      2. Dalam daftar Workflow's call log level, 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 sebelumnya Anda buat.

    8. Klik Create.

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

      Tugas Cloud Scheduler kini tercantum di tab Triggers 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, cari tugas yang ingin Anda perbarui atau hapus.
      3. Klik Edit referensi atau Hapus referensi.

    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 dijalankan 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 sebuah project:

      gcloud scheduler jobs list

    3. Untuk menghapus tugas:

      gcloud scheduler jobs delete JOB_NAME

Kini alur kerja Anda dijalankan sesuai dengan frekuensi yang telah Anda tetapkan.

Langkah selanjutnya