Membuat dan men-deploy fungsi Cloud Run HTTP dengan Node.js
Dokumen ini akan menjelaskan proses pembuatan fungsi HTTP fungsi Cloud Run sederhana. Ini adalah salah satu dari dua jenis fungsi Cloud Run:
- Fungsi HTTP, yang Anda panggil dari permintaan HTTP standar.
- Fungsi berbasis peristiwa, yang dipicu oleh peristiwa di infrastruktur Cloud Anda, seperti pesan pada topik Pub/Sub atau perubahan dalam bucket Cloud Storage.
Untuk mengetahui detail selengkapnya, baca artikel tentang menulis fungsi HTTP dan menulis fungsi berbasis peristiwa.
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.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Make sure that billing is enabled for your Google Cloud project.
-
Aktifkan API Cloud Functions, Cloud Build, Artifact Registry, Cloud Run, and Cloud Logging.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Make sure that billing is enabled for your Google Cloud project.
-
Aktifkan API Cloud Functions, Cloud Build, Artifact Registry, Cloud Run, and Cloud Logging.
- 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
index.js
di direktorihelloworld
dengan konten berikut:Fungsi contoh ini menampilkan pesan "Halo Dunia!" yang ceria ke semua permintaan.
Menentukan dependensi
Dependensi pada Node.js dikelola dengan npm
dan dinyatakan dalam file metadata bernama
package.json
. Anda dapat membuat file ini
secara manual atau dengan perintah npm
.
Untuk membuat file
package.json
dengan perintahnpm
:Jalankan perintah
npm init
dari direktori helloworld. TekanEnter
untuk menerima jawaban default atas pertanyaannya.npm init
Edit file
package.json
untuk menambahkan dependensi functions-framework:"dependencies": { "@google-cloud/functions-framework": "^3.1.0" }
Jika Anda lebih suka membuat file
package.json
secara manual, salin konten berikut ke dalamnya:
Banyak library klien Node.js tersedia untuk digunakan dengan produk Google Cloud dan dapat diinstal sebagai dependensi.
Membuat dan menguji fungsi secara lokal
Untuk menguji fungsi secara lokal sebelum men-deploynya, Anda harus menginstal Functions Framework secara lokal, lalu menjalankan fungsi tersebut.
Jalankan perintah berikut dari direktori
helloworld
untuk menginstal Functions Framework di komputer lokal Anda:npm install @google-cloud/functions-framework
Jalankan perintah ini dari direktori
helloworld
untuk menjalankan fungsi Anda secara lokal:npx @google-cloud/functions-framework --target=helloGET
Uji fungsi Anda dengan membuka
http://localhost:8080
di browser atau dengan menjalankancurl localhost:8080
dari jendela lain.Lihat Mengirim permintaan ke fungsi lokal untuk mengetahui detail selengkapnya.
Fungsi ini menampilkan pesan "Halo Dunia!"
Men-deploy fungsi
Untuk men-deploy fungsi, jalankan
perintah
gcloud functions deploy
di direktori helloworld
:
gcloud functions deploy hello-node-function \
--gen2 \
--runtime=nodejs22 \
--region=REGION \
--source=. \
--entry-point=helloGET \
--trigger-http \
--allow-unauthenticated
Ganti REGION dengan nama region Google Cloud tempat Anda ingin men-deploy fungsi
(misalnya, us-west1
).
Tindakan ini akan men-deploy fungsi sampel Anda dengan runtime nodejs22 di region yang dipilih.
Flag --allow-unauthenticated
opsional memungkinkan Anda menjangkau fungsi
tanpa autentikasi.
Menguji fungsi yang di-deploy
Setelah fungsi di-deploy, catat properti
uri
dari output perintahgcloud functions deploy
, atau ambil dengan perintah berikut:gcloud functions describe hello-node-function \ --region=REGION
Ganti REGION dengan nama region Google Cloud tempat Anda men-deploy fungsi (misalnya,
us-west1
).Buka URL ini di browser Anda atau dengan perintah
curl
berikut:curl FUNCTION_URL
Ganti FUNCTION_URL dengan properti
uri
yang baru saja Anda ambil.Fungsi ini menampilkan pesan "Halo Dunia!" .
Melihat log fungsi Anda
Melihat log dengan alat command line
Anda dapat meninjau log fungsi dengan UI Cloud Logging atau menggunakan Google Cloud CLI.
Untuk melihat log fungsi Anda dengan gcloud CLI, gunakan
perintah
gcloud functions logs read
:
gcloud functions logs read \
--gen2 \
--region=REGION \
--limit=10 \
hello-node-function
Ganti REGION dengan nama region Google Cloud tempat Anda men-deploy fungsi
(misalnya, us-west1
).
Outputnya akan terlihat seperti berikut:
LEVEL: I
NAME: hello-node-function
TIME_UTC: 2023-06-16 18:42:24.956
LOG:
LEVEL: I
NAME: hello-node-function
TIME_UTC: 2023-06-16 18:42:01.692
LOG:
LEVEL: I
NAME: hello-node-function
TIME_UTC: 2023-06-16 18:31:47.711
LOG: Default STARTUP TCP probe succeeded after 1 attempt for container "hello--node--function-1" on port 8080.
LEVEL: I
NAME: hello-node-function
TIME_UTC: 2023-06-16 18:31:46.542
LOG:
LEVEL: I
NAME: hello-node-function
TIME_UTC: 2023-06-16 18:31:27.390
LOG: Default STARTUP TCP probe succeeded after 1 attempt for container "hello--node--function-1" on port 8080.
Melihat log dengan dasbor logging
Untuk melihat log fungsi Anda dengan dasbor logging, buka halaman Ringkasan fungsi Cloud Run, lalu klik nama fungsi Anda dari daftar, lalu klik tab Log.