0Pricing
Terraform Infrastructure as Code · Ders

İç İçe Yapılandırma için Dinamik Bloklar

Dinamik blokları kullanarak yinelenen iç içe yapılandırma bloklarını programlı biçimde oluşturun ve güvenlik grubu kuralları gibi öğelerde kopyala-yapıştır ihtiyacını ortadan kaldırın.

İç İçe Yapılandırma için Dinamik Bloklar, CoddyKit'te ücretsiz bir Terraform Infrastructure as Code dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Terraform Infrastructure as Code öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Terraform Infrastructure as Code kursu toplamda 4 dersten oluşur.

Tekrarlama Sorunu

Bazı kaynaklar, bir güvenlik grubundaki birden çok ingress kuralı gibi tekrarlanan iç içe bloklar içerir. Her birini elle yazmak ayrıntılıdır ve DRY ilkesini korumayı zorlaştırır. Dinamik bloklar bunları bir koleksiyondan üretir.

Önce Statik Bloklar

İşte elle yazılan sürüm: Birbirine çok benzeyen üç ingress bloğu. Bunlardan bir düzinesini koruduğunuzu düşünün.

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"]
  }
}

Dinamik Bloğun Anatomisi

Bir dynamic bloğunda, iç içe bloğun adıyla eşleşen bir etiket, bir for_each koleksiyonu ve oluşturulan her örneği açıklayan bir content bloğu bulunur.

dynamic "ingress" {
  for_each = var.rules
  content {
    from_port   = ingress.value.port
    to_port     = ingress.value.port
    protocol    = "tcp"
    cidr_blocks = ingress.value.cidrs
  }
}

Yineleyici Nesnesi

content içinde geçerli öğeye, blok etiketinin adını taşıyan bir nesne üzerinden başvurun. Bu nesne .value (öğe) ve .key (eşleme anahtarı veya liste dizini) özelliklerini sunar.

Girdi Değişkenini Tanımlama

Dinamik bloğu türü belirtilmiş bir değişkenle yönlendirin. Nesnelerden oluşan bir liste, her kuralın kendini açıklamasını sağlar.

variable "rules" {
  type = list(object({
    port  = number
    cidrs = list(string)
  }))
}

Hepsini Birleştirme

Artık kaç kural iletirseniz iletin kaynak kısa kalır.

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
    }
  }
}

Yineleyiciyi Yeniden Adlandırma

iterator bağımsız değişkeni, yineleme değişkenini yeniden adlandırmanızı sağlar. İç içe dinamik bloklarda karışıklığı önlemek için kullanışlıdır.

dynamic "ingress" {
  for_each = var.rules
  iterator = rule
  content {
    from_port = rule.value.port
    to_port   = rule.value.port
  }
}

Blokları Koşullu Olarak Atlama

Sıfır blok üretmek için boş bir koleksiyon iletin. for_each üzerindeki üçlü ifade, bir bloğu isteğe bağlı hâle getirir.

dynamic "logging" {
  for_each = var.enable_logging ? [1] : []
  content {
    target_bucket = var.log_bucket
  }
}

İç İçe Dinamik Bloklar

Dinamik bloklar iç içe yerleştirilebilir. İç bloğun her iki düzeye de belirsizlik olmadan başvurabilmesi için farklı yineleyiciler kullanın.

dynamic "setting" {
  for_each = var.settings
  iterator = s
  content {
    namespace = s.value.namespace
    name      = s.value.name
    value     = s.value.value
  }
}

Dinamik Blokların Kullanılmaması Gereken Durumlar

Dinamik bloklar dolaylılık ekler ve okunabilirliği azaltabilir. Yalnızca bir veya iki statik bloğunuz varsa bunları doğrudan yazın. Dinamik blokları, sayı verilerle belirlendiğinde kullanın.

Sonucu İnceleme

Oluşturulan blokların beklentilerle eşleştiğini doğrulamak için bir plan çalıştırın. Terraform, koleksiyondaki her öğeyi somut bir iç içe bloğa genişletir.

terraform plan

Kısa Kontrol

Dinamik blok bilginizi test edin.

Özet: DRY İç İçe Yapılandırma

Dinamik bloklar, verilerden iç içe yapılandırma üretmenizi sağlar:

  • for_each yinelemeyi yönlendirir; content her bloğu tanımlar.
  • Yineleyici, .value ve .key özelliklerini sunar.
  • Boş koleksiyonlar blokları isteğe bağlı hâle getirir.
  • Yapılandırmaların okunabilir kalması için ölçülü kullanın.

Sıkça Sorulan Sorular

“İç İçe Yapılandırma için Dinamik Bloklar” dersi ücretsiz mi?

Evet — “İç İçe Yapılandırma için Dinamik Bloklar” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Terraform Infrastructure as Code kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Terraform Infrastructure as Code kursu toplamda 4 dersten oluşur.

“İç İçe Yapılandırma için Dinamik Bloklar” dersinde ne öğreneceğim?

Dinamik blokları kullanarak yinelenen iç içe yapılandırma bloklarını programlı biçimde oluşturun ve güvenlik grubu kuralları gibi öğelerde kopyala-yapıştır ihtiyacını ortadan kaldırın. Terraform Infrastructure as Code ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Terraform Infrastructure as Code öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Terraform Infrastructure as Code, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“İç İçe Yapılandırma için Dinamik Bloklar” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Terraform Infrastructure as Code dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Terraform Infrastructure as Code dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. `for_each` ve `count` ile Döngüleri Kullanma
  2. Terraform Yerleşik İşlevleri
  3. Koşullu İfadeler ve Splat İfadeleri
  4. İç İçe Yapılandırma için Dinamik Bloklar
← Terraform Infrastructure as Code Sayfasına Dön