Ana Sayfa/Blog/YAML Söz Dizimi Rehberi: Yapılandırma Dosyaları

YAML Söz Dizimi Rehberi: Yapılandırma Dosyaları

YAML (YAML Ain't Markup Language), insan tarafından kolayca okunabilen bir veri serileştirme formatıdır. Girintiye dayalı yapısı sayesinde JSON ve XML'den çok daha okunaklıdır. Özellikle yapılandırma dosyalarında, CI/CD pipeline'larında, Docker Compose ve Kubernetes manifestolarında yaygın olarak kullanılır.

YAML Temel Söz Dizimi

YAML'da girinti için yalnızca boşluk (space) kullanılır — tab karakteri yasaktır. Genellikle 2 boşluk tercih edilir.

Anahtar-Değer Çiftleri

# Basit anahtar-değer
isim: Fatih
yas: 30
aktif: true
email: [email protected]

İç İçe Yapılar (Nesting)

veritabani:
  host: localhost
  port: 5432
  isim: mydb
  kimlik:
    kullanici: admin
    sifre: gizli123

Veri Tipleri

# String (metin)
isim: "Fatih Uzuner"
baslik: Geliştirici      # Tırnak opsiyonel

# Sayılar
yas: 30                   # Integer
fiyat: 29.99              # Float
onaltili: 0xFF            # Hexadecimal

# Boolean
aktif: true               # true, yes, on
pasif: false              # false, no, off

# Null
deger: null               # null, ~, boş bırakma

# Tarih
tarih: 2026-01-03
zaman: 2026-01-03T10:30:00Z

Dikkat: yes, no, on, off değerleri YAML'da boolean olarak yorumlanır. Bunları metin olarak kullanmak istiyorsanız tırnak içine alın: "yes", "no".

Listeler (Diziler)

# Blok stili
meyveler:
  - elma
  - armut
  - portakal

# Satır içi (flow) stili
meyveler: [elma, armut, portakal]

# İç içe listeler
takimlar:
  - isim: Frontend
    uyeler:
      - Ali
      - Ayşe
  - isim: Backend
    uyeler:
      - Mehmet
      - Fatma

Çok Satırlı Metinler

# Satır katlamalı (>) — yeni satırlar boşluğa dönüşür
aciklama: >
  Bu uzun bir açıklamadır.
  Tüm satırlar tek bir
  paragrafa birleştirilir.

# Blok stili (|) — yeni satırlar korunur
script: |
  #!/bin/bash
  echo "Merhaba"
  echo "Dünya"

# Sondaki boş satırı kaldır (-)
aciklama: >-
  Sondaki yeni satır
  karakteri olmayacak

# Sondaki boş satırı koru (+)
metin: |+
  Sondaki boş satır
  korunacak

Çapalar ve Takma Adlar (Anchors & Aliases)

Tekrarlayan yapıları kopyalamak yerine çapa (&) ve takma ad (*) kullanarak yeniden kullanabilirsiniz:

# Çapa tanımlama
varsayilan_ayarlar: &varsayilan
  zaman_asimi: 30
  tekrar_sayisi: 3
  log_seviyesi: info

# Takma ad ile kullanma
gelistirme:
  <<: *varsayilan
  log_seviyesi: debug    # Üzerine yazma

uretim:
  <<: *varsayilan
  zaman_asimi: 60        # Üzerine yazma

YAML vs JSON

Yaygın Kullanım Alanları

Docker Compose

version: "3.9"
services:
  web:
    image: nginx:alpine
    ports:
      - "80:80"
    volumes:
      - ./html:/usr/share/nginx/html
  db:
    image: postgres:15
    environment:
      POSTGRES_PASSWORD: gizli123
      POSTGRES_DB: mydb

GitHub Actions (CI/CD)

name: CI Pipeline
on:
  push:
    branches: [main]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 20
      - run: npm ci
      - run: npm test
      - run: npm run build

Kubernetes

apiVersion: apps/v1
kind: Deployment
metadata:
  name: web-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: web
  template:
    metadata:
      labels:
        app: web
    spec:
      containers:
        - name: web
          image: my-app:latest
          ports:
            - containerPort: 3000

Sık Yapılan Hatalar

YAML dosyalarınızı JSON'a dönüştürmek veya doğrulamak mı istiyorsunuz? SiteScripti'nin YAML ↔ JSON Dönüştürücü aracıyla formatlar arasında kolayca geçiş yapabilirsiniz.

Bu konuyla ilgili araçlarımızı da deneyin: Docker Compose Oluşturucu, ENV Generator, JSON Formatter

← Tüm Yazılar