Tutorial ini menunjukkan cara men-deploy fungsi HTTP dengan mengupload file zip kode sumber fungsi ke bucket Cloud Storage, menggunakan Terraform untuk menyediakan resource. Terraform adalah alat open source yang dapat Anda gunakan untuk menyediakan resource Google Cloud dengan file konfigurasi deklaratif.
Tutorial ini menggunakan fungsi HTTP Node.js sebagai contoh, tetapi juga dapat digunakan dengan fungsi HTTP Python, Go, dan Java. Petunjuknya tetap sama, apa pun runtime yang Anda gunakan.
Tujuan
- Pelajari cara menggunakan Terraform untuk men-deploy fungsi HTTP.
Biaya
Dalam dokumen ini, Anda akan menggunakan komponen Google Cloud yang dapat ditagih berikut:
For details, see Cloud Run functions pricing.
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda,
gunakan kalkulator harga.
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, Cloud Run, Cloud Build, Artifact Registry, and Cloud Storage APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
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, Cloud Run, Cloud Build, Artifact Registry, and Cloud Storage APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Menyiapkan lingkungan pengembangan.
Jika Anda sudah menginstal gcloud CLI, update dengan menjalankan perintah berikut:
gcloud components update
Menyiapkan lingkungan Anda
Dalam tutorial ini, Anda akan menjalankan perintah di Cloud Shell. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, termasuk Google Cloud CLI, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Cloud Shell dapat memerlukan waktu beberapa menit untuk proses inisialisasi:
Menyiapkan aplikasi
Di Cloud Shell, lakukan langkah-langkah berikut:
Clone repositori aplikasi contoh ke instance Cloud Shell Anda:
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
Ubah ke direktori yang berisi contoh kode contoh fungsi Cloud Run:
cd nodejs-docs-samples/functions
Contoh Node.js yang digunakan dalam tutorial ini adalah fungsi HTTP "Halo Dunia" dasar.
Membuat file main.tf
Di direktori
nodejs-docs-samples/functions/
, buat filemain.tf
untuk konfigurasi Terraform:touch main.tf
Salin konfigurasi Terraform ini ke dalam file
main.tf
Anda:Edit file
main.tf
untuk memastikannya memiliki nilai yang benar untuk item berikut. Anda perlu mengedit file ini setiap kali konfigurasi berubah (misalnya, untuk menggunakan runtime yang berbeda atau men-deploy fungsi yang berbeda):- Runtime: Dalam contoh ini, ganti
nodejs16
dengan runtime Node.js terbarunodejs22
. - Titik entri fungsi: Dalam contoh ini, titik masuk fungsi adalah
helloHttp
. - Jalur ke direktori sumber: Dalam contoh ini, ubah
source_dir
menjadihelloworld/helloworldHttp
. - Konfigurasi
member="allUsers"
IAM tidak akan berhasil jika project Anda berada dalam kebijakan organisasi pembatasan domain yang membatasi pemberian peran IAM ke akun utamaallUsers
. Gunakan dengan hati-hati dalam produksi dan pertimbangkan daftar anggota yang lebih dibatasi jika memungkinkan.
- Runtime: Dalam contoh ini, ganti
Lakukan inisialisasi Terraform
Dalam direktori nodejs-docs-samples/functions/
yang berisi file
main.tf
, jalankan perintah ini untuk menambahkan plugin yang diperlukan dan membuat direktori
.terraform
:
terraform init
Menerapkan konfigurasi Terraform
Dalam direktori nodejs-docs-samples/functions/
yang berisi file main.tf
Anda, deploy fungsi dengan menerapkan konfigurasi. Saat diminta, masukkan
yes
:
terraform apply
Menguji fungsi
Setelah fungsi selesai di-deploy, catat properti URI atau temukan menggunakan perintah berikut:
gcloud functions describe function-v2 --gen2 --region=us-central1 --format="value(serviceConfig.uri)"
Buat permintaan ke URL ini untuk melihat pesan "Halo Dunia" dari fungsi Anda. Perhatikan bahwa fungsi yang di-deploy memerlukan autentikasi. Oleh karena itu, Anda harus memberikan kredensial dalam permintaan Anda:
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" YOUR_FUNCTION_URL
Pembersihan
Setelah menyelesaikan tutorial, Anda dapat menghapus semua yang telah dibuat sehingga tidak menimbulkan biaya lebih lanjut.
Terraform memungkinkan Anda menghapus semua resource yang ditentukan dalam file konfigurasi dengan
menjalankan perintah terraform destroy
di direktori
nodejs-docs-samples/functions/
yang berisi file main.tf
Anda:
terraform destroy
Masukkan yes
untuk mengizinkan Terraform menghapus resource Anda.