Menjadwalkan Cloud Function

Tutorial ini menunjukkan cara memicu Cloud Function menggunakan Cloud Scheduler dan Pub/Sub. Kemampuan untuk menjadwalkan eksekusi Cloud Function merupakan kasus penggunaan umum bagi Cloud Scheduler. Anda akan:

  • Membuat Cloud Function sederhana yang berlangganan topik Pub/Sub.
  • Buat tugas Cloud Scheduler yang memublikasikan pesan ke topik Pub/Sub.
  • Jalankan tugas Cloud Scheduler.
  • Pastikan bahwa Cloud Function dipicu oleh tugas Cloud Scheduler.

Sebelum memulai

Tutorial ini mengasumsikan bahwa Anda telah mengerjakan 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 Konsol Google Cloud, 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, di bagian Jenis pemicu, pilih Cloud Pub/Sub, lalu klik Opsi lainnya. Panel Pemicu Eventarc akan terbuka. Jika diminta untuk Enable required APIs, klik Enable.

  6. Di panel Eventarc trigger, pastikan beberapa kolom pertama diisi sebagai berikut, atau isi jika perlu:

    • Jenis pemicu: Sumber Google
    • Penyedia peristiwa: Cloud Pub/Sub
    • Peristiwa: google.cloud.pubsub.topic.v1.messagePublished
  7. Di kolom Select a Cloud Pub/Sub topic, pilih topik yang ada atau klik Create a topic untuk membuat topik baru. Fungsi Anda berlangganan topik ini. Catat nama topik - Anda akan membutuhkannya nanti.

    • Klik Grant jika diminta, untuk mengizinkan layanan Pub/Sub membuat token identitas yang diperlukan untuk memanggil fungsi.
  8. Di kolom Service account, klik Create new service account.

    1. Masukkan nama untuk akun layanan, lalu klik Create. 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 memerlukan pengaktifan 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. Masukkan nama untuk tugas Anda, pilih region untuk menjalankan tugas, dan tambahkan deskripsi jika diinginkan.

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

    30 16 * * 7
    

    Lihat Mengonfigurasi jadwal cron job untuk informasi selengkapnya.

  5. Pilih zona waktu.

  6. Klik Lanjutkan.

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

  8. Pilih topik Pub/Sub Anda.

  9. Tambahkan string Message singkat yang akan dikirim ke target Anda.

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

Sekarang Anda dapat menjalankan tugas yang telah dibuat.

  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 project dapat memerlukan waktu beberapa menit untuk dijalankan saat pertama kali dipanggil, karena konfigurasi yang diperlukan.

  4. Perhatikan kolom Status of last execution. Setelah pekerjaan berjalan, kolom ini akan bertuliskan "{i>Success<i}."

Selamat! Anda baru saja menggunakan konsol untuk melihat hasil menjalankan cron job yang mengirim 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/Second menunjukkan 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 pekerjaan Anda.

  3. Klik Hapus, lalu konfirmasi penghapusan Anda.

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, lalu konfirmasi penghapusan Anda.

Menghapus Cloud Function

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

    Buka Cloud Functions

  2. Pilih kotak centang di samping fungsi Anda.

  3. Klik Hapus, lalu konfirmasi penghapusan Anda.

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, lalu konfirmasi penghapusan Anda.

Menonaktifkan API

Jika Anda mengaktifkan API apa pun selama 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 nonaktifkan 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 membuat project hanya untuk tutorial ini, Anda dapat menghapusnya.

  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.