Menjadwalkan dan menjalankan cron job menggunakan gcloud CLI

Panduan memulai ini menunjukkan cara menggunakan gcloud CLI untuk melakukan beberapa operasi dasar menggunakan Cloud Scheduler.

Di panduan memulai ini, Anda:

  1. Membuat topik Pub/Sub untuk disiapkan sebagai target tugas Cloud Scheduler.
  2. Membuat cron job menggunakan Cloud Scheduler, dan mengonfigurasi jadwal berulang untuk tugas tersebut.
  3. Menjalankan tugas.
  4. Memverifikasi bahwa tugas telah berhasil dijalankan.

Cloud Scheduler memiliki paket gratis dan menjalankan panduan memulai ini tidak akan dikenai biaya apa pun. Untuk mengetahui informasi selengkapnya, lihat Harga.

Sebelum memulai

  1. Login keakun Anda. Google Cloud Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  2. Instal Google Cloud CLI.

  3. Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus terlebih dahulu login ke gcloud CLI dengan identitas gabungan Anda.

  4. Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:

    gcloud init
  5. Buat atau pilih Google Cloud project.

    Peran yang diperlukan untuk memilih atau membuat project

    • Memilih project: Memilih project tidak memerlukan peran IAM tertentu Anda dapat memilih project mana pun yang telah diberi peran.
    • Membuat project: Untuk membuat project, Anda memerlukan peran Project Creator (roles/resourcemanager.projectCreator), yang berisi izin resourcemanager.projects.create. Pelajari cara memberikan peran.
    • Buat Google Cloud project:

      gcloud projects create PROJECT_ID

      Ganti PROJECT_ID dengan nama untuk Google Cloud project yang Anda buat.

    • Pilih Google Cloud project yang Anda buat:

      gcloud config set project PROJECT_ID

      Ganti PROJECT_ID dengan nama Google Cloud project Anda.

  6. Jika Anda menggunakan project yang sudah ada untuk panduan ini, pastikan Anda memiliki izin yang diperlukan untuk menyelesaikan panduan ini. Jika berhasil membuat project baru, berarti Anda sudah memiliki izin yang diperlukan.

  7. Pastikan penagihan diaktifkan untuk Google Cloud project Anda.

  8. Aktifkan Cloud Scheduler dan Pub/Sub API:

    Peran yang diperlukan untuk mengaktifkan API

    Untuk mengaktifkan API, Anda memerlukan izin serviceusage.services.enable. Jika Anda membuat project, kemungkinan besar Anda sudah memiliki izin ini melalui peran Pemilik (roles/owner). Jika tidak, Anda bisa mendapatkan izin ini melalui peran Admin Penggunaan Layanan (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran.

    gcloud services enable cloudscheduler.googleapis.com pubsub.googleapis.com
  9. Instal Google Cloud CLI.

  10. Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus terlebih dahulu login ke gcloud CLI dengan identitas gabungan Anda.

  11. Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:

    gcloud init
  12. Buat atau pilih Google Cloud project.

    Peran yang diperlukan untuk memilih atau membuat project

    • Memilih project: Memilih project tidak memerlukan peran IAM tertentu Anda dapat memilih project mana pun yang telah diberi peran.
    • Membuat project: Untuk membuat project, Anda memerlukan peran Project Creator (roles/resourcemanager.projectCreator), yang berisi izin resourcemanager.projects.create. Pelajari cara memberikan peran.
    • Buat Google Cloud project:

      gcloud projects create PROJECT_ID

      Ganti PROJECT_ID dengan nama untuk Google Cloud project yang Anda buat.

    • Pilih Google Cloud project yang Anda buat:

      gcloud config set project PROJECT_ID

      Ganti PROJECT_ID dengan nama Google Cloud project Anda.

  13. Jika Anda menggunakan project yang sudah ada untuk panduan ini, pastikan Anda memiliki izin yang diperlukan untuk menyelesaikan panduan ini. Jika berhasil membuat project baru, berarti Anda sudah memiliki izin yang diperlukan.

  14. Pastikan penagihan diaktifkan untuk Google Cloud project Anda.

  15. Aktifkan Cloud Scheduler dan Pub/Sub API:

    Peran yang diperlukan untuk mengaktifkan API

    Untuk mengaktifkan API, Anda memerlukan izin serviceusage.services.enable. Jika Anda membuat project, kemungkinan besar Anda sudah memiliki izin ini melalui peran Pemilik (roles/owner). Jika tidak, Anda bisa mendapatkan izin ini melalui peran Admin Penggunaan Layanan (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran.

    gcloud services enable cloudscheduler.googleapis.com pubsub.googleapis.com

Peran yang diperlukan

Untuk mendapatkan izin yang Anda perlukan untuk menyelesaikan panduan memulai ini, minta administrator Anda untuk memberi Anda peran IAM berikut di project Anda:

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Membuat topik dan langganan Pub/Sub

Topik Pub/Sub adalah resource yang menjadi tujuan pengiriman pesan oleh penayang. Untuk menerima pesan yang dipublikasikan ke suatu topik, Anda harus membuat langganan ke topik tersebut.

  1. Siapkan topik Pub/Sub untuk digunakan sebagai target cron job Anda:

    gcloud pubsub topics create cron-topic
    

    Tindakan ini akan membuat topik bernama cron-topic.

  2. Untuk menerima pesan dan melihat hasil tugas Anda, buat langganan Pub/Sub:

    gcloud pubsub subscriptions create cron-sub --topic cron-topic
    

Membuat cron job menggunakan Cloud Scheduler

Gunakan gcloud scheduler jobs create pubsub perintah untuk menyiapkan unit kerja yang dikenal sebagai cron job yang dikirim ke target Pub/Sub pada jadwal berulang. Jadwal ditentukan menggunakan format berdasarkan unix-cron. Untuk mengetahui informasi selengkapnya, lihat Format cron job dan zona waktu.

gcloud scheduler jobs create pubsub my-cron-job \
    --schedule="30 16 * * 7" \
    --topic=cron-topic \
    --location="us-east1" \
    --message-body="Hello world"

Anda telah membuat tugas yang mengirim pesan "Hello world" ke topik Pub/Sub Anda pada pukul 16.30 setiap hari Minggu.

Anda kini dapat menjalankan tugas tersebut.

Menjalankan tugas

Selain menjalankan sesuai jadwal yang ditentukan, Anda dapat memaksa tugas untuk segera dijalankan:

gcloud scheduler jobs run my-cron-job --location="us-east1"

Perhatikan bahwa karena beberapa konfigurasi awal, tugas pertama yang dibuat dalam project dapat memerlukan waktu beberapa menit untuk dijalankan.

Selanjutnya, Anda dapat memverifikasi bahwa topik Pub/Sub Anda menerima pesan.

Memverifikasi hasil di Pub/Sub

Pastikan topik Pub/Sub Anda menerima pesan dari tugas Anda.

  1. Tarik pesan Pub/Sub dari langganan:

    gcloud pubsub subscriptions pull cron-sub --limit 5
    

    Jika tidak ada pesan yang ditarik pada awalnya, jalankan kembali perintah tersebut.

  2. Lihat hasil menjalankan tugas Anda. Output-nya akan terlihat seperti berikut:

    DATA: Hello world!
    MESSAGE_ID: 5028933846601543
    ORDERING_KEY:
    ATTRIBUTES:
    DELIVERY_ATTEMPT:
    ACK_ID: RFAGFixdRkhRNxkIaFEOT14jPzUgKEUQAgVPAihdeTFXLkFacGhRDRlyfWB9[...]
    

Pembersihan

Agar akun Google Cloud Anda tidak dikenai biaya untuk resource yang digunakan pada halaman ini, hapus Google Cloud project yang berisi resource tersebut.

    Hapus a Google Cloud project:

    gcloud projects delete PROJECT_ID

Atau, hapus resource yang Anda buat untuk panduan memulai ini:

  1. Hapus cron job. Di Cloud Shell atau di mesin tempat Anda menginstal gcloud CLI, jalankan perintah:

    gcloud scheduler jobs delete MY_JOB \
        --location="LOCATION"
    

    Ganti kode berikut:

    • MY_JOB: nama tugas yang akan dihapus.
    • LOCATION: lokasi tugas. Secara default, menggunakan lokasi aplikasi App Engine project saat ini jika ada aplikasi terkait.
  2. Hapus topik Pub/Sub. Di Cloud Shell atau di mesin tempat Anda menginstal gcloud CLI, jalankan perintah:

    gcloud pubsub topics delete TOPIC_ID
    

    Ganti TOPIC_ID dengan ID topik Pub/Sub yang akan dihapus.

  3. Hapus langganan Pub/Sub. Di Cloud Shell atau di mesin tempat Anda menginstal gcloud CLI, jalankan perintah:

    gcloud pubsub subscriptions delete SUBSCRIPTION_ID
    

    Ganti SUBSCRIPTION_ID dengan ID langganan Pub/Sub yang akan dihapus.

Langkah berikutnya