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ů:
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 0AASCII REPREZENTACE: ---\n
Standardizace: YAML 1.2.2 Specification
Technické specifikace
| Architektura kontejneru | Indentation-based human-friendly data serialization format superset of JSON supporting anchors and aliases |
| Komprese | Uncompressed text stream |
| Endiantita bajtů | UTF-8 / Unicode text stream |
| Barevné prostory | N/A (Data Serialization) |
| Kanály a struktura | Mappings (key-value dictionaries), sequences (lists), scalar types (strings, numbers, booleans), and anchors (&ref/*ref) |
| Max. rozměry | Unbounded document size (supports multi-document streams separated by '---') |
| Průhlednost | None |
| Streamování a progresivní načítání | Multi-document streams allow sequential document-by-document processing |
Technická srovnávací matice: YAML vs konkurence
| Technický atribut | YAML (Aktuální) | JSON | TOML | XML |
|---|---|---|---|---|
| Styl syntaxe | Hierarchie odsazení pomocí mezer | Přísné závorky a uvozovky | Tabulky a páry klíč=hodnota | Upovídané otevírací/uzavírací značky |
| Podpora komentářů | Nativní (komentáře pomocí #) | Komentáře nejsou povoleny | Nativní (komentáře pomocí #) | <!-- komentáře --> |
| Přijetí v DevOps | Univerzální standard (Kubernetes, CI/CD) | Univerzální API standard | Konfigurace balíčků pro Rust/Python | Podniková legacy konfigurace |
| Opětovné použití dat | Nativní 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
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í.
Související konverzní páry pro YAML
Konverze konfiguračních souborů YAML do formátu JSON převádí textové struktury s odsazením na přehledné objekty pro webové aplikace, které stroje snadno zpracují.
Konverze konfiguračních souborů JSON do formátu YAML mění pevné programové datové struktury na přehledné dokumenty, které administrátorům systémů mnohem usnadňují úpravy.