YAML-konfigurasjon (.yaml)
YAML StandardYAML Ain't Markup Language (YAML) er det dominerende dataserialiseringsformatet 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.
Inspeksjon og metadata
Operativsystemer og filanalysatorer identifiserer YAML-filer ved å undersøke den innledende binære bytesekvensen:
Filsignatur på bytenivå (magiske byte)
Operativsystemer og filanalysatorer identifiserer YAML-filer ved å undersøke den innledende binære bytesekvensen:
HEX-SIGNATUR (OFFSET 0):
2D 2D 2D 0AASCII-REPRESENTASJON: ---\n
Standardisering: YAML 1.2.2 Specification
Tekniske spesifikasjoner
| Beholderarkitektur | Innrykksbasert, menneskeleselig dataserialiseringsformat og overmengde av JSON, med støtte for ankre og aliaser |
| Komprimering | Ukomprimert tekststrøm |
| Bytterekkefølge | UTF-8-/Unicode-tekststrøm |
| Fargerom | Ikke relevant (dataserialisering) |
| Kanaler og struktur | Avbildninger (nøkkel-verdi-ordbøker), sekvenser (lister), skalartyper (strenger, tall, boolske verdier) og ankre (&ref/*ref) |
| Maks. dimensjoner | Ubegrenset dokumentstørrelse (støtter strømmer med flere dokumenter atskilt av «---») |
| Gjennomsiktighet | Ingen |
| Strømming og progressiv visning | Strømmer med flere dokumenter gjør det mulig å behandle dokumentene sekvensielt, ett om gangen |
Teknisk sammenligningsmatrise: YAML sammenlignet med konkurrenter
| Teknisk attributt | YAML (Gjeldende) | JSON | TOML | XML |
|---|---|---|---|---|
| Syntaksstil | Hierarki uttrykt med innrykk og blanktegn | Strenge klammer og sitattegn | Tabeller og nøkkel=verdi-par | Ordflytende åpnings-/lukkekoder |
| Støtte for kommentarer | Innebygd (#-kommentarer) | Ingen kommentarer tillatt | Innebygd (#-kommentarer) | <!-- kommentarer --> |
| DevOps-adopsjon | Støtten varierer mellom programmer. | Støtten varierer mellom programmer. | Rust-/Python-pakkekonfigurasjon | Eldre bedriftskonfigurasjon |
| Datagjenbruk | Innebygde 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.app YAML-formatereren.
Sikkerhetsanalyse og angrepsvektorer mot parsere
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 deserialiseringstagger for objekter (f.eks. '!!python/object/apply').
- Enhetsutvidelsesbomber (tilsvarer «billion laughs» som bruker YAML-ankere og -aliaser).
- Typeforvekslingssårbarheter på grunn av implisitt tolkning av boolske verdier og tidsstempler.
Anbefalte sikkerhetstiltak: Bruk alltid sikre YAML-parsere ('yaml.safe_load()' i Python) og håndhev dybdegrenser for ankerutvidelse.
Historisk opprinnelse og milepæler
Viktige fordeler
- YAML brukes ofte i infrastrukturverktøy, men støtte og funksjonalitet varierer etter implementasjon.
- Ren, lesbar syntaks: fjerner rotet med krøllparenteser, hakeparenteser og anførselstegn gjennom intuitivt innrykk.
- Støtter referanser og ankre (&anchor / *anchor) for å gjenbruke gjentatte konfigurasjonsblokker uten duplisering.
Tekniske begrensninger og ulemper
- Sensitiv for blanktegn: en tilfeldig tabulator eller et enkelt ekstra mellomrom kan ødelegge dokumenthierarkiet eller forårsake parserfeil.
- Beryktede typekonverteringsfeil: ord uten anførselstegn som 'no', 'on', 'yes' eller landskoder ('NO' for Norge) kan i det skjulte bli til boolske verdier.
- Betydelig lavere parsinghastighet enn for binære formater 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 dataserialisering.
- «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 forbyr strengt 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.
Relaterte konverteringspar for YAML
Konvertering av YAML-konfigurasjonsfiler til JSON-format oversetter menneskevennlige, innrykkbaserte tekststrukturer til strenge maskinlesbare objekter for webapplikasjoner.
Konvertering av JSON-konfigurasjonsfiler til YAML-format transformerer stive programmatiske datastrukturer til rene, menneskevennlige dokumenter som er mye enklere for systemadministratorer å redigere.