Terraform sebagai Kod Infrastruktur · Pelajaran

Menggunakan Data Luaran dan Templat

Tarik nilai dinamik ke dalam Terraform dengan sumber data luaran dan hasilkan fail konfigurasi menggunakan fungsi templatefile.

Pelajaran 4 daripada 413 langkah

Menggunakan Data Luaran dan Templat ialah pelajaran Terraform sebagai Kod Infrastruktur percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Terraform sebagai Kod Infrastruktur, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Terraform sebagai Kod Infrastruktur merangkumi sejumlah 4 pelajaran.

Melangkaui Sumber Data Terbina Dalam

Anda sudah membuat pertanyaan AWS dengan sumber data. Kadangkala data yang diperlukan berada di luar mana-mana penyedia, seperti keluaran skrip shell atau API dalaman. Sumber data external dan fungsi template mengisi jurang ini.

Sumber Data external

Sumber data external menjalankan program dan membaca JSON daripada stdoutnya. Ia ialah jalan keluar untuk logik yang tidak boleh dinyatakan oleh Terraform secara asli.

data "external" "git_sha" {
  program = ["bash", "./scripts/git_sha.sh"]
}

Kontrak Program

Program luaran menerima objek JSON pada stdin dan mesti mencetak objek JSON rata yang mengandungi nilai rentetan ke stdout. Apa-apa sahaja yang lain ialah ralat.

#!/bin/bash
echo '{"sha": "abc123"}'

Membaca Keputusan Luaran

Akses nilai yang dikembalikan melalui peta result. Setiap nilai ialah rentetan, jadi tukarkan jenisnya jika anda memerlukan jenis lain.

resource "aws_instance" "app" {
  ami           = "ami-0abcd1234"
  instance_type = "t3.micro"

  tags = {
    GitSha = data.external.git_sha.result.sha
  }
}

Bila Perlu Mengelakkan external

Sumber external berjalan pada setiap pelan dan menjejaskan kebolehulangan jika skrip tidak menentukan hasil secara konsisten. Utamakan sumber data penyedia sebenar jika tersedia; gunakan external hanya untuk jurang yang benar-benar diperlukan.

Memaparkan Fail dengan templatefile

Fungsi templatefile membaca templat, menggantikan pemboleh ubah, dan mengembalikan rentetan. Fungsi ini amat sesuai untuk data pengguna cloud-init dan fail konfigurasi.

resource "aws_instance" "web" {
  ami           = "ami-0abcd1234"
  instance_type = "t3.micro"
  user_data = templatefile("init.tftpl", {
    hostname = "web-01"
  })
}

Sintaks Templat

Dalam fail .tftpl, interpolasikan nilai menggunakan sintaks dolar-kurungan. Terraform menggantikan pemboleh ubah yang dihantar.

#!/bin/bash
hostnamectl set-hostname ${hostname}
echo 'Provisioned by Terraform'

Gelung dalam Templat

Templat menyokong arahan untuk lelaran. Arahan for memaparkan baris berulang, yang berguna untuk menjana senarai hos.

%{ for ip in ips ~}
server ${ip}:8080
%{ endfor ~}

Templat Sebaris dengan templatestring

Untuk coretan pendek, anda boleh melangkau fail dan menggunakan templatestring (atau format yang lebih lama) untuk membina rentetan dinamik terus dalam konfigurasi.

locals {
  greeting = templatestring("Hello, $${name}!", { name = "Ops" })
}

Menggabungkan Kedua-duanya

Pola biasa: sumber external mengambil nilai dinamik, kemudian templatefile memasukkannya ke dalam konfigurasi yang dipaparkan sebagai data pengguna.

user_data = templatefile("app.tftpl", {
  version = data.external.git_sha.result.sha
})

Mengekalkan Paparan Idempoten

Oleh sebab perubahan pada user_data memaksa penggantian tika, pastikan masukan templat stabil. Nilai yang sentiasa berubah, seperti cap masa, akan mencipta semula tika pada setiap penggunaan.

Semakan Pantas

Uji pemahaman anda tentang sumber data external.

Imbas Kembali: Masukan Dinamik dan Templat

Anda telah memperluas keupayaan data Terraform:

  • Sumber external menjalankan skrip yang mengembalikan JSON.
  • templatefile memaparkan konfigurasi dan fail data pengguna.
  • Arahan templat menyokong gelung dan interpolasi.
  • Pastikan masukan stabil untuk mengelakkan penggantian yang tidak diingini.
Percuma untuk bermula

Pelajari Terraform sebagai Kod Infrastruktur dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
12
Pelajaran
48

Soalan Lazim

Adakah pelajaran “Menggunakan Data Luaran dan Templat” percuma?

Ya — teks penuh “Menggunakan Data Luaran dan Templat” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Terraform sebagai Kod Infrastruktur, tingkat taraf kepada CoddyKit PRO. Kursus Terraform sebagai Kod Infrastruktur merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Menggunakan Data Luaran dan Templat”?

Tarik nilai dinamik ke dalam Terraform dengan sumber data luaran dan hasilkan fail konfigurasi menggunakan fungsi templatefile. Anda berlatih Terraform sebagai Kod Infrastruktur menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Terraform sebagai Kod Infrastruktur?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Terraform sebagai Kod Infrastruktur di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.

Berapa lamakah pelajaran “Menggunakan Data Luaran dan Templat” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Terraform sebagai Kod Infrastruktur ini?

Ya. Setiap pelajaran Terraform sebagai Kod Infrastruktur menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Membuat Pertanyaan dengan Sumber Data
  2. Penyedia Tempatan dan Jauh
  3. Sumber Null dan Pencetus
  4. Menggunakan Data Luaran dan Templat
← Kembali ke Terraform sebagai Kod Infrastruktur