0Pricing
Terraform Infrastructure as Code · Pelajaran

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 Terraform Infrastructure as Code 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 Terraform Infrastructure as Code, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Terraform Infrastructure as Code 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 external menjalankan skrip yang mengembalikan JSON.
  • templatefile merender 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 Terraform Infrastructure as Code, upgrade ke CoddyKit PRO. Kursus Terraform Infrastructure as Code 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 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 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 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

  1. Membuat Kueri Data dengan Sumber Data
  2. Provisioner local-exec dan remote-exec
  3. Resource Null dan Pemicu
  4. Menggunakan Data Eksternal dan Templat
← Kembali ke Terraform Infrastructure as Code