Tutorial ini menunjukkan cara memicu fungsi HTTP Cloud Run menggunakan Cloud Scheduler dan dengan menargetkan endpoint HTTP. Gunakan fungsi HTTP saat fungsi Anda perlu memiliki endpoint URL dan merespons permintaan HTTP, seperti halnya webhook.
Perhatikan bahwa Anda juga dapat menjadwalkan fungsi berbasis peristiwa saat Anda fungsi harus dipicu langsung sebagai respons terhadap peristiwa dalam Project Google Cloud, seperti pesan tentang topik Pub/Sub atau perubahan bucket Cloud Storage. Untuk informasi selengkapnya, lihat Jenis fungsi Cloud Run.
Menjadwalkan eksekusi fungsi Cloud Run adalah proses umum untuk Cloud Scheduler. Dalam tutorial ini, Anda akan:
- Membuat fungsi HTTP Cloud Run sederhana.
- Buat tugas Cloud Scheduler.
- Jalankan tugas Cloud Scheduler.
- Pastikan bahwa fungsi Cloud Run dipicu oleh 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.
Sebelum memulai
- 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.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
-
Aktifkan API Cloud Build, Cloud Functions, Cloud Run Admin, Cloud Scheduler.
-
Buat akun layanan:
-
Di konsol Google Cloud, buka halaman Buat akun layanan.
Buka Create service account - Pilih project Anda.
-
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
. - Klik Buat dan lanjutkan.
-
Berikan peran Cloud Run > Cloud Run Invoker ke akun layanan.
Untuk memberikan peran, temukan daftar Pilih peran, lalu pilih Cloud Run > Cloud Run Invoker.
- Klik Lanjutkan.
-
Klik Selesai untuk menyelesaikan pembuatan akun layanan.
-
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
-
Aktifkan API Cloud Build, Cloud Functions, Cloud Run Admin, Cloud Scheduler.
-
Buat akun layanan:
-
Di konsol Google Cloud, buka halaman Buat akun layanan.
Buka Create service account - Pilih project Anda.
-
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
. - Klik Buat dan lanjutkan.
-
Berikan peran Cloud Run > Cloud Run Invoker ke akun layanan.
Untuk memberikan peran, temukan daftar Pilih peran, lalu pilih Cloud Run > Cloud Run Invoker.
- Klik Lanjutkan.
-
Klik Selesai untuk menyelesaikan pembuatan akun layanan.
-
- Secara default, fungsi Cloud Run menggunakan
akun layanan Compute Engine default
untuk akun layanan runtime-nya. Anda dapat menggunakan akun layanan ini untuk mencobanya
dalam tutorial ini. Namun, bergantung pada konfigurasi kebijakan organisasi Anda,
akun layanan default mungkin tidak
otomatis diberi peran Editor di
pada proyek Anda. Jika demikian, Anda harus
memberi akun layanan
peran berikut:
- Penulis Artifact Registry (
roles/artifactregistry.writer
) - Penulis Log (
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 kunci layanan Cloud Run.
Membuat fungsi HTTP Cloud Run
Membuat fungsi HTTP yang dipicu oleh Cloud Scheduler.
Di konsol Google Cloud, buka Cloud Run functions kami.
Klik
Buat fungsi.Di bagian Dasar-dasar, lakukan hal berikut:
- Di daftar Environment, pilih 2nd generasi.
- Masukkan nama untuk fungsi Anda.
- Dalam daftar Region, pilih region.
Di bagian Pemicu, lakukan hal berikut:
- Dalam daftar Jenis pemicu, pilih HTTPS.
Untuk autentikasi, pilih Wajibkan autentikasi.
Untuk informasi selengkapnya, lihat Autentikasi untuk pemanggilan (generasi ke-2).
Terima setelan default lainnya, lalu klik Next.
Jangan ubah bahasa runtime default dan kode contoh. Kode melakukan tidak menggunakan layanan {i>cloud<i} apa pun dan tidak perlu mengaktifkan izin tambahan. Klik Deploy.
Setelah fungsi berhasil di-deploy, klik tab Trigger.
Salin URL HTTP untuk fungsi.
Buat tugas Cloud Scheduler
Membuat tugas Cloud Scheduler yang memicu tindakan menggunakan HTTP.
Di konsol Google Cloud, buka halaman Cloud Scheduler.
Klik Klik
Buat tugas.Masukkan nama untuk pekerjaan Anda.
Dalam daftar Region, pilih region.
Tentukan frekuensi untuk tugas Anda, menggunakan format unix-cron:
30 16 * * 7
Untuk informasi selengkapnya, lihat Format tugas dan zona waktu cron.
Dalam daftar Zona Waktu, pilih zona waktu.
Klik Lanjutkan.
Dalam daftar Target type, pilih HTTP.
Di kolom URL, masukkan URL HTTP fungsi yang sebelumnya Anda disalin.
Di daftar Auth header, pilih Add OIDC token.
Dalam daftar Service account, pilih akun layanan yang sebelumnya dibuat.
Di kolom Audience, masukkan URL HTTP fungsi yang sebelumnya disalin.
Klik Create.
Anda telah membuat cron job yang menjalankan fungsi Cloud Run pada pukul 16.30 pada Minggu.
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 Force run.
Saat pertama kali dipanggil, tugas pertama yang dibuat dalam proyek dapat mengambil beberapa menit untuk mengkonfigurasi dan menjalankannya.
Setelah tugas berjalan, Status eksekusi terakhir akan menunjukkan
Success
.
Memverifikasi hasilnya di fungsi Cloud Run
Anda dapat memverifikasi bahwa fungsi Cloud Run berhasil dipicu dan dieksekusi oleh cron job Anda.
Di konsol Google Cloud, buka halaman Cloud Run functions.
Klik nama fungsi.
Halaman Detail fungsi akan terbuka dan grafik Invocations/Second menunjukkan pemanggilan pertama fungsi tersebut.
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 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
- Di konsol Google Cloud, buka halaman Manage resource.
- Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
- Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus 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 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.