Tutorial ini menunjukkan cara menerapkan fungsi Pub/Sub 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 Google Cloud resource dengan file konfigurasi deklaratif
Tutorial ini menggunakan fungsi Node.js sebagai contoh, tetapi juga dapat digunakan dengan fungsi Python, Go, dan Java. Petunjuknya sama, terlepas dari runtime mana yang Anda gunakan. Lihat halaman referensi Hashicorp untuk mengetahui detail tentang cara menggunakan Terraform dengan Cloud Functions v2 API.
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/terraform-google-modules/terraform-docs-samples.git
Ubah ke direktori yang berisi kode contoh fungsi Cloud Run:
cd terraform-docs-samples/functions/pubsub
Contoh Node.js yang digunakan dalam tutorial ini adalah fungsi Pub/Sub "Halo Dunia" dasar. Berikut adalah file
main.tf
:
Lakukan inisialisasi Terraform
Dalam direktori terraform-docs-samples/functions/pubsub
yang berisi file
main.tf
, jalankan perintah ini untuk menambahkan plugin yang diperlukan dan membuat direktori
.terraform
:
terraform init
Memvalidasi konfigurasi Terraform
Lihat pratinjau konfigurasi Terraform. Langkah ini bersifat opsional, tetapi memungkinkan Anda
memverifikasi bahwa sintaksis main.tf
sudah benar. Perintah ini menampilkan
pratinjau resource yang akan dibuat:
terraform plan
Menerapkan konfigurasi Terraform
Deploy fungsi dengan menerapkan konfigurasi. Saat diminta, masukkan yes
.
terraform apply
Memicu fungsi
Untuk menguji fungsi Pub/Sub:
Memublikasikan pesan ke topik (dalam contoh ini, nama topiknya adalah
functions2-topic
):gcloud pubsub topics publish TOPIC_NAME --message="Friend"
Baca log fungsi untuk melihat hasilnya, dengan
FUNCTION_NAME
adalah nama fungsi Anda (dalam contoh ini, nama fungsi adalahfunction
):gcloud functions logs read FUNCTION_NAME
Anda akan melihat output logging yang menyertakan pesan "Teman" baru.
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
:
terraform destroy
Masukkan yes
untuk mengizinkan Terraform menghapus resource Anda.