YAML konfig (.yaml)

YAML Štandard

YAML Ain't Markup Language (YAML) je dominantný formát na serializáciu údajov pre moderný DevOps, cloudovú infraštruktúru (Kubernetes, Docker Compose) a CI/CD automatizáciu, pričom kladie dôraz na čitateľnosť pre človeka prostredníctvom prehľadného odsadenia medzerami.

Konvertovať YAML do JSON

Bezplatný konvertor z YAML do JSON priamo v prehliadači. Konvertujte súbory okamžite vo svojom zariadení.

Preskúmať a metadáta

Operačné systémy a analyzátory súborov identifikujú súbory YAML kontrolou počiatočnej binárnej bajtovej sekvencie:

Vyberte alebo presuňte súbory sem

100 % súkromná konverzia v prehliadači - súbory nikdy neopustia vaše zariadenie

alebo prilepiť Ctrl+V
Záruka súkromia s nulovým prenosom do siete: 0 bajtov odovzdaných na externé servery. Všetko spracovanie prebehlo lokálne v pieskovisku vášho prehliadača.

Podpis hlavičky na úrovni bajtov (Magic Bytes)

Operačné systémy a analyzátory súborov identifikujú súbory YAML kontrolou počiatočnej binárnej bajtovej sekvencie:

HEXADECIMÁLNY PODPIS (OFFSET 0):

2D 2D 2D 0A

ASCII REPREZENTÁCIA: ---\n

Štandardizácia: YAML 1.2.2 Specification

Technické špecifikácie

Architektúra kontajneraIndentation-based human-friendly data serialization format superset of JSON supporting anchors and aliases
KompresiaUncompressed text stream
Poradie bajtov (Endianness)UTF-8 / Unicode text stream
Farebné priestoryN/A (Data Serialization)
Kanály a štruktúraMappings (key-value dictionaries), sequences (lists), scalar types (strings, numbers, booleans), and anchors (&ref/*ref)
Max. rozmeryUnbounded document size (supports multi-document streams separated by '---')
PriehľadnosťNone
Streamovanie a postupné načítavanieMulti-document streams allow sequential document-by-document processing

Technická porovnávacia matica: YAML vs konkurenti

Technický atribútYAML (Aktuálne)JSONTOMLXML
Štýl syntaxeHierarchia bielych miest odsadeniaPrísne zátvorky a úvodzovkyTabuľky a páry kľúč=hodnotaPodrobné otváracie/zatváracie tagy
Podpora komentárovNatívna (# komentáre)Komentáre nie sú povolenéNatívna (# komentáre)<!-- komentáre -->
Prijatie v DevOpsUniverzálny štandard (Kubernetes, CI/CD)Univerzálny štandard APIKonfigurácia balíkov Rust/PythonStaršia podniková konfigurácia
Opätovné použitie údajovNatívne kotvy (&) & aliasy (*)Žiadne (manuálna duplikácia)Žiadne (manuálna duplikácia)Entity XML

Bežné režimy poškodenia a príručka na obnovu v hexadecimálnom kóde

Chyba analyzátora: 'mapping values are not allowed here' alebo chyba odsadenia.

Hlavná príčina: Miešanie tabulátorov s medzerami alebo nesprávne zarovnané úrovne odsadenia.

Obnova: Skonvertujte tabulátory na medzery a overte syntax pomocou nástroja File2File YAML Formatter.

Bezpečnostná analýza a vektory útokov na parser

Analyzátory YAML, ktoré podporujú vlastné značky typov (ako napríklad PyYAML 'yaml.load()'), historicky umožňovali vzdialené spúšťanie kódu prostredníctvom inštancií ľubovoľných objektov.

Známe vektory útokov

  • Vzdialené spúšťanie kódu prostredníctvom nebezpečných značiek deserializácie objektov (napr. '!!python/object/apply').
  • Útoky expanziou entít (ekvivalent miliardy smiechov využívajúci YAML kotvy a aliasy).
  • Zraniteľnosti zámeny typov spôsobené implicitným parsovaním booleovských hodnôt a časových pečiatok.

Najlepšie obranné postupy:

Historický pôvod a míľniky

2021Bolo vydané revidované vydanie YAML 1.2.2, ktoré upresňuje kompatibilitu s JSON a formálne definície gramatiky.
2009YAML 1.2 štandardizuje YAML ako striktnú nadmnožinu JSON, čo znamená, že každý platný JSON je platný YAML.
2001Clark Evans, Ingy döt Net a Oren Ben-Kiki vytvorili YAML ako alternatívu k XML, ktorá je prívetivá pre ľudí.

Kľúčové výhody a prednosti

  • Nespochybniteľný štandard pre modernú cloudovú infraštruktúru: univerzálne sa používa v manifestoch Kubernetes, Docker Compose a GitHub Actions.
  • Čistá, čitateľná syntax: odstraňuje neporiadok zo zátvoriek, hranatých zátvoriek a úvodzoviek pomocou intuitívneho odsadenia.
  • Podporuje referencie a kotvy (&anchor / *anchor) na opätovné použitie opakovaných konfiguračných blokov bez duplikácie.

Technické obmedzenia a nevýhody

  • Citlivý na biele miesta: náhodný tabulátor alebo jediná extra medzera môže narušiť hierarchiu dokumentu alebo spôsobiť chyby pri parsovaní.
  • Neinšpiratívne chyby pri konverzii typov: slová v úvodzovkách ako 'no', 'on', 'yes' alebo kódy krajín ('NO' pre Nórsko) sa môžu ticho zmeniť na booleovské hodnoty.
  • Výrazne pomalšia rýchlosť parsovania v porovnaní s binárnymi formátmi alebo prísnym JSON.

Zaujímavé technické drobnosti

  • YAML pôvodne znamenal 'Yet Another Markup Language', ale bol humorným spôsobom premenovaný na rekurzívnu skratku 'YAML Ain't Markup Language', aby sa zdôraznila serializácia údajov.
  • 'Nórsky problém' je známy programátorský bug, kde kód krajiny 'NO' v súbore YAML bol analyzovaný ako booleovská hodnota 'false'.
  • Každý platný súbor JSON na svete je zároveň na 100 % platným súborom YAML.

Často kladené technické otázky

Na čo sa používa YAML?

YAML je primárny konfiguračný jazyk pre cloudcomputing, nasadzovanie klastrov Kubernetes, súbory Docker Compose, pracovné postupy GitHub Actions a nastavenia softvéru.

Môžem v súboroch YAML používať tabulátory?

Nie. Oficiálna špecifikácia YAML prísne zakazuje používanie znakov tabulátora na odsadenie; musíte vždy používať medzery (zvyčajne 2 medzery na úroveň).

Ako môžem konvertovať YAML do formátu JSON?

Súbory YAML môžete jedným kliknutím konvertovať na čistý, overený formát JSON pomocou File2File.app priamo vo vašom webovom prehliadači s úplným zachovaním súkromia.