Membuat dan men-deploy fungsi HTTP Cloud Run menggunakan Go (generasi ke-1)
Panduan ini membawa Anda melalui proses penulisan fungsi Cloud Run menggunakan runtime Go. Ada dua jenis fungsi Cloud Run:
- Fungsi HTTP, yang Anda panggil dari permintaan HTTP standar.
- Fungsi berbasis peristiwa, yang Anda gunakan untuk menangani peristiwa dari Cloud infrastruktur IT, seperti pesan pada topik Pub/Sub, atau perubahan bucket Cloud Storage.
Contoh ini menunjukkan cara membuat fungsi HTTP sederhana.
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 Functions and Cloud Build.
-
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 Functions and Cloud Build.
- Instal dan lakukan inisialisasi gcloud CLI.
- Update dan instal komponen
gcloud
:gcloud components update
- Menyiapkan lingkungan pengembangan.
Membuat fungsi
Buat direktori di sistem lokal Anda untuk kode fungsi:
Linux atau Mac OS X
mkdir ~/helloworld cd ~/helloworld
Windows
mkdir %HOMEPATH%\helloworld cd %HOMEPATH%\helloworld
Buat file bernama
hello_http.go
di direktorihelloworld
dengan konten berikut:Fungsi contoh ini mengambil nama yang diberikan dalam permintaan HTTP dan menampilkan salam, atau "Halo Dunia!" jika tidak ada nama yang diberikan.
Menentukan dependensi
Fungsi contoh ini hanya menggunakan paket library standar Go, sehingga Anda tidak perlu mendeklarasikan dependensi apa pun selain mengimpor paket.
Untuk fungsi yang memerlukan dependensi di luar library standar, Anda harus menyediakan dependensi melalui file go.mod
atau direktori vendor
. Untuk detail selengkapnya, baca
Menentukan dependensi di Go.
Men-deploy cloud function
Untuk men-deploy fungsi dengan pemicu HTTP, jalankan perintah berikut di direktori helloworld
, yang menentukan go113
atau go111
sebagai nilai untuk flag --runtime
, bergantung pada versi yang Anda
gunakan:
gcloud functions deploy HelloHTTP --runtime go121 --trigger-http --allow-unauthenticated
Flag --allow-unauthenticated
memungkinkan Anda menjangkau fungsi tanpa autentikasi.
Untuk mewajibkan autentikasi, hilangkan flag.
Menguji fungsi
Setelah fungsi selesai di-deploy, catat properti
httpsTrigger.url
atau temukan menggunakan perintah berikut:gcloud functions describe HelloHTTP
Kodenya akan terlihat seperti berikut:
https://GCP_REGION-PROJECT_ID.cloudfunctions.net/HelloHTTP
Kunjungi URL ini di browser, atau gunakan cURL dengan menjalankan perintah:
curl https://GCP_REGION-PROJECT_ID.cloudfunctions.net/HelloHTTP
Anda akan melihat pesan "Halo Dunia!". Coba teruskan nama dalam permintaan HTTP dengan menjalankan perintah berikut:
curl -X POST https://GCP_REGION-PROJECT_ID.cloudfunctions.net/HelloHTTP -H "Content-Type:application/json" -d '{"name":"NAME"}'
Anda akan melihat pesan "Halo,
NAME
!"
Lihat log
Log untuk fungsi Cloud Run dapat dilihat menggunakan Google Cloud CLI, dan di UI Cloud Logging.
Menggunakan alat command line
Untuk melihat log fungsi Anda dengan gcloud CLI, gunakan perintah logs read
, diikuti dengan nama fungsi:
gcloud functions logs read HelloHTTP
Output akan terlihat seperti berikut:
LEVEL NAME EXECUTION_ID TIME_UTC LOG D HelloHTTP buv9ej2k1a7r 2019-09-20 13:23:18.910 Function execution started D HelloHTTP buv9ej2k1a7r 2019-09-20 13:23:18.913 Function execution took 4 ms, finished with status code: 200
Menggunakan dasbor Logging
Anda juga dapat melihat log untuk fungsi Cloud Run dari Konsol Google Cloud.