Menjadwalkan Cloud Function menggunakan Pub/Sub

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 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. Pengguna baru Google Cloud mungkin memenuhi syarat untuk mendapatkan uji coba gratis.

Membuat Cloud Function dengan pemicu

  1. Di Google Cloud Console, buka halaman Cloud Functions.

    Buka Cloud Functions

  2. Klik Enable API jika diminta.

  3. Klik Create function. Jika muncul pesan yang meminta untuk mengaktifkan API, klik Enable untuk mengaktifkannya.

  4. Di bagian Basics, pilih lingkungan 2nd gen, masukkan nama untuk fungsi Anda, lalu pilih region.

  5. 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.

  6. 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
  7. 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.
  8. Di kolom Service account, klik Create new service account.

    1. Masukkan nama untuk akun layanan, lalu klik Buat. Eventarc menggunakan akun layanan ini untuk memanggil fungsi dengan token identitas dari layanan Pub/Sub.

    2. Di bagian Grant this service account access to project, pilih peran Cloud Run Invoker. Dengan begitu, akun layanan dapat memanggil fungsi generasi ke-2.

    3. Klik Done.

  9. Biarkan Coba lagi jika gagal tidak dipilih. Klik Save trigger.

  10. Luaskan bagian Runtime, build, connections and security settings, lalu pilih tab Runtime.

  11. 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.

    1. Masukkan nama untuk akun layanan.
    2. Klik Buat dan lanjutkan.
    3. Klik Done.

    Anda akan dialihkan ke halaman Service accounts di Konsol Google Cloud. Anda dapat menutup tab ini.

  12. Kembali ke kolom Service account di halaman pembuatan fungsi, klik Refresh, lalu pilih akun layanan yang baru saja Anda buat.

  13. Klik Next. Jika diminta untuk mengaktifkan API yang diperlukan, klik Enable.

  14. 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

  1. Di konsol Google Cloud, buka halaman Cloud Scheduler.

    Buka Cloud Scheduler

  2. Klik Buat tugas.

  3. Jika perlu, pilih region untuk menjalankan tugas Anda.

  4. Beri nama pekerjaan Anda dan Anda juga dapat menambahkan deskripsi.

  5. Tentukan frekuensi untuk tugas Anda, menggunakan format unix-cron.

    30 16 * * 7
    

    Lihat Mengonfigurasi jadwal cron job untuk informasi selengkapnya.

  6. Pilih zona waktu.

  7. Klik Continue

  8. Di bagian Configure the execution, pilih Pub/Sub sebagai jenis target.

  9. Pilih nama Topik Anda.

  10. Tambahkan string Pesan singkat yang akan dikirim ke target Anda.

  11. 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.

  1. Di konsol Google Cloud, buka halaman Cloud Scheduler.

    Buka Cloud Scheduler

  2. Pilih tugas yang Anda buat.

  3. 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.

  4. 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:

  1. Di konsol Google Cloud, buka halaman Cloud Functions.

    Buka Cloud Functions

  2. Klik nama fungsi.

  3. 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

  1. Di konsol Google Cloud, buka halaman Cloud Scheduler.

    Buka Scheduler

  2. Pilih kotak centang di samping tugas Anda.

  3. Klik Hapus dan konfirmasi penghapusan.

Menghapus topik Pub/Sub

  1. Di konsol Google Cloud, buka halaman Cloud Pub/Sub.

    Buka Pub/Sub

  2. Pilih kotak centang di samping topik.

  3. Klik Hapus dan konfirmasi penghapusan.

Menghapus fungsi Cloud Functions

  1. Di konsol Google Cloud, buka halaman Cloud Functions.

    Buka Cloud Functions

  2. Pilih kotak centang di samping fungsi Anda.

  3. Klik Hapus dan konfirmasi penghapusan.

Menghapus akun layanan

  1. Di konsol Google Cloud, buka halaman Akun Layanan.

    Buka Akun Layanan

  2. Pilih kotak centang di samping akun layanan yang Anda buat.

  3. 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.

  1. Di konsol Google Cloud, buka halaman APIs & Services.

    Buka API & Layanan

  2. Klik API yang ingin Anda nonaktifkan. Halaman yang menjelaskan API akan muncul.

  3. Klik Disable API.

Menghapus project

Jika Anda membuat project hanya untuk tutorial ini.

  1. Di konsol Google Cloud, buka halaman Manage resource.

    Buka Manage resource

  2. Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
  3. Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.