0Pricing
Terraform Infrastructure as Code · Ders

`for_each` ve `count` ile Döngüleri Kullanma

Koleksiyonları ve eşlemeleri verimli biçimde işlemek üzere `count` ve `for_each` kullanarak bir kaynağın veya modülün birden çok örneğini oluşturmayı öğrenin.

`for_each` ve `count` ile Döngüleri Kullanma, CoddyKit'te ücretsiz bir Terraform Infrastructure as Code dersidir. Bu, 4 dersinin 1. 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.

Döngülere Giriş

Terraform ile altyapı yönetirken genellikle birbirine benzeyen birden çok kaynak oluşturmanız gerekir. 10 web sunucusuna veya 5 veritabanı örneğine ihtiyaç duyduğunuzu düşünün. Aynı kod bloğunu tekrar tekrar yazmak hem zahmetli hem de hataya açık olurdu!

Bu derste iki güçlü Terraform özelliği tanıtılmaktadır: count ve for_each. Bunlar, yapılandırmalarınızı temiz ve ölçeklenebilir tutarak birden çok kaynağı verimli şekilde hazırlamanıza yardımcı olur.

`count` ve `for_each` Neden Kullanılır?

count ve for_each gibi döngüleri kullanmanın önemli yararları vardır:

  • Yinelemeyi Azaltma: Altyapı kodunu bir kez yazıp yeniden kullanın.
  • Okunabilirliği Artırma: Yapılandırmalarınız çok daha temiz ve anlaşılır hale gelir.
  • Ölçeklenebilirlik: Tek bir değeri veya koleksiyonu değiştirerek kaynak sayısını kolayca ayarlayın.
  • Tutarlılık: Benzer tüm kaynakların aynı şekilde yapılandırılmasını sağlayın.

Basit Yineleme için `count`

count üst bağımsız değişkeni, bir kaynak veya modülün neredeyse aynı olan birden çok örneğini oluşturmanız gerektiğinde idealdir. Bir tam sayı değeri sağlarsınız ve Terraform bu sayıda örnek oluşturur.

count ile oluşturulan her örneğe, 0 değerinden başlayıp count - 1 değerine kadar ilerleyen bir dizin atanır. Bu dizine count.index kullanarak erişebilirsiniz.

Örnek: `count` ile Birden Çok EC2 Örneği

Birbirinin aynısı olan üç AWS EC2 örneği hazırlayalım. Her sunucuya benzersiz bir ad vermek için count.index kullanımına dikkat edin.

provider "aws" {
  region = "us-east-1"
}

resource "aws_instance" "web_server" {
  count         = 3
  ami           = "ami-053b0dcd10dcf2f56" # Ubuntu Server 20.04 LTS
  instance_type = "t2.micro"
  tags = {
    Name = "WebServer-${count.index}"
  }
}

`count.index` Kullanımını Anlama

Önceki örnekte ${count.index}, her örnek için otomatik olarak 0, 1 ve 2 değerlerine çözümlendi. Bu, benzersiz tanımlayıcılar oluşturmanıza veya her örneğin özelliklerini ayarlamanıza olanak tanır.

count.index olmadan üç sunucunun da tamamen aynı “Name” etiketi olurdu; bu da AWS içinde karışıklığa veya sorunlara yol açabilirdi.

`for_each` ile Tanışma

count basit yinelemeler için harika olsa da for_each daha fazla esneklik sunar. Bir karakter dizeleri kümesi veya karakter dizelerinden oluşan bir eşleme üzerinde yineleme yaparak her öğe için bir örnek oluşturur.

for_each, farklı yapılandırmalara sahip kaynakları yönetmeniz gerektiğinde veya kaynak sayısı sayısal olmayan bir koleksiyon tarafından belirlendiğinde idealdir (örneğin ortam adlarından oluşan bir liste veya kullanıcı ayarlarından oluşan bir eşleme).

Örnek: Küme ile `for_each`

Burada üç S3 klasörü oluşturuyoruz; her birinin adı for_each kümemizdeki bir öğeden alınıyor. Yineleme sırasında geçerli öğeye erişmek için each.value kullanıyoruz.

provider "aws" {
  region = "us-east-1"
}

resource "aws_s3_bucket" "app_buckets" {
  for_each = toset(["prod-app-data", "dev-app-logs", "test-app-assets"])
  bucket   = each.value
  acl      = "private"
  tags = {
    Environment = split("-", each.value)[0]
  }
}

Örnek: Eşleme ile `for_each`

Bir eşleme kullanmak, her kaynak için daha karmaşık ve benzersiz yapılandırmalar tanımlamanıza olanak tanır. Burada, ortam anahtarlarına göre farklı sürüm oluşturma ayarlarına sahip S3 klasörleri oluşturuyoruz.

Anahtara each.key, değere ise each.value ile erişebilirsiniz.

provider "aws" {
  region = "us-east-1"
}

resource "aws_s3_bucket" "configured_bucket" {
  for_each = {
    production = { name = "prod-data-bucket", versioning = true }
    development = { name = "dev-logs-bucket", versioning = false }
  }
  bucket        = each.value.name
  acl           = "private"
  versioning {
    enabled = each.value.versioning
  }
  tags = {
    Environment = each.key
  }
}

`count` ve `for_each`: Doğru Seçimi Yapma

Hangisini ne zaman kullanmalısınız?

  • count kullanın: Birincil önceliğin miktar olduğu, aynı kaynakları oluşturduğunuz basit sayısal yinelemelerde kullanın. Kaynakları birbirinden ayırmak için yalnızca bir dizine ihtiyaç duyduğunuzda uygundur.
  • for_each kullanın: Karmaşık koleksiyonlar (kümeler veya eşlemeler) üzerinde yineleme yaparken ve kaynakların koleksiyon öğelerinden türetilen benzersiz tanımlayıcılara veya özelliklere ihtiyaç duyduğu durumlarda kullanın. Her örneğin açık ve benzersiz bir mantıksal tanımlayıcısı olduğunda genellikle tercih edilir.

Hızlı Kontrol: Döngüler

Kuruluşunuzdaki her ekip için bir S3 klasörü oluşturmanız gerektiğini ve her klasörün ilgili ekip tarafından belirlenen özel bir saklama politikasına sahip olması gerektiğini düşünün.

Özet: Verimli Kaynak Oluşturma

Harika iş çıkardınız! Terraform yapılandırmalarınızı daha dinamik ve verimli hale getirmek için count ve for_each özelliklerinden nasıl yararlanacağınızı öğrendiniz.

  • count, farklılaştırma için count.index kullanarak aynı kaynakların basit, sayısal yinelemesini sağlar.
  • for_each, kümeler veya eşlemeler üzerinde yineleme yaparak each.key ve each.value ile benzersiz özelliklere sahip farklı kaynaklar oluşturur.

Bu yapılar, ölçeklenebilir ve sürdürülebilir kod olarak altyapıyı yönetmenin temel unsurlarıdır!

Sıkça Sorulan Sorular

“`for_each` ve `count` ile Döngüleri Kullanma” dersi ücretsiz mi?

Evet — “`for_each` ve `count` ile Döngüleri Kullanma” 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.

“`for_each` ve `count` ile Döngüleri Kullanma” dersinde ne öğreneceğim?

Koleksiyonları ve eşlemeleri verimli biçimde işlemek üzere `count` ve `for_each` kullanarak bir kaynağın veya modülün birden çok örneğini oluşturmayı öğrenin. 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 1. dersidir.

“`for_each` ve `count` ile Döngüleri Kullanma” 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