YAML-konfigurasjon (.yaml)

YAML Standard

YAML Ain't Markup Language (YAML) er det dominerende datakonverteringsformatet for moderne DevOps, skyinfrastruktur (Kubernetes, Docker Compose) og CI/CD-automatisering, med vekt på menneskelig lesbarhet gjennom ren innrykk med blanktegn.

Konverter YAML til JSON

Gratis YAML til JSON-konverterer i nettleseren. Konverter filer umiddelbart på enheten din.

Undersøk og metadata

Operativsystemer og filanalysatorer identifiserer YAML-filer ved å undersøke den innledende binære bytesekvensen:

Velg eller slipp filer her

100 % privat in-browser-konvertering - filer forlater aldri enheten din

eller lim inn Ctrl+V
Personverngaranti uten nettverksoverføring: 0 byte lastet opp til eksterne servere. All behandling skjedde lokalt i nettlesersandkassen din.

Byte-nivå hodesignatur (Magic Bytes)

Operativsystemer og filanalysatorer identifiserer YAML-filer ved å undersøke den innledende binære bytesekvensen:

HEX-SIGNATUR (OFFSET 0):

2D 2D 2D 0A

ASCII-REPRESENTASJON: ---\n

Standardisering: YAML 1.2.2 Specification

Tekniske spesifikasjoner

BeholderarkitekturIndentation-based human-friendly data serialization format superset of JSON supporting anchors and aliases
KomprimeringUncompressed text stream
BytterekkefølgeUTF-8 / Unicode text stream
FargeromN/A (Data Serialization)
Kanaler og strukturMappings (key-value dictionaries), sequences (lists), scalar types (strings, numbers, booleans), and anchors (&ref/*ref)
Maks. dimensjonerUnbounded document size (supports multi-document streams separated by '---')
GjennomsiktighetNone
Strømming og progressivMulti-document streams allow sequential document-by-document processing

Teknisk sammenligningsmatrise: YAML vs konkurrenter

Teknisk attributtYAML (Gjeldende)JSONTOMLXML
SyntaksstilInnrykk med blanktegn-hierarkiStrenge klammer og sitattegnTabeller og nøkkel=verdi-parOrdflytende åpnings-/lukkekoder
Støtte for kommentarerInnebygd (#-kommentarer)Ingen kommentarer tillattInnebygd (#-kommentarer)<!-- kommentarer -->
DevOps-adopsjonUniversell standard (Kubernetes, CI/CD)Universell API-standardRust-/Python-pakkekonfigurasjonEldre bedriftskonfigurasjon
DatagjenbrukInnebygde ankre (&) og aliaser (*)Ingen (manuell duplisering)Ingen (manuell duplisering)XML-entiteter

Vanlige korrupsjonsmoduser og heksadesimal gjenopprettingsveiledning

Parserfeil: 'mapping values are not allowed here' eller innrykkfeil.

Underliggende årsak: Blanding av tabulatorer og mellomrom eller feiljusterte innrykksnivåer.

Utbedring: Konverter tabulatorer til mellomrom og valider syntaksen ved hjelp av File2File YAML-formatereren.

Sikkerhetsanalyse og parser-angrepsvektorer

YAML-parsere som støtter egendefinerte typetagger (som PyYAMLs 'yaml.load()') tillot historisk sett fjernkjøring av kode via vilkårlig objektinstansiering.

Kjente angrepsvektorer

  • Vilkårlig kodekjøring gjennom usikre objekt-deserialiseringstagger (f.eks. '!!python/object/apply').
  • Enhetsutvidelsesbomber (tilsvarer «billion laughs» som bruker YAML-ankere og -aliaser).
  • Typeforvekslingssårbarheter på grunn av implisitt boolsk og tidsstempel-tolkning.

Beste praksis for forsvar:

Historisk opprinnelse og milepæler

2021YAML 1.2.2-revisjonen blir publisert, og foredler JSON-kompatibilitet og formelle grammatikkdefinisjoner.
2009YAML 1.2 standardiserer YAML som et strengt overmengde av JSON, noe som betyr at all gyldig JSON er gyldig YAML.
2001Clark Evans, Ingy döt Net og Oren Ben-Kiki skaper YAML som et menneskevennlig alternativ til XML.

Viktige fordeler

  • Den ubestridte standarden for moderne skyinfrastruktur: brukes universelt i Kubernetes-manifestfiler, Docker Compose og GitHub Actions.
  • Ren, lesbar syntaks: fjerner rotet med krøllparenteser, klammeparenteser og sitattegn gjennom intuitiv innrykk.
  • Støtter referanser og ankre (&anchor / *anchor) for å gjenbruke gjentatte konfigurasjonsblokker uten duplisering.

Tekniske begrensninger og ulemper

  • Whitespace-sensitiv: en tilfeldig tabulator eller et enkelt ekstra mellomrom kan ødelegge dokumenthierarkiet eller forårsake parserfeil.
  • Beryktede typekonverteringsfeil: ukvoterte ord som 'no', 'on', 'yes' eller landskoder ('NO' for Norge) kan i det skjulte bli til boolske verdier.
  • Betydelig tregere parseringshastighet sammenlignet med binære format eller streng JSON.

Interessante tekniske fakta

  • YAML sto opprinnelig for 'Yet Another Markup Language', men ble spøkefullt omdøpt til det rekursive akronymet 'YAML Ain't Markup Language' for å understreke datakonvertering.
  • «Norge-problemet» er en berømt programmeringsfeil der landskoden 'NO' i en YAML-fil ble tolket som den boolske verdien 'false'.
  • Hver eneste gyldige JSON-fil i verden er samtidig en 100 % gyldig YAML-fil.

Ofte stilte tekniske spørsmål

Hva brukes YAML til?

YAML er det primære konfigurasjonsspråket for dataskytjenester, Kubernetes-klusterdistribusjon, Docker Compose-filer, GitHub Actions-arbeidsflyter og programvareinnstillinger.

Kan jeg bruke tabulatorer i YAML-filer?

Nei. Den offisielle YAML-spesifikasjonen strengt forbyr bruk av tabulatortegn for innrykk; du må alltid bruke mellomrom (vanligvis 2 mellomrom per nivå).

Hvordan kan jeg konvertere YAML til JSON?

Du kan konvertere YAML-filer til ren, validert JSON med ett klikk ved hjelp av File2File.app direkte i nettleseren din med fullstendig personvern.