Menjadwalkan alur kerja menggunakan Cloud Scheduler

Halaman ini menunjukkan cara menggunakan Cloud Scheduler untuk menjalankan alur kerja pada jadwal tertentu, seperti setiap 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.
  2. Aktifkan Cloud Scheduler API.

    Peran yang diperlukan untuk mengaktifkan API

    Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (roles/serviceusage.serviceUsageAdmin), yang berisi izin serviceusage.services.enable. Pelajari cara memberikan peran.

    Mengaktifkan 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 tersebut 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 perintah Cloud Scheduler Anda bertindak sebagai akun layanan Identity and Access Management (IAM), berikan peran yang memungkinkan akun utama meniru akun layanan.

  3. Berikan peran workflows.invoker ke 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 Anda. Google Cloud
    • SERVICE_ACCOUNT_NAME: nama akun layanan yang Anda buat sebelumnya.
  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 Google Cloud konsol. Untuk mengetahui detailnya, lihat langkah-langkah berikut.

    Konsol

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

      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 tersebut harus unik di seluruh tugas di region yang sama.

      2. Dalam daftar Region, pilih regionyang 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 Continue.

    7. Konfigurasi eksekusi:

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

      2. Dalam daftar Workflow's call log level, pilih tingkat 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.
        • No logs: 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 sudah ada, Anda tidak perlu men-deploy ulang alur kerja.

      Tugas Cloud Scheduler kini tercantum di tab Triggers pada halaman Workflow details.

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

      1. Di halaman Workflow details, klik Edit.
      2. Di bagian Triggers, temukan tugas yang ingin Anda perbarui atau hapus.
      3. Klik Edit resource atau Delete 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 dijalankan setiap 5 menit, ketik */5 * * * *.
      • PROJECT_ID: ID project Anda. Google Cloud
      • 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 (\). Contoh: --message-body="{\"argument\": \"{\\\"foo\\\": \\\"bar\\\"}\"}"
      • TIME_ZONE: zona waktu yang harus digunakan Cloud Scheduler untuk menafsirkan jadwal yang Anda berikan. Contoh: America/New_York.
      • SERVICE_ACCOUNT_NAME: nama akun layanan yang Anda buat sebelumnya.
    2. Untuk mencantumkan 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 berikutnya