Menjadwalkan Cloud Function HTTP


Tutorial ini menunjukkan cara memicu Cloud Function HTTP menggunakan Cloud Scheduler dan dengan menargetkan endpoint HTTP. Gunakan fungsi HTTP saat Anda memerlukan fungsi untuk memiliki endpoint URL dan merespons permintaan HTTP, seperti untuk webhook.

Perlu diperhatikan bahwa Anda juga dapat menjadwalkan fungsi berbasis peristiwa saat fungsi Anda akan dipicu langsung sebagai respons terhadap peristiwa dalam project Google Cloud, seperti pesan di topik Pub/Sub atau perubahan dalam bucket Cloud Storage. Untuk mengetahui informasi lebih lanjut, baca artikel Jenis Cloud Functions.

Menjadwalkan eksekusi Cloud Function adalah kasus penggunaan umum untuk Cloud Scheduler. Dalam tutorial ini, Anda akan:

  1. Membuat HTTP Cloud Function sederhana.
  2. Buat tugas Cloud Scheduler.
  3. Jalankan tugas Cloud Scheduler.
  4. Pastikan Cloud Function dipicu oleh tugas Cloud Scheduler.

Biaya

Dalam dokumen ini, Anda menggunakan komponen Google Cloud yang dapat ditagih berikut:

Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda, gunakan kalkulator harga. Pengguna baru Google Cloud mungkin memenuhi syarat untuk mendapatkan uji coba gratis.

Sebelum memulai

  1. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  2. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  3. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  4. Enable the Cloud Build, Cloud Functions, Cloud Run Admin, Cloud Scheduler APIs.

    Enable the APIs

  5. Buat akun layanan:

    1. Di konsol Google Cloud, buka halaman Buat akun layanan.

      Buka Create service account
    2. Pilih project Anda.
    3. Di kolom Nama akun layanan, masukkan nama. Konsol Google Cloud akan mengisi kolom ID akun layanan berdasarkan nama ini.

      Di kolom Deskripsi akun layanan, masukkan sebuah deskripsi. Sebagai contoh, Service account for quickstart.

    4. Klik Buat dan lanjutkan.
    5. Berikan peran Cloud Run > Cloud Run Invoker ke akun layanan.

      Untuk memberikan peran, temukan daftar Pilih peran, lalu pilih Cloud Run > Cloud Run Invoker.

    6. Klik Lanjutkan.
    7. Klik Selesai untuk menyelesaikan pembuatan akun layanan.

  6. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  7. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  8. Enable the Cloud Build, Cloud Functions, Cloud Run Admin, Cloud Scheduler APIs.

    Enable the APIs

  9. Buat akun layanan:

    1. Di konsol Google Cloud, buka halaman Buat akun layanan.

      Buka Create service account
    2. Pilih project Anda.
    3. Di kolom Nama akun layanan, masukkan nama. Konsol Google Cloud akan mengisi kolom ID akun layanan berdasarkan nama ini.

      Di kolom Deskripsi akun layanan, masukkan sebuah deskripsi. Sebagai contoh, Service account for quickstart.

    4. Klik Buat dan lanjutkan.
    5. Berikan peran Cloud Run > Cloud Run Invoker ke akun layanan.

      Untuk memberikan peran, temukan daftar Pilih peran, lalu pilih Cloud Run > Cloud Run Invoker.

    6. Klik Lanjutkan.
    7. Klik Selesai untuk menyelesaikan pembuatan akun layanan.

  10. Perhatikan bahwa Anda harus memberikan peran Cloud Run Invoker karena di Cloud Functions (generasi ke-2), izin pemanggilan tersedia dengan mengelola layanan Cloud Run yang mendasarinya.

  11. Secara default, Cloud Functions menggunakan akun layanan Compute Engine default yang dibuat 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 akun layanan peran berikut:
    1. Penulis Artifact Registry (roles/artifactregistry.writer)
    2. Penulis Log (roles/logging.logWriter)
    3. Storage Object Viewer (roles/storage.objectViewer)

Membuat HTTP Cloud Function

Membuat fungsi HTTP yang dipicu oleh Cloud Scheduler.

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

    Buka Cloud Functions

  2. Klik Create function.

  3. Di bagian Dasar-dasar, lakukan hal berikut:

    1. Di daftar Environment, pilih 2nd generasi.
    2. Masukkan nama untuk fungsi Anda.
    3. Dalam daftar Region, pilih region.
  4. Di bagian Pemicu, lakukan hal berikut:

    1. Dalam daftar Jenis pemicu, pilih HTTPS.
    2. Untuk autentikasi, pilih Wajibkan autentikasi.

      Untuk mengetahui informasi selengkapnya, lihat Autentikasi untuk pemanggilan (generasi ke-2).

  5. Terima setelan default lainnya, lalu klik Next.

  6. Jangan ubah bahasa runtime default dan kode contoh. Kode ini tidak menggunakan layanan cloud apa pun dan tidak perlu mengaktifkan izin tambahan. Klik Deploy.

  7. Setelah fungsi berhasil di-deploy, klik tab Trigger.

  8. Salin URL HTTP untuk fungsi.

Buat tugas Cloud Scheduler

Membuat tugas Cloud Scheduler yang memicu tindakan menggunakan HTTP.

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

    Buka Cloud Scheduler

  2. Klik Buat tugas.

  3. Masukkan nama untuk pekerjaan Anda.

  4. Dalam daftar Region, pilih region.

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

    30 16 * * 7
    

    Untuk mengetahui informasi selengkapnya, lihat Format tugas dan zona waktu Cron.

  6. Dalam daftar Zona Waktu, pilih zona waktu.

  7. Klik Lanjutkan.

  8. Dalam daftar Target type, pilih HTTP.

  9. Di kolom URL, masukkan URL HTTP fungsi yang sebelumnya Anda salin.

  10. Di daftar Auth header, pilih Add OIDC token.

  11. Dalam daftar Service account, pilih akun layanan yang telah Anda buat sebelumnya.

  12. Di kolom Audience, masukkan URL HTTP fungsi yang sebelumnya Anda salin.

  13. Klik Create.

Anda telah membuat cron job yang menjalankan Cloud Function pada pukul 16.30 pada hari Minggu.

Menjalankan tugas Cloud Scheduler

Sekarang Anda dapat menjalankan tugas yang dibuat.

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

    Buka Cloud Scheduler

  2. Centang kotak untuk tugas yang Anda buat, lalu klik Force run.

    Saat pertama kali dipanggil, tugas pertama yang dibuat dalam project dapat memerlukan waktu beberapa menit untuk dikonfigurasi dan dijalankan.

  3. Setelah tugas berjalan, Status eksekusi terakhir akan menunjukkan Success.

Memverifikasi hasilnya di Cloud Functions

Anda dapat memastikan bahwa Cloud Function berhasil dipicu dan dijalankan oleh cron job Anda.

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

    Buka Cloud Functions

  2. Klik nama fungsi.

    Halaman Detail fungsi akan terbuka dan grafik Invocations/Second menampilkan pemanggilan fungsi pertama Anda.

  3. Klik tab Logs.

    Anda akan melihat entri log yang mirip dengan POST 200 146 B 5 ms Google-Cloud-Scheduler https://REGION-PROJECT_ID.cloudfunctions.net/FUNCTION_NAME

Pembersihan

Agar tidak dikenakan 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-nya.

Hapus project

  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.

Menghapus resource tutorial

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

    Buka Cloud Scheduler

  2. Centang kotak di samping pekerjaan Anda.

  3. Klik Delete, lalu konfirmasi penghapusan.

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

    Buka Cloud Functions

  5. Pilih kotak centang di samping fungsi Anda.

  6. Klik Delete, lalu konfirmasi penghapusan.

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

    Buka Akun Layanan

  8. Centang kotak di samping akun layanan yang Anda buat.

  9. Klik Delete, lalu konfirmasi penghapusan.

Langkah selanjutnya