Tutorial ini menunjukkan cara menggunakan Cloud Scheduler dan Pub/Sub untuk memicu Cloud Function. Kemampuan untuk menjadwalkan eksekusi Cloud Function merupakan kasus penggunaan umum bagi Cloud Scheduler. Anda akan:
- Buat Cloud Function sederhana yang berlangganan topik Pub/Sub.
- Buat topik Pub/Sub untuk memicu fungsi tersebut.
- Buat tugas Cloud Scheduler yang memanggil pemicu Pub/Sub.
- Jalankan tugas Cloud Scheduler.
- Verifikasi berhasil.
Sebelum memulai
Tutorial ini mengasumsikan bahwa Anda telah menggunakan Panduan Memulai Cloud Scheduler. Oleh karena itu, Anda memiliki alat dan referensi berikut:Project Google Cloud dengan penagihan diaktifkan.
Cloud Scheduler API dan Pub/Sub API diaktifkan di project. Anda mengaktifkan Cloud Functions API selama tutorial.
Biaya
Dalam dokumen ini, Anda akan menggunakan komponen Google Cloud yang dapat ditagih berikut:
- Cloud Functions
- Pub/Sub
- Cloud Scheduler
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda,
gunakan kalkulator harga.
Membuat Cloud Function dengan pemicu
Di Google Cloud Console, buka halaman Cloud Functions.
Klik Enable API jika diminta.
Klik Create function. Jika muncul pesan yang meminta untuk mengaktifkan API, klik Enable untuk mengaktifkannya.
Di bagian Basics, pilih lingkungan 2nd gen, masukkan nama untuk fungsi Anda, lalu pilih region.
Di bagian Pemicu, pilih Perlu autentikasi. Klik Add trigger, lalu pilih Pub/Sub trigger. Panel pemicu Eventarc akan terbuka. Jika diminta untuk Enable required APIs, klik Enable.
Di panel Pemicu Eventarc, pastikan beberapa kolom pertama terisi sebagai berikut, atau isi jika perlu:
- Jenis pemicu: Sumber Google
- Penyedia peristiwa: Cloud Pub/Sub
- Acara:
google.cloud.pubsub.topic.v1.messagePublished
Di kolom Select a Cloud Pub/Sub topic, pilih topik yang ada atau klik Create new topic untuk membuat topik baru. Fungsi Anda berlangganan topik ini. Catat nama topik - Anda akan membutuhkannya nanti.
- Klik Berikan jika diminta, untuk mengizinkan layanan Pub/Sub membuat token identitas yang perlu digunakan untuk memicu fungsi. Ingat kembali bahwa Anda telah memilih Require authentication untuk fungsi sebelumnya. Pub/Sub menggunakan token identitas untuk autentikasi yang diperlukan tersebut.
Di kolom Service account, klik Create new service account.
Masukkan nama untuk akun layanan, lalu klik Buat. Eventarc menggunakan akun layanan ini untuk memanggil fungsi dengan token identitas dari layanan Pub/Sub.
Di bagian Grant this service account access to project, pilih peran Cloud Run Invoker. Dengan begitu, akun layanan dapat memanggil fungsi generasi ke-2.
Klik Done.
Biarkan Coba lagi jika gagal tidak dipilih. Klik Save trigger.
Luaskan bagian Runtime, build, connections and security settings, lalu pilih tab Runtime.
Di bagian Runtime service account, di kolom Service account, klik Create. Alur pembuatan akun layanan akan terbuka di tab baru. Akun layanan ini adalah identitas yang dimiliki Cloud Function saat dijalankan.
- Masukkan nama untuk akun layanan.
- Klik Buat dan lanjutkan.
- Klik Done.
Anda akan dialihkan ke halaman Service accounts di Konsol Google Cloud. Anda dapat menutup tab ini.
Kembali ke kolom Service account di halaman pembuatan fungsi, klik Refresh, lalu pilih akun layanan yang baru saja Anda buat.
Klik Next. Jika diminta untuk mengaktifkan API yang diperlukan, klik Enable.
Jangan ubah bahasa default dan kode contoh. Kode ini tidak menggunakan layanan cloud apa pun dan tidak perlu mengaktifkan izin tambahan. Klik Deploy.
Buat tugas Cloud Scheduler
Di konsol Google Cloud, buka halaman Cloud Scheduler.
Klik Buat tugas.
Jika perlu, pilih region untuk menjalankan tugas Anda.
Beri nama pekerjaan Anda dan Anda juga dapat menambahkan deskripsi.
Tentukan frekuensi untuk tugas Anda, menggunakan format unix-cron.
30 16 * * 7
Lihat Mengonfigurasi jadwal cron job untuk informasi selengkapnya.
Pilih zona waktu.
Klik Continue
Di bagian Configure the execution, pilih Pub/Sub sebagai jenis target.
Pilih nama Topik Anda.
Tambahkan string Pesan singkat yang akan dikirim ke target Anda.
Klik Create.
Sekarang Anda memiliki cron job yang mengirimkan pesan ke topik Pub/Sub pada pukul 16.30 pada hari Minggu. Cloud Function Anda berlangganan topik tersebut.
Menjalankan tugas Anda
Sekarang Anda dapat menjalankan tugas yang Anda buat.
Di konsol Google Cloud, buka halaman Cloud Scheduler.
Pilih tugas yang Anda buat.
Klik Force run.
Tugas pertama yang dibuat dalam sebuah project dapat memerlukan waktu beberapa menit untuk dijalankan saat pertama kali dipanggil, karena konfigurasi yang diperlukan.
Perhatikan kolom Status of last execution. Setelah tugas berjalan, kolom ini akan menampilkan "Berhasil".
Selamat! Anda baru saja menggunakan konsol untuk melihat hasil menjalankan cron job yang mengirimkan pesan ke Pub/Sub. Selanjutnya, Anda akan mempelajari cara memverifikasi bahwa Cloud Function Anda benar-benar dijalankan.
Memverifikasi hasilnya di Cloud Functions
Untuk memastikan bahwa Cloud Function Anda berhasil dipicu oleh cron job:
Di konsol Google Cloud, buka halaman Cloud Functions.
Klik nama fungsi.
Halaman Detail fungsi akan terbuka. Grafik Invocations/Seconds akan menampilkan pemanggilan fungsi pertama Anda. Untuk melihat detail tentang pemanggilan, klik Logs.
Selamat! Fungsi Anda telah dieksekusi.
Pembersihan
Agar tidak menimbulkan biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini:
Menghapus tugas Cloud Scheduler
Di konsol Google Cloud, buka halaman Cloud Scheduler.
Pilih kotak centang di samping tugas Anda.
Klik
Hapus dan konfirmasi penghapusan.
Menghapus topik Pub/Sub
Di konsol Google Cloud, buka halaman Cloud Pub/Sub.
Pilih kotak centang di samping topik.
Klik
Hapus dan konfirmasi penghapusan.
Menghapus fungsi Cloud Functions
Di konsol Google Cloud, buka halaman Cloud Functions.
Pilih kotak centang di samping fungsi Anda.
Klik
Hapus dan konfirmasi penghapusan.
Menghapus akun layanan
Di konsol Google Cloud, buka halaman Akun Layanan.
Pilih kotak centang di samping akun layanan yang Anda buat.
Klik
Hapus dan konfirmasi penghapusan.
Menonaktifkan API
Jika Anda mengaktifkan API apa pun setelah mengikuti tutorial ini (seperti Eventarc, Cloud Functions, atau Pub/Sub API), nonaktifkan API tersebut. Menonaktifkan API akan memengaruhi akses ke API untuk project, jadi jangan menonaktifkan API jika resource lain dalam project Anda menggunakannya.
Di konsol Google Cloud, buka halaman APIs & Services.
Klik API yang ingin Anda nonaktifkan. Halaman yang menjelaskan API akan muncul.
Klik
Disable API.
Menghapus project
Jika Anda membuat project hanya untuk tutorial ini.
- 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.