YAML konfig (.yaml)
YAML ŠtandardYAML 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:
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 0AASCII REPREZENTÁCIA: ---\n
Štandardizácia: YAML 1.2.2 Specification
Technické špecifikácie
| Architektúra kontajnera | Indentation-based human-friendly data serialization format superset of JSON supporting anchors and aliases |
| Kompresia | Uncompressed text stream |
| Poradie bajtov (Endianness) | UTF-8 / Unicode text stream |
| Farebné priestory | N/A (Data Serialization) |
| Kanály a štruktúra | Mappings (key-value dictionaries), sequences (lists), scalar types (strings, numbers, booleans), and anchors (&ref/*ref) |
| Max. rozmery | Unbounded document size (supports multi-document streams separated by '---') |
| Priehľadnosť | None |
| Streamovanie a postupné načítavanie | Multi-document streams allow sequential document-by-document processing |
Technická porovnávacia matica: YAML vs konkurenti
| Technický atribút | YAML (Aktuálne) | JSON | TOML | XML |
|---|---|---|---|---|
| Štýl syntaxe | Hierarchia bielych miest odsadenia | Prísne zátvorky a úvodzovky | Tabuľky a páry kľúč=hodnota | Podrobné otváracie/zatváracie tagy |
| Podpora komentárov | Natívna (# komentáre) | Komentáre nie sú povolené | Natívna (# komentáre) | <!-- komentáre --> |
| Prijatie v DevOps | Univerzálny štandard (Kubernetes, CI/CD) | Univerzálny štandard API | Konfigurácia balíkov Rust/Python | Staršia podniková konfigurácia |
| Opätovné použitie údajov | Natí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
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.
Súvisiace konverzné páry pre YAML
Konverzia konfiguračných súborov YAML do formátu JSON transformuje štruktúry textu s odsadením čitateľné pre ľudí na striktné objekty spracovateľné strojom pre webové aplikácie.
Konverzia konfiguračných súborov JSON do formátu YAML transformuje rigidné programové dátové štruktúry na čisté dokumenty čitateľné pre ľudí, ktoré sa správcom systému oveľa ľahšie upravujú.