Menggunakan Data Eksternal dan Templat
Masukkan nilai dinamis ke Terraform dengan sumber data eksternal dan hasilkan berkas konfigurasi menggunakan fungsi templatefile.
Menggunakan Data Eksternal dan Templat adalah pelajaran DevOps Bootcamp gratis di CoddyKit. Ini adalah pelajaran 4 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 DevOps Bootcamp, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus DevOps Bootcamp mencakup 4 pelajaran total.
Melampaui Sumber Data Bawaan
Anda sudah menggunakan sumber data untuk melakukan kueri AWS. Terkadang data yang Anda perlukan berada di luar penyedia mana pun, seperti output skrip shell atau API internal. Sumber data external dan fungsi template mengisi celah ini.
Sumber Data external
Sumber data external menjalankan program dan membaca JSON dari stdout-nya. Ini adalah jalan keluar untuk logika yang tidak dapat diekspresikan Terraform secara bawaan.
data "external" "git_sha" {
program = ["bash", "./scripts/git_sha.sh"]
}Kontrak Program
Program eksternal menerima objek JSON melalui stdin dan harus mencetak objek JSON datar yang berisi nilai string ke stdout. Hal lainnya merupakan kesalahan.
#!/bin/bash
echo '{"sha": "abc123"}'Membaca Hasil Eksternal
Akses nilai yang dikembalikan melalui peta result. Setiap nilai berupa string, jadi lakukan konversi jika Anda memerlukan tipe lain.
resource "aws_instance" "app" {
ami = "ami-0abcd1234"
instance_type = "t3.micro"
tags = {
GitSha = data.external.git_sha.result.sha
}
}Kapan Harus Menghindari external
Sumber external berjalan pada setiap plan dan merusak reproduktibilitas jika skripnya tidak deterministik. Utamakan sumber data penyedia yang sebenarnya jika tersedia; gunakan external hanya untuk celah yang benar-benar ada.
Merender Berkas dengan templatefile
Fungsi templatefile membaca templat, mengganti variabel, lalu mengembalikan string. Fungsi ini sangat cocok untuk data pengguna cloud-init dan berkas konfigurasi.
resource "aws_instance" "web" {
ami = "ami-0abcd1234"
instance_type = "t3.micro"
user_data = templatefile("init.tftpl", {
hostname = "web-01"
})
}Sintaks Templat
Di dalam berkas .tftpl, interpolasikan nilai dengan sintaks dollar-brace. Terraform mengganti variabel yang diberikan.
#!/bin/bash
hostnamectl set-hostname ${hostname}
echo 'Provisioned by Terraform'Perulangan dalam Templat
Templat mendukung direktif untuk iterasi. Direktif for merender baris berulang, berguna untuk membuat daftar host.
%{ for ip in ips ~}
server ${ip}:8080
%{ endfor ~}Templat Sebaris dengan templatestring
Untuk cuplikan singkat, Anda dapat melewati berkas dan menggunakan templatestring (atau format versi lama) untuk membuat string dinamis langsung dalam konfigurasi.
locals {
greeting = templatestring("Hello, $${name}!", { name = "Ops" })
}Menggabungkan Keduanya
Pola umum: sumber external mengambil nilai dinamis, lalu templatefile menyisipkannya ke dalam konfigurasi yang dirender sebagai data pengguna.
user_data = templatefile("app.tftpl", {
version = data.external.git_sha.result.sha
})Menjaga Hasil Render Tetap Idempoten
Karena perubahan pada user_data memaksa penggantian instans, pertahankan input templat agar stabil. Memasukkan nilai yang terus berubah, seperti stempel waktu, akan membuat ulang instans pada setiap penerapan.
Pemeriksaan Singkat
Uji pemahaman Anda tentang sumber data eksternal.
Ringkasan: Input Dinamis dan Templat
Anda memperluas kemampuan data Terraform:
- Sumber
externalmenjalankan skrip yang mengembalikan JSON. templatefilemerender berkas konfigurasi dan data pengguna.- Direktif templat mendukung perulangan dan interpolasi.
- Jaga input tetap stabil untuk menghindari penggantian yang tidak diinginkan.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Menggunakan Data Eksternal dan Templat” gratis?
Ya — teks lengkap “Menggunakan Data Eksternal dan Templat” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus DevOps Bootcamp, upgrade ke CoddyKit PRO. Kursus DevOps Bootcamp mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Menggunakan Data Eksternal dan Templat”?
Masukkan nilai dinamis ke Terraform dengan sumber data eksternal dan hasilkan berkas konfigurasi menggunakan fungsi templatefile. Kamu berlatih DevOps Bootcamp 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 DevOps Bootcamp?
Tidak diperlukan pengalaman sebelumnya. DevOps Bootcamp 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 4 dari 4.
Berapa lama pelajaran “Menggunakan Data Eksternal dan Templat” 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 DevOps Bootcamp ini?
Ya. Setiap pelajaran DevOps Bootcamp 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