Tutorial ini menunjukkan cara memicu fungsi Cloud Run berbasis peristiwa menggunakan Cloud Scheduler dan dengan menargetkan topik Pub/Sub. Gunakan fungsi berbasis peristiwa jika fungsi Anda harus dipicu secara langsung sebagai respons terhadap peristiwa dalam project Google Cloud, seperti pesan tentang topik Pub/Sub atau perubahan dalam bucket Cloud Storage.
Perhatikan bahwa Anda juga dapat menjadwalkan fungsi HTTP dengan menargetkan endpoint HTTP fungsi Anda. Gunakan fungsi HTTP jika Anda ingin fungsi memiliki endpoint URL dan merespons permintaan HTTP, seperti untuk webhook. Untuk mengetahui informasi selengkapnya, lihat Jenis fungsi Cloud Run.
Menjadwalkan eksekusi fungsi Cloud Run adalah kasus penggunaan umum untuk Cloud Scheduler. Dalam tutorial ini, Anda akan:
- Buat fungsi Cloud Run sederhana yang berlangganan topik Pub/Sub.
- Buat tugas Cloud Scheduler yang memublikasikan pesan ke topik Pub/Sub.
- Jalankan tugas Cloud Scheduler.
- Pastikan fungsi Cloud Run dipicu oleh tugas Cloud Scheduler.
Biaya
Dalam dokumen ini, Anda akan menggunakan komponen Google Cloud yang dapat ditagih berikut:
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda,
gunakan kalkulator harga.
Sebelum memulai
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build, Cloud Functions, Cloud Run Admin, Cloud Scheduler, Eventarc APIs.
-
Create a service account:
-
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.
In the Service account description field, enter a description. For example,
Service account for quickstart
. - Click Create and continue.
-
Grant the Cloud Run > Cloud Run Invoker role to the service account.
To grant the role, find the Select a role list, then select Cloud Run > Cloud Run Invoker.
- Click Continue.
-
Click Done to finish creating the service account.
-
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build, Cloud Functions, Cloud Run Admin, Cloud Scheduler, Eventarc APIs.
-
Create a service account:
-
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.
In the Service account description field, enter a description. For example,
Service account for quickstart
. - Click Create and continue.
-
Grant the Cloud Run > Cloud Run Invoker role to the service account.
To grant the role, find the Select a role list, then select Cloud Run > Cloud Run Invoker.
- Click Continue.
-
Click Done to finish creating the service account.
-
- Secara default, fungsi Cloud Run menggunakan akun layanan Compute Engine default yang dibuat secara otomatis untuk akun layanan runtime-nya. Anda dapat menggunakan akun layanan ini untuk mencoba
tutorial ini. Namun, bergantung pada konfigurasi kebijakan organisasi Anda, akun layanan default mungkin tidak otomatis diberi peran Editor di project Anda. Jika demikian, Anda harus
memberikan peran berikut
ke akun layanan:
- Penulis Artifact Registry (
roles/artifactregistry.writer
) - Logs Writer (
roles/logging.logWriter
) - Storage Object Viewer (
roles/storage.objectViewer
)
- Penulis Artifact Registry (
Perhatikan bahwa Anda harus memberikan peran Cloud Run Invoker karena di fungsi Cloud Run (generasi ke-2), izin pemanggilan tersedia dengan mengelola layanan Cloud Run yang mendasarinya.
Membuat fungsi Cloud Run berbasis peristiwa
Buat fungsi berbasis peristiwa yang dipicu secara langsung sebagai respons terhadap peristiwa dalam project Google Cloud Anda; dalam hal ini, pesan yang dipublikasikan ke topik Pub/Sub.
Di konsol Google Cloud, buka halaman Cloud Run functions.
Klik
Create function.Di bagian Dasar-Dasar, lakukan hal berikut:
- Di daftar Environment, pilih 2nd gen.
- Masukkan nama untuk fungsi Anda.
- Di daftar Region, pilih region.
Di bagian Trigger, lakukan tindakan berikut:
- Dalam daftar Trigger type, pilih Cloud Pub/Sub.
- Di daftar Cloud Pub/Sub topic, pilih topik yang ada atau untuk membuat topik baru, klik Create a topic. Catat nama topik karena Anda akan membutuhkannya di langkah berikutnya.
Klik Opsi lainnya.
Panel Pemicu Eventarc akan terbuka.
Di panel Pemicu Eventarc, lakukan hal berikut:
- Jika Anda diminta untuk mengizinkan layanan Pub/Sub membuat token identitas yang diperlukan untuk memanggil fungsi, klik Berikan.
- Dalam daftar Service account, pilih akun layanan yang Anda buat sebelumnya.
- Terima setelan default lainnya.
Klik Save trigger.
Panel Pemicu Eventarc akan ditutup.
Terima setelan default lainnya, lalu klik Next.
Jangan ubah bahasa runtime default dan kode contoh. Kode ini tidak menggunakan layanan cloud apa pun dan tidak memerlukan izin tambahan yang diaktifkan. Klik Deploy.
Buat tugas Cloud Scheduler
Buat tugas Cloud Scheduler dengan target Pub/Sub.
Di konsol Google Cloud, buka halaman Cloud Scheduler.
Klik
Create job.Masukkan nama untuk tugas Anda.
Di daftar Region, pilih region.
Tentukan frekuensi untuk tugas Anda, menggunakan format unix-cron:
30 16 * * 7
Untuk mengetahui informasi selengkapnya, lihat Format tugas Cron dan zona waktu.
Di daftar Zona waktu, pilih zona waktu.
Klik Lanjutkan.
Dalam daftar Target type, pilih Pub/Sub.
Pilih topik Pub/Sub yang Anda buat sebelumnya.
Di kolom Message body, masukkan string yang akan dikirim ke topik target Pub/Sub Anda. Misalnya: "Halo dunia!"
Klik Create.
Anda telah membuat tugas cron yang mengirim pesan ke topik Pub/Sub Anda pada pukul 16.30 pada hari Minggu. Fungsi Cloud Run Anda berlangganan topik tersebut.
Menjalankan tugas Cloud Scheduler
Sekarang Anda dapat menjalankan tugas yang dibuat.
Di konsol Google Cloud, buka halaman Cloud Scheduler.
Centang kotak untuk tugas yang Anda buat, lalu klik Paksa jalankan.
Saat pertama kali dipanggil, tugas pertama yang dibuat dalam project dapat memerlukan waktu beberapa menit untuk dikonfigurasi dan dijalankan.
Setelah tugas berjalan, Status eksekusi terakhir akan menunjukkan
Success
.
Memverifikasi hasil di fungsi Cloud Run
Anda dapat memverifikasi bahwa fungsi Cloud Run berhasil dipicu dan dijalankan oleh tugas cron.
Di konsol Google Cloud, buka halaman Cloud Run functions.
Klik nama fungsi.
Halaman Detail fungsi akan terbuka dan grafik Pemanggilan/Detik akan menampilkan pemanggilan pertama fungsi Anda.
Klik tab Logs.
Anda akan melihat entri log yang mirip dengan
Hello, YOUR_STRING!
Pembersihan
Agar tidak perlu membayar biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource tersebut, atau simpan project dan hapus setiap resource.
Hapus project
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Menghapus resource tutorial
Di konsol Google Cloud, buka halaman Cloud Scheduler.
Centang kotak di samping pekerjaan Anda.
Klik
Hapus dan konfirmasi penghapusan.Di konsol Google Cloud, buka halaman Pub/Sub.
Centang kotak di samping topik Anda.
Klik
Hapus dan konfirmasi penghapusan.Di konsol Google Cloud, buka halaman Cloud Run functions.
Pilih kotak centang di samping fungsi Anda.
Klik
Hapus dan konfirmasi penghapusan.Di konsol Google Cloud, buka halaman Akun Layanan.
Centang kotak di samping akun layanan yang Anda buat.
Klik
Hapus dan konfirmasi penghapusan.