Membuat dan men-deploy fungsi HTTP Cloud Run menggunakan Java (generasi ke-1)
Panduan ini membawa Anda melalui proses penulisan fungsi Cloud Run menggunakan runtime Java. 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.
Dokumen ini menunjukkan cara membuat fungsi HTTP sederhana dan membangunnya menggunakan Maven atau Gradle.
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 Google Cloud SDK.
- Update dan instal komponen
gcloud
:gcloud components update
- Siapkan lingkungan pengembangan Anda.
Membuat fungsi
Bagian ini menjelaskan cara membuat fungsi.
Maven
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 struktur project untuk memuat direktori sumber dan file sumber.
mkdir -p src/main/java/functions touch src/main/java/functions/HelloWorld.java
Tambahkan konten berikut ke file
HelloWorld.java
:Fungsi contoh ini menghasilkan ucapan "Halo Dunia!"
Gradle
Buat direktori di sistem lokal Anda untuk kode fungsi:
Linux atau Mac OS X:
mkdir ~/helloworld-gradle cd ~/helloworld-gradle
Windows:
mkdir %HOMEPATH%\helloworld-gradle cd %HOMEPATH%\helloworld-gradle
Buat struktur project untuk memuat direktori sumber dan file sumber.
mkdir -p src/main/java/functions touch src/main/java/functions/HelloWorld.java
Tambahkan konten berikut ke file
HelloWorld.java
:Fungsi contoh ini menghasilkan ucapan "Halo Dunia!"
Menentukan dependensi
Langkah berikutnya adalah menyiapkan dependensi:
Maven
Ubah direktori ke direktori helloworld
yang Anda buat di atas, dan buat file pom.xml
:
cd ~/helloworld
touch pom.xml
Untuk mengelola dependensi menggunakan Maven, tentukan dependensi di bagian <dependencies>
di dalam file pom.xml project Anda. Untuk latihan ini, salin konten berikut ke file pom.xml
Anda.
Lihat helloworld untuk mengetahui contoh lengkap berdasarkan Maven.
Gradle
Ubah direktori ke direktori helloworld-gradle
yang Anda buat di atas, lalu buat file build.gradle
:
cd ~/helloworld-gradle
touch build.gradle
Untuk mengelola dependensi menggunakan Gradle, tentukan dependensi dalam file build.gradle project Anda. Untuk latihan ini, salin konten berikut ke file build.gradle
Anda. Perhatikan bahwa file build.gradle
ini menyertakan tugas kustom untuk membantu Anda menjalankan fungsi secara lokal.
Lihat helloworld-gradle untuk mengetahui contoh lengkap berdasarkan Gradle.
Membuat dan menguji secara lokal
Sebelum men-deploy fungsi, Anda dapat membangun dan mengujinya secara lokal:
Maven
Jalankan perintah berikut untuk mengonfirmasi bahwa fungsi Anda di-build:
mvn compile
Opsi lainnya adalah menggunakan perintah mvn package
untuk mengompilasi kode Java, menjalankan pengujian, dan mengemas kode ke dalam file JAR dalam direktori target. Anda dapat mempelajari lebih lanjut siklus proses build Maven di sini.
Untuk menguji fungsi, jalankan perintah berikut:
mvn function:run
Gradle
Jalankan perintah berikut untuk mengonfirmasi bahwa fungsi Anda dibangun:
gradle build
Untuk menguji fungsi, jalankan perintah berikut:
gradle runFunction -Prun.functionTarget=functions.HelloWorld
Jika berhasil diselesaikan, pengujian akan menampilkan URL yang dapat Anda buka 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!
Men-deploy cloud function
Maven
Untuk men-deploy fungsi dengan pemicu HTTP, jalankan perintah berikut di direktori helloworld
:
gcloud functions deploy my-first-function --entry-point functions.HelloWorld --runtime java17 --trigger-http --memory 512MB --allow-unauthenticated
dengan my-first-function
adalah nama terdaftar yang akan digunakan untuk mengidentifikasi fungsi Anda di Konsol Google Cloud, dan --entry-point
menentukan nama class yang sepenuhnya memenuhi syarat (FQN) dari fungsi Anda.
Gradle
Untuk men-deploy fungsi dengan pemicu HTTP, jalankan perintah berikut di direktori helloworld-gradle
:
gcloud functions deploy my-first-function --entry-point functions.HelloWorld --runtime java17 --trigger-http --memory 512MB --allow-unauthenticated
dengan my-first-function
adalah nama terdaftar yang akan digunakan untuk mengidentifikasi fungsi Anda di Konsol Google Cloud, dan --entry-point
menentukan nama class yang sepenuhnya memenuhi syarat (FQN) dari fungsi Anda.
Menguji fungsi yang di-deploy
Setelah fungsi selesai di-deploy, catat properti
httpsTrigger.url
atau temukan menggunakan perintah berikut:gcloud functions describe my-first-function
Kodenya akan terlihat seperti berikut:
https://GCP_REGION-PROJECT_ID.cloudfunctions.net/my-first-function
Kunjungi URL ini di browser Anda. Anda akan melihat pesan
Hello World!
.
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 my-first-function
Output akan terlihat seperti berikut:
LEVEL NAME EXECUTION_ID TIME_UTC LOG D my-first-function k2bqgroszo4u 2020-07-24 18:18:01.791 Function execution started D my-first-function k2bqgroszo4u 2020-07-24 18:18:01.958 Function execution took 168 ms, finished with status code: 200 ...
Menggunakan dasbor Logging
Anda juga dapat melihat log untuk fungsi Cloud Run dari Konsol Google Cloud.