YAML (YAML Markup Dili Değildir) insan dostu, dil bağımsız bir veri serileştirme dilidir ve genellikle yapılandırma dosyaları için kullanılır. Verileri eşleme, diziler ve skalarlar olarak temsil eder. 1.2 sürümü, YAML'ı JSON'un katı bir üst kümesi haline getirmiştir. Proxy ve scraping çalışmalarında, YAML yapılandırma dosyalarında karşımıza çıkar. Örneğin, Envoy proxy'sinin statik yapılandırması YAML ile yazılmıştır ve trafiğin geçtiği dinleyicileri ve kümeleri tanımlar.

YAML Söz Dizimi Temelleri

  • Eşlemeler: key: value çiftleri, sözlükler veya hash'ler gibi.
  • Diziler: Her bir öğenin kendi satırında - ile başladığı listeler.
  • Girinti: Blok stilinde, girinti yapısı belirler, bu nedenle yanlış yerleştirilmiş bir boşluk verinin anlamını değiştirir.
  • Tab yok: Girinti için tab karakterleri kullanılmamalıdır.
  • Yorumlar: Bir # yorum başlatır.

Scraper ve Proxy Yapılandırmalarında YAML'ı Güvenli Kullanma

YAML ayrıştırıcıları, düz verileri okumaktan daha fazlasını yapabilir. PyYAML belgeleri, güvenilmeyen bir kaynaktan gelen veriler üzerinde yaml.load çağırmanın güvenli olmadığını uyarır, çünkü rastgele Python nesneleri oluşturabilir. yaml.safe_load fonksiyonu yalnızca standart YAML etiketlerini tanır, bu da onu güvenilmeyen girdi için belgelenmiş bir seçim haline getirir.

Çok Satırlı Dizeler, Bağlantılar ve Birden Fazla Belge

  • Literal blok (|): Çok satırlı bir dizide her satır sonunu korur.
  • Katlanmış blok (>): Her satır sonunu bir boşluğa dönüştürür, boş veya daha fazla girintili satırlardan önce hariç.
  • Bağlantılar ve takma adlar: &name bir düğümü işaretler ve *name bunu daha sonra tekrar etmeden yeniden kullanır.
  • Birden fazla belge: --- bir belgenin içeriğinin başlangıcını işaretler, böylece bir akış birden fazla belge tutabilir. ... yeni bir belge başlatmadan bir belgeyi sonlandırır.

İlgili Terimler