Resource Null dan Pemicu
Kenali `null_resource` untuk menjalankan perintah arbitrer yang tidak terkait dengan resource cloud nyata, lalu gunakan pemicu untuk mengatur kapan provisioner dijalankan.
Resource Null dan Pemicu adalah pelajaran Terraform Infrastructure as Code gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Terraform Infrastructure as Code, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Terraform Infrastructure as Code mencakup 4 pelajaran total.
Apa itu null_resource?
null_resource Terraform adalah jenis sumber daya khusus yang tidak secara langsung membuat atau mengelola objek infrastruktur apa pun di penyedia layanan awan Anda.
Sebagai gantinya, sumber daya ini berfungsi sebagai tempat penampung untuk menjalankan perintah atau skrip sembarang, yang sering digunakan untuk tugas di luar cakupan penyediaan sumber daya biasa.
Mengapa Menggunakan null_resource?
Anda mungkin bertanya-tanya mengapa memerlukan sumber daya “null”. Sumber daya ini sangat berguna untuk:
- Menjalankan Skrip Lokal: Menjalankan perintah pada mesin tempat Terraform dijalankan (misalnya, menyiapkan berkas konfigurasi).
- Tindakan Pascapenerapan: Melakukan tugas penyiapan atau pembersihan setelah sumber daya sebenarnya disediakan.
- Berinteraksi dengan API Eksternal: Saat tidak ada penyedia Terraform khusus untuk layanan tertentu.
- Logika Khusus: Mengatur langkah-langkah khusus yang tidak terkait dengan sumber daya awan tertentu.
Struktur Dasar null_resource
Blok null_resource terlihat seperti sumber daya Terraform lainnya. Jika berdiri sendiri, tanpa penyediaan atau pemicu apa pun, blok ini hanya membuat objek “null” dalam status Terraform dan tidak melakukan hal lain.
Blok ini biasanya dipasangkan dengan penyediaan untuk menjalankan perintah, serta pemicu untuk mengendalikan kapan perintah tersebut dijalankan.
Contoh Sederhana null_resource
Berikut adalah null_resource minimal. Jika Anda menjalankan terraform apply untuk ini, sumber daya tersebut akan dibuat dalam status, tetapi tidak ada tindakan eksternal yang terjadi.
Sumber daya ini hanya merupakan tempat penampung yang siap ditingkatkan dengan berbagai tindakan.
resource "null_resource" "my_placeholder" {
# This resource exists in state but performs no action.
# It's ready to attach provisioners or triggers.
}Penyediaan dengan null_resource
Kekuatan sebenarnya null_resource terlihat saat Anda menggabungkannya dengan penyediaan.
Penyediaan memungkinkan Anda menjalankan skrip atau perintah pada mesin yang menjalankan Terraform (local-exec) atau pada sumber daya jarak jauh itu sendiri (remote-exec, meskipun lebih jarang digunakan dengan null_resource).
Dengan demikian, null_resource dapat menjadi pelaksana tindakan.
Memperkenalkan Pemicu
triggers adalah peta pasangan kunci-nilai sembarang yang ditentukan di dalam blok null_resource.
Tujuannya adalah memberi tahu Terraform: “Jika ada nilai dalam peta ini yang berubah, null_resource ini (beserta penyediaannya) perlu dijalankan kembali.”
Mekanisme ini penting agar null_resource dapat merespons perubahan dalam infrastruktur Anda.
Cara Kerja Pemicu
Saat suatu nilai dalam peta triggers berubah, Terraform mendeteksi adanya modifikasi pada null_resource.
Selama terraform apply, Terraform kemudian akan:
- Menghancurkan
null_resourceyang ada (jika ada). - Membuat ulang
null_resource. - Menjalankan kembali penyediaan yang terkait.
Mekanisme ini memastikan bahwa tindakan khusus Anda hanya dijalankan saat dependensi yang relevan berubah.
Contoh: Pemicu & local-exec
Di sini, kita menggunakan null_resource untuk menyimulasikan pembaruan berkas konfigurasi berdasarkan variabel sederhana. Penyediaan local-exec menjalankan suatu perintah, sedangkan triggers memastikan perintah tersebut dijalankan kembali jika var.app_version berubah.
variable "app_version" {
description = "The version of the application."
type = string
default = "1.0.0"
}
resource "null_resource" "update_config_file" {
triggers = {
version_change = var.app_version
}
provisioner "local-exec" {
command = "echo 'Config updated for version: ${self.triggers.version_change}' > app_config.txt"
}
}Praktik Terbaik & Alternatif
Meskipun andal, gunakan null_resource secara bijaksana:
- Utamakan Penyedia: Jika tersedia penyedia atau sumber daya Terraform khusus untuk suatu tugas, gunakan itu sebagai gantinya.
- Pastikan Idempoten: Pastikan skrip yang dijalankan oleh penyediaan dapat dijalankan ulang beberapa kali dengan aman tanpa efek samping.
- Hindari Pengelolaan Status: Jangan mencoba mengelola status eksternal dengan
null_resource; gunakan backend status jarak jauh untuk keperluan tersebut. - Pertimbangkan Sumber Data
external: Untuk logika eksternal kompleks yang mengembalikan data terstruktur, sumber dataexternalmungkin merupakan alternatif yang lebih baik.
Pemeriksaan Singkat: Sumber Daya Null
Anda telah mempelajari null_resource dan triggers. Mari uji pemahaman Anda.
Rangkuman: Null & Pemicu
Dalam pelajaran ini, Anda telah menemukan fleksibilitas null_resource milik Terraform, yaitu alat yang andal untuk menjalankan perintah dan skrip khusus yang tidak sesuai dengan sumber daya awan konkret.
Anda juga telah mempelajari triggers, yaitu mekanisme dalam null_resource yang memungkinkan Anda menentukan dependensi dan memastikan penyediaan dijalankan kembali setiap kali dependensi tersebut berubah. Dengan demikian, otomatisasi khusus dalam infrastruktur sebagai kode Anda dapat berjalan secara dinamis dan reaktif.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Resource Null dan Pemicu” gratis?
Ya — teks lengkap “Resource Null dan Pemicu” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Terraform Infrastructure as Code, upgrade ke CoddyKit PRO. Kursus Terraform Infrastructure as Code mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Resource Null dan Pemicu”?
Kenali `null_resource` untuk menjalankan perintah arbitrer yang tidak terkait dengan resource cloud nyata, lalu gunakan pemicu untuk mengatur kapan provisioner dijalankan. Kamu berlatih Terraform Infrastructure as Code dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Terraform Infrastructure as Code?
Tidak diperlukan pengalaman sebelumnya. Terraform Infrastructure as Code di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Resource Null dan Pemicu” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Terraform Infrastructure as Code ini?
Ya. Setiap pelajaran Terraform Infrastructure as Code menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Membuat Kueri Data dengan Sumber Data
- Provisioner local-exec dan remote-exec
- Resource Null dan Pemicu
- Menggunakan Data Eksternal dan Templat