Menjadwalkan dan menjalankan cron job menggunakan Terraform
Panduan memulai ini menunjukkan cara menggunakan Terraform untuk membuat tugas cron Cloud Scheduler. Terraform adalah alat infrastruktur sebagai kode (IaC) yang memungkinkan Anda membuat, mengubah, dan meningkatkan kualitas infrastruktur cloud secara tepat menggunakan kode. Anda dapat mempelajari lebih lanjut cara menggunakan Terraform untuk menyediakan infrastruktur di Google Cloud.
Cloud Scheduler memiliki paket gratis dan menjalankan panduan memulai ini tidak akan menimbulkan biaya apa pun. Untuk informasi selengkapnya, lihat Harga.
Dalam panduan memulai ini, Anda akan:
- Gunakan Terraform untuk membuat tugas cron untuk Cloud Scheduler.
- Tetapkan jadwal berulang untuk tugas.
- Tentukan topik Pub/Sub sebagai target tugas.
- Menjalankan tugas.
- Pastikan tugas telah berhasil dijalankan.
Sebelum memulai
-
Sign in to your Google Account.
If you don't already have one, sign up for a new account.
-
Install the Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud init
-
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
Install the Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud init
-
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
- Cloud Shell telah mengintegrasikan Terraform. Jika Anda perlu menginstal Terraform, lihat dokumentasi HashiCorp Terraform.
Buka terminal dan buat direktori:
mkdir terraform
Buka direktori
terraform
:cd terraform
Tambahkan file baru,
main.tf
, ke direktori:nano main.tf
Tambahkan resource penyedia Terraform untuk Google Cloud ke file
main.tf
:Aktifkan Cloud Scheduler dan Pub/Sub API:
Buat topik Pub/Sub sebagai resource yang dapat menerima pesan dari penerbit:
Tindakan ini akan membuat topik bernama
pubsub_topic
.Buat langganan untuk menerima pesan yang dipublikasikan ke topik Pub/Sub:
Buat cron job menggunakan resource
google_cloud_scheduler_job
:Argumen berikut digunakan dalam contoh:
name
: nama tugas.description
: deskripsi untuk tugas.schedule
: frekuensi untuk tugas, menggunakan format berdasarkan unix-cron.Dalam contoh ini,
30 16 * * 7
berarti tugas akan berjalan pada pukul 16.30 pada hari Minggu. Untuk mengetahui informasi selengkapnya, lihat Format cron job dan zona waktu.region
: region tempat tugas berada.pubsub_target
: target topik Pub/Sub, termasuk nama resource lengkap topik (topic_name
) tempat payload pesan (data
) dipublikasikan saat tugas dijalankan.
Argumen lain didukung. Untuk mengetahui detailnya, lihat Referensi argumen Terraform Registry.
Buka terminal dan di direktori
terraform
, lakukan inisialisasi Terraform:terraform init
Periksa apakah perubahan yang Anda usulkan dengan Terraform sesuai dengan rencana yang diharapkan:
terraform plan
Anda dapat mengabaikan catatan terkait tidak menggunakan opsi
-out
.Buat cron job:
terraform apply
Pada perintah Enter a value, ketik
yes
untuk melanjutkan pembuatan resource.Konfirmasi bahwa tugas telah dibuat:
gcloud scheduler jobs describe test-job --location=us-central1
Outputnya akan mirip dengan berikut ini:
description: test job lastAttemptTime: '2024-04-04T13:56:00.669530Z' name: projects/PROJECT_ID/locations/us-central1/jobs/test-job pubsubTarget: data: dGVzdA== topicName: projects/PROJECT_ID/topics/pubsub_topic schedule: '30 16 * * 7' scheduleTime: '2024-04-04T13:58:00.737907Z' state: ENABLED
Mengambil pesan Pub/Sub dari langganan:
gcloud pubsub subscriptions pull pubsub_subscription --limit 5
Jika tidak ada pesan yang ditarik pada awalnya, jalankan kembali perintah tersebut.
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[...]
- Menghapus project akan menghentikan penagihan untuk semua resource yang digunakan dalam project tersebut. Google Cloud Perhatikan bahwa secara default, semua file di direktori beranda Cloud Shell Anda (misalnya, semua file Terraform) tetap ada di antara sesi.
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID
Atau, Anda dapat menghapus semua resource yang Anda buat dengan Terraform.
Perintah
terraform destroy
menghentikan semua resource yang ditentukan dalam status Terraform Anda. Tidak menghancurkan resource yang tidak dikelola oleh project Terraform saat ini. File konfigurasi Terraform Anda tidak dihancurkan. Untuk mengetahui informasi selengkapnya, lihat Hancurkan infrastruktur.terraform destroy
Membuat file konfigurasi Terraform
Untuk menggunakan Terraform dengan Cloud Scheduler, Anda perlu membuat file konfigurasi untuk mendeskripsikan infrastruktur dan membuat rencana eksekusi. Kemudian, Anda menerapkan file konfigurasi ke platform atau layanan untuk melakukan operasi yang menyediakan infrastruktur Anda.
Selesaikan langkah-langkah berikut untuk membuat file konfigurasi Terraform yang bernama main.tf
:
Buat cron job
Deploy resource Terraform Anda untuk membuat cron job.
Anda telah membuat tugas yang mengirim pesan ke topik Pub/Sub pada pukul 16.30 setiap hari Minggu. Sekarang Anda dapat menjalankan tugas.
Menjalankan tugas
Selain dieksekusi sesuai jadwal yang ditentukan, Anda dapat memaksa tugas untuk segera dieksekusi dengan menjalankan perintah berikut.
gcloud scheduler jobs run test-job --location=us-central1
Perhatikan bahwa karena beberapa konfigurasi awal, tugas pertama yang dibuat dalam project dapat memerlukan waktu beberapa menit untuk dijalankan.
Memverifikasi hasil
Pastikan topik Pub/Sub Anda menerima pesan dari tugas Anda.
Pembersihan
Agar tidak menimbulkan biaya pada akun Google Cloud Anda untuk resource yang digunakan di halaman ini, hapus project Google Cloud yang berisi resource tersebut.