Blok Dinamik untuk Konfigurasi Bersarang
Hasilkan blok konfigurasi bersarang berulang secara terprogram menggunakan blok dinamik, sekali gus menghapuskan salin dan tampal untuk perkara seperti peraturan kumpulan keselamatan.
Blok Dinamik untuk Konfigurasi Bersarang 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.
Masalah Pengulangan
Sesetengah sumber mengandungi blok bersarang yang berulang, seperti berbilang peraturan ingress dalam kumpulan keselamatan. Menulis setiap satu secara manual adalah panjang dan sukar dikekalkan agar mematuhi DRY. Blok dinamik menjana blok tersebut daripada koleksi.
Blok Statik Dahulu
Berikut ialah versi manual: tiga blok ingress yang hampir serupa. Bayangkan menyelenggara sedozen blok seperti ini.
resource "aws_security_group" "web" {
ingress {
from_port = 80
to_port = 80
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
ingress {
from_port = 443
to_port = 443
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
}Anatomi Blok Dinamik
Blok dynamic mempunyai label yang sepadan dengan nama blok bersarang, koleksi for_each, dan blok content yang menerangkan setiap tika yang dijana.
dynamic "ingress" {
for_each = var.rules
content {
from_port = ingress.value.port
to_port = ingress.value.port
protocol = "tcp"
cidr_blocks = ingress.value.cidrs
}
}Objek Lelaran
Dalam content, rujuk elemen semasa melalui objek yang dinamakan mengikut label blok. Objek ini mendedahkan .value (elemen) dan .key (kunci peta atau indeks senarai).
Menentukan Pemboleh Ubah Masukan
Pacu blok dinamik dengan pemboleh ubah berjenis. Senarai objek menjadikan setiap peraturan mudah didokumentasikan sendiri.
variable "rules" {
type = list(object({
port = number
cidrs = list(string)
}))
}Menggabungkan Semuanya
Kini sumber kekal ringkas tanpa mengira bilangan peraturan yang anda hantar.
resource "aws_security_group" "web" {
name = "web-sg"
dynamic "ingress" {
for_each = var.rules
content {
from_port = ingress.value.port
to_port = ingress.value.port
protocol = "tcp"
cidr_blocks = ingress.value.cidrs
}
}
}Menamakan Semula Lelaran
Argumen iterator membolehkan anda menamakan semula pemboleh ubah lelaran, yang berguna apabila blok dinamik bersarang bagi mengelakkan kekeliruan.
dynamic "ingress" {
for_each = var.rules
iterator = rule
content {
from_port = rule.value.port
to_port = rule.value.port
}
}Melangkau Blok Secara Bersyarat
Berikan koleksi kosong untuk menghasilkan sifar blok. Ungkapan ternari pada for_each menjadikan blok itu pilihan.
dynamic "logging" {
for_each = var.enable_logging ? [1] : []
content {
target_bucket = var.log_bucket
}
}Blok Dinamik Bersarang
Blok dinamik boleh disarang. Gunakan lelaran berbeza supaya blok dalaman boleh merujuk kedua-dua aras tanpa kekaburan.
dynamic "setting" {
for_each = var.settings
iterator = s
content {
namespace = s.value.namespace
name = s.value.name
value = s.value.value
}
}Bila Tidak Menggunakan Blok Dinamik
Blok dinamik menambah lapisan perantaraan dan boleh menjejaskan kebolehbacaan. Jika anda hanya mempunyai satu atau dua blok statik, kekalkan blok tersebut secara literal. Gunakan blok dinamik apabila bilangannya dipacu oleh data.
Memeriksa Hasil
Jalankan pelan untuk mengesahkan bahawa blok yang dijana sepadan dengan jangkaan. Terraform mengembangkan setiap elemen koleksi menjadi blok bersarang yang nyata.
terraform planSemakan Pantas
Uji pengetahuan anda tentang blok dinamik.
Imbas Kembali: Konfigurasi Bersarang DRY
Blok dinamik membolehkan anda menjana konfigurasi bersarang daripada data:
for_eachmemacu lelaran;contentmentakrifkan setiap blok.- Lelaran mendedahkan
.valuedan.key. - Koleksi kosong menjadikan blok pilihan.
- Gunakannya secara berhemat supaya konfigurasi kekal mudah dibaca.
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 “Blok Dinamik untuk Konfigurasi Bersarang” percuma?
Ya — teks penuh “Blok Dinamik untuk Konfigurasi Bersarang” 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 “Blok Dinamik untuk Konfigurasi Bersarang”?
Hasilkan blok konfigurasi bersarang berulang secara terprogram menggunakan blok dinamik, sekali gus menghapuskan salin dan tampal untuk perkara seperti peraturan kumpulan keselamatan. 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 “Blok Dinamik untuk Konfigurasi Bersarang” 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
- Menggunakan Gelung dengan `for_each` dan `count`
- Fungsi Terbina dalam Terraform
- Ungkapan Bersyarat dan Splat
- Blok Dinamik untuk Konfigurasi Bersarang