Membuat dan men-deploy fungsi Cloud Run HTTP menggunakan Ruby (generasi ke-1)
Panduan ini akan memandu Anda dalam proses penulisan fungsi Cloud Run menggunakan runtime Ruby. 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 infrastruktur Cloud, seperti pesan di topik Pub/Sub, atau perubahan dalam bucket Cloud Storage.
Contoh ini menunjukkan cara membuat fungsi HTTP sederhana.
Sebelum memulai
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Functions and Cloud Build APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Functions and Cloud Build APIs.
- Instal dan lakukan inisialisasi gcloud CLI.
- Update dan instal komponen
gcloud
:gcloud components update
- Siapkan lingkungan pengembangan Anda.
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
app.rb
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
Dependensi pada Ruby dikelola dengan bundler dan dinyatakan dalam file bernama
Gemfile
.
Saat Anda men-deploy fungsi, fungsi Cloud Run akan mendownload dan menginstal dependensi yang dideklarasikan di Gemfile
dan Gemfile.lock
menggunakan bundler
.
Gemfile
mencantumkan paket yang diperlukan oleh fungsi Anda, beserta
batasan versi opsional apa pun. Untuk fungsi Cloud Run, salah satu paket ini harus berupa gem functions_framework
.
Untuk latihan ini, buat file bernama Gemfile
di direktori yang sama dengan
file app.rb
yang berisi kode fungsi Anda, dengan konten berikut:
source "https://rubygems.org" gem "functions_framework", "~> 0.7"
Jalankan perintah berikut untuk menginstal gem functions_framework
dan dependensi
lainnya:
bundle install
Membuat dan menguji secara lokal
Sebelum men-deploy fungsi, Anda dapat membuat dan mengujinya secara lokal.
Jalankan perintah berikut untuk menggunakan functions-framework-ruby
yang dapat dieksekusi guna
memulai server web lokal yang menjalankan fungsi hello_http
Anda:
bundle exec functions-framework-ruby --target hello_http
# ...starts the web server in the foreground
Jika fungsi berhasil dibuat, fungsi tersebut akan menampilkan URL yang dapat Anda kunjungi di
browser web untuk melihat cara kerja fungsi:
http://localhost:8080/
. Anda akan melihat pesan Hello World!
.
Atau, Anda dapat mengirim permintaan ke fungsi ini menggunakan curl
dari jendela terminal lain:
curl localhost:8080
# Output: Hello World!
Lihat Menguji Functions dalam dokumentasi Ruby Functions Framework.
Men-deploy cloud function
Untuk men-deploy fungsi dengan pemicu HTTP, jalankan perintah
berikut di direktori helloworld
:
gcloud functions deploy hello_http --no-gen2 --runtime ruby33 --trigger-http --allow-unauthenticated
Flag --allow-unauthenticated
memungkinkan Anda menjangkau fungsi tanpa autentikasi.
Untuk mewajibkan autentikasi, hilangkan flag.
Menguji fungsi yang di-deploy
Setelah fungsi selesai di-deploy, catat properti
httpsTrigger.url
atau temukan menggunakan perintah berikut:gcloud functions describe hello_http
Kodenya akan terlihat seperti berikut:
https://GCP_REGION-PROJECT_ID.cloudfunctions.net/hello_http
Kunjungi URL ini di browser Anda. Anda akan melihat pesan "Halo Dunia!".
Coba teruskan nama dalam permintaan HTTP, misalnya dengan menggunakan URL berikut:
https://GCP_REGION-PROJECT_ID.cloudfunctions.net/hello_http?name=NAME
Anda akan melihat pesan "Halo
NAME
!"
Lihat log
Anda dapat melihat log fungsi Cloud Run di UI Cloud Logging atau melalui Google Cloud CLI.
Melihat log dengan alat command line
Untuk melihat log fungsi Anda dengan gcloud CLI, gunakan
perintah logs read
, diikuti dengan
nama fungsi:
gcloud functions logs read hello_http
Output akan terlihat seperti berikut:
LEVEL NAME EXECUTION_ID TIME_UTC LOG D helloHttp rvb9j0axfclb 2019-09-18 22:06:25.983 Function execution started D helloHttp rvb9j0axfclb 2019-09-18 22:06:26.001 Function execution took 19 ms, finished with status code: 200
Melihat log di dasbor Logging
Anda juga dapat melihat log untuk fungsi Cloud Run dari Konsol Google Cloud.