YAML-konfiguration (.yaml)

YAML Standard

YAML Ain't Markup Language (YAML) er det dominerende dataserialiseringsformat til moderne DevOps, skyinfrastruktur (Kubernetes, Docker Compose) og CI/CD-automatisering, med vægt på menneskelig læsbarhed gennem ren indrykning med blanktegn.

Konverter YAML til JSON

Gratis YAML til JSON-konverter i browseren. Konverter filer med det samme på din enhed.

Undersøg & Metadata

Operativsystemer og filanalysatorer identificerer YAML-filer ved at inspicere den indledende binære bytesekvens:

Vælg eller træk filer hertil

100% privat konvertering i browseren - filer forlader aldrig din enhed

eller indsæt Ctrl+V
Privatlivsgaranti uden netværksoverførsel: 0 bytes uploadet til eksterne servere. Al behandling foregik lokalt i din browsers sandkasse.

Byte-niveau Header-signatur (Magic Bytes)

Operativsystemer og filanalysatorer identificerer YAML-filer ved at inspicere den indledende binære bytesekvens:

HEX-SIGNATUR (OFFSET 0):

2D 2D 2D 0A

ASCII-REPRÆSENTATION: ---\n

Standardisering: YAML 1.2.2 Specification

Tekniske specifikationer

ContainerarkitekturIndentation-based human-friendly data serialization format superset of JSON supporting anchors and aliases
KomprimeringUncompressed text stream
BytterejsningUTF-8 / Unicode text stream
FarverumN/A (Data Serialization)
Kanaler og strukturMappings (key-value dictionaries), sequences (lists), scalar types (strings, numbers, booleans), and anchors (&ref/*ref)
Maks. dimensionerUnbounded document size (supports multi-document streams separated by '---')
GennemsigtighedNone
Streaming og progressivMulti-document streams allow sequential document-by-document processing

Tekniske sammenligningsmatrix: YAML vs. konkurrenter

Teknisk attributYAML (Aktuel)JSONTOMLXML
SyntaksstilIndrykningshierarki med blanktegnStrenge parenteser og anførelsestegnTabeller og nøgle=værdi-parOrdrige åbne-/lukketags
KommentarunderstøttelseIndfødt (# kommentarer)Ingen kommentarer tilladtIndfødt (# kommentarer)<!-- kommentarer -->
DevOps-vedtagelseUniversel standard (Kubernetes, CI/CD)Universel API-standardRust/Python-pakkekonfigEnterprise ældre konfig
DatagenbrugIndfødte ankre (&) og aliaser (*)Ingen (manuel duplikering)Ingen (manuel duplikering)XML-entiteter

Almindelige korruptionstilstande og hex-gendannelsesvejledning

Parserfejl: 'mapping values are not allowed here' eller indrykningsfejl.

Grundlæggende årsag: Blanding af tabulatorer med mellemrum eller forkert justerede indrykningsniveauer.

Gendannelse: Konverter tabulatorer til mellemrum og valider syntaks ved hjælp af File2File YAML Formatter.

Sikkerhedsanalyse og parser-angrebsvektorer

YAML-parsere, der understøtter brugerdefinerede typetags (såsom PyYAMLs 'yaml.load()'), har historisk set tilladt udførelse af fjernkode (RCE) via vilkårlig objektinstatiering.

Kendte angrebsvektorer

  • Vilkårlig kodeeksekvering gennem usikre objektdeserialiseringstags (f.eks. '!!python/object/apply').
  • Entitetsudvidelsesbomber (svarende til 'billion laughs', der anvender YAML-ankere og -aliaser).
  • Typeforvirringssårbarheder på grund af implicit fortolkning af boolske værdier og tidsstempler.

Defensive bedste praksisser:

Historisk oprindelse og milepæle

2021YAML 1.2.2-revisionen udgives, hvilket finpudser JSON-kompatibilitet og formelle grammatikdefinitioner.
2009YAML 1.2 standardiserer YAML som et strengt supersæt af JSON, hvilket betyder, at alt gyldigt JSON også er gyldigt YAML.
2001Clark Evans, Ingy döt Net og Oren Ben-Kiki skaber YAML som et menneskevenligt alternativ til XML.

Vigtige fordele og styrker

  • Den ubestridte standard for moderne skyinfrastruktur: bruges universelt i Kubernetes-manifestfiler, Docker Compose og GitHub Actions.
  • Ren, læsbar syntaks: fjerner rod med tuborgklammer, parenteser og anførselstegn gennem intuitiv indrykning.
  • Understøtter referencer og ankre (&anchor / *anchor) til at genbruge gentagne konfigurationsblokke uden duplikering.

Tekniske begrænsninger og ulemper

  • Følsom over for blanktegn (whitespace): et utilsigtet tabulator- eller enkelt ekstra mellemrum kan ødelægge dokumenthierarkiet eller forårsage parserfejl.
  • Berygtede typekonverteringsfejl: uanførte ord som 'no', 'on', 'yes' eller landekoder ('NO' for Norge) kan i det skjulte blive til boolske værdier.
  • Betydeligt langsommere fortolkningshastighed sammenlignet med binære formater eller streng JSON.

Interessant teknisk trivia

  • YAML stod oprindeligt for 'Yet Another Markup Language', men blev humoristisk omdøbt til det rekursive akronym 'YAML Ain't Markup Language' for at fremhæve dataserialisering.
  • 'Norge-problemet' er en berømt programmeringsfejl, hvor landekoden 'NO' i en YAML-fil blev fortolket som den boolske værdi 'false'.
  • Enhver gyldig JSON-fil i verden er samtidig også en 100 % gyldig YAML-fil.

Ofte stillede tekniske spørgsmål

Hvad bruges YAML til?

YAML er det primære konfigurationssprog til cloud computing, implementering af Kubernetes-klynger, Docker Compose-filer, GitHub Actions-workflows og softwareindstillinger.

Kan jeg bruge tabulatortegn (tabs) i YAML-filer?

Nej. Den officielle YAML-specifikation forbyder strengt brugen af tabulatortegn til indrykning; du skal altid bruge mellemrum (typisk 2 mellemrum pr. niveau).

Hvordan kan jeg konvertere YAML til JSON?

Du kan konvertere YAML-filer til ren, valideret JSON med et enkelt klik ved hjælp af File2File.app direkte i din webbrowser med fuldstændig beskyttelse af privatlivets fred.