Konfigurace YAML (.yaml)

YAML Standardní

YAML Ain't Markup Language (YAML) je dominantní formát pro serializaci dat pro moderní DevOps, cloudovou infrastrukturu (Kubernetes, Docker Compose) a automatizaci CI/CD, přičemž klade důraz na čitelnost pro lidi pomocí čistého odsazování mezerami.

Převést YAML do JSON

Bezplatný konvertor z YAML do JSON v prohlížeči. Převeďte soubory okamžitě ve svém zařízení.

Zkontrolovat a metadata

Operační systémy a analyzátory souborů identifikují soubory YAML kontrolou počáteční binární sekvence bajtů:

Vyberte nebo přetáhněte soubory sem

100% soukromá konverze v prohlížeči - soubory nikdy neopustí vaše zařízení

nebo vložte Ctrl+V
Záruka ochrany soukromí s nulovým přenosem po síti: 0 bajtů odesláno na externí servery. Veškeré zpracování probíhalo lokálně v sandboxu vašeho prohlížeče.

Podpis hlavičky na úrovni bajtů (Magic Bytes)

Operační systémy a analyzátory souborů identifikují soubory YAML kontrolou počáteční binární sekvence bajtů:

HEXADECIMÁLNÍ PODPIS (OFFSET 0):

2D 2D 2D 0A

ASCII REPREZENTACE: ---\n

Standardizace: YAML 1.2.2 Specification

Technické specifikace

Architektura kontejneruIndentation-based human-friendly data serialization format superset of JSON supporting anchors and aliases
KompreseUncompressed text stream
Endiantita bajtůUTF-8 / Unicode text stream
Barevné prostoryN/A (Data Serialization)
Kanály a strukturaMappings (key-value dictionaries), sequences (lists), scalar types (strings, numbers, booleans), and anchors (&ref/*ref)
Max. rozměryUnbounded document size (supports multi-document streams separated by '---')
PrůhlednostNone
Streamování a progresivní načítáníMulti-document streams allow sequential document-by-document processing

Technická srovnávací matice: YAML vs konkurence

Technický atributYAML (Aktuální)JSONTOMLXML
Styl syntaxeHierarchie odsazení pomocí mezerPřísné závorky a uvozovkyTabulky a páry klíč=hodnotaUpovídané otevírací/uzavírací značky
Podpora komentářůNativní (komentáře pomocí #)Komentáře nejsou povolenyNativní (komentáře pomocí #)<!-- komentáře -->
Přijetí v DevOpsUniverzální standard (Kubernetes, CI/CD)Univerzální API standardKonfigurace balíčků pro Rust/PythonPodniková legacy konfigurace
Opětovné použití datNativní kotvy (&) a aliasy (*)Žádné (ruční duplikace)Žádné (ruční duplikace)Entity XML

Běžné režimy poškození a příručka pro obnovení v hex

Chyba parseru: 'mapping values are not allowed here' nebo chyba odsazování.

Hlavní příčina: Míchání tabulátorů s mezerami nebo nesprávně zarovnané úrovně odsazení.

Obnovení: Převeďte tabulátory na mezery a ověřte syntaxi pomocí formátovače File2File YAML Formatter.

Bezpečnostní analýza a vektory útoků na parser

Analyzátory YAML, které podporují vlastní značky typů (např. 'yaml.load()' v PyYAML), v minulosti umožňovaly vzdálené spuštění kódu prostřednictvím vytváření libovolných objektů.

Známé vektory útoků

  • Spuštění libovolného kódu prostřednictvím nebezpečných značek pro deserializaci objektů (např. '!!python/object/apply').
  • Útoky expanzí entit (ekvivalent útoku 'billion laughs' využívající kotvy a aliasy YAML).
  • Zranitelnosti záměny typů v důsledku implicitního parsování booleovských hodnot a časových razítek.

Doporučené bezpečnostní postupy:

Historický vývoj a milníky

2021Byla vydána revize YAML 1.2.2, která vylepšuje kompatibilitu se JSONem a definice formální gramatiky.
2009YAML 1.2 standardizuje YAML jako přísnou nadmnožinu JSONu, což znamená, že každý platný JSON je zároveň platným YAML.
2001Clark Evans, Ingy döt Net a Oren Ben-Kiki vytvářejí YAML jako pro lidi přívětivou alternativu k XML.

Klíčové výhody a přednosti

  • Nezpochybnitelný standard pro moderní cloudovou infrastrukturu: používá se univerzálně v manifestech Kubernetes, Docker Compose a GitHub Actions.
  • Čistá, čitelná syntaxe: odstraňuje nepořádek v podobě složených, hranatých závorek a uvozovek pomocí intuitivního odsazování.
  • Podporuje reference a kotvy (&anchor / *anchor) k opětovnému použití opakovaných konfiguračních bloků bez duplikace.

Technická omezení a nevýhody

  • Citlivý na prázdné znaky: náhodný tabulátor nebo jediná mezera navíc může narušit hierarchii dokumentu nebo způsobit chybu při parsování.
  • Známé chyby při vynucování typů: slova bez uvozovek jako 'no', 'on', 'yes' nebo kódy zemí ('NO' pro Norsko) se mohou potichu změnit na booleovské hodnoty.
  • Výrazně pomalejší rychlost parsování ve srovnání s binárními formáty nebo striktním JSONem.

Zajímavé technické drobnosti

  • Zkratka YAML původně znamenala 'Yet Another Markup Language', ale byla humorně přejmenována na rekurzivní akronym 'YAML Ain't Markup Language', aby se zdůraznilo zaměření na serializaci dat.
  • 'Norský problém' je známá programátorská chyba, kdy byl kód země 'NO' v souboru YAML interpretován jako booleovská hodnota 'false'.
  • Každý platný soubor JSON na světě je zároveň 100% platným souborem YAML.

Často kladené technické otázky

K čemu se používá YAML?

YAML je primární konfigurační jazyk pro cloud computing, nasazení clusterů Kubernetes, soubory Docker Compose, pracovní postupy GitHub Actions a nastavení softwaru.

Mohu v souborech YAML používat tabulátory?

Ne. Oficiální specifikace YAML přísně zakazuje používání znaků tabulátoru pro odsazení; musíte vždy používat mezery (obvykle 2 mezery na úroveň).

Jak mohu převést YAML na JSON?

Soubory YAML můžete jedním kliknutím převést na čistý, ověřený JSON pomocí File2File.app přímo ve vašem webovém prohlížeči se zachováním úplného soukromí.