YAML-konfig (.yaml)

YAML Standard

YAML Ain't Markup Language (YAML) är det dominerande dataserialiseringsformatet för modern DevOps, molninfrastruktur (Kubernetes, Docker Compose) och CI/CD-automatisering, med betoning på mänsklig läsbarhet genom ren blankstegsindragning.

Konvertera YAML till JSON

Gratis konverterare från YAML till JSON i webbläsaren. Konvertera filer direkt på din enhet.

Granska & Metadata

Operativsystem och filanalysverktyg identifierar YAML-filer genom att granska den inledande binära bytesekvensen:

Välj eller släpp filer här

100 % privat konvertering i webbläsaren - filer lämnar aldrig din enhet

eller klistra in Ctrl+V
Integritetsgaranti utan nätverksöverföring: 0 byte laddas upp till externa servrar. All bearbetning sker lokalt i webbläsarens sandlåda.

Signatur för filhuvud på bytenivå (Magic Bytes)

Operativsystem och filanalysverktyg identifierar YAML-filer genom att granska den inledande binära bytesekvensen:

HEX-SIGNATUR (OFFSET 0):

2D 2D 2D 0A

ASCII-REPRESENTATION: ---\n

Standardisering: YAML 1.2.2 Specification

Tekniska specifikationer

ContainerarkitekturIndentation-based human-friendly data serialization format superset of JSON supporting anchors and aliases
KomprimeringUncompressed text stream
BytessordinningUTF-8 / Unicode text stream
FärgrymderN/A (Data Serialization)
Kanaler och strukturMappings (key-value dictionaries), sequences (lists), scalar types (strings, numbers, booleans), and anchors (&ref/*ref)
Maximala dimensionerUnbounded document size (supports multi-document streams separated by '---')
TransparensNone
Strömning och progressivMulti-document streams allow sequential document-by-document processing

Teknisk jämförelsematris: YAML vs konkurrenter

Tekniskt attributYAML (Aktuell)JSONTOMLXML
SyntaxstilBlankstegsindentering och hierarkiStrikta parenteser och citatteckenTabeller och nyckel=värde-parUtförliga start-/slut-taggar
Stöd för kommentarerInbyggt (#-kommentarer)Inga kommentarer tillåtnaInbyggt (#-kommentarer)<!-- kommentarer -->
DevOps-användningUniversell standard (Kubernetes, CI/CD)Universell API-standardPaketkonfiguration för Rust/PythonÄldre företagskonfiguration
DataåteranvändningInbyggda ankartecken (&) och alias (*)Ingen (manuell dubblering)Ingen (manuell dubblering)XML-entiteter

Vanliga skadeorsaker och hex-återställningsguide

Parserfel: 'mapping values are not allowed here' eller indenteringsfel.

Grundorsak: Blandning av tabbar med mellanslag eller felinriktade indenteringsnivåer.

Återställning: Konvertera tabbar till mellanslag och validera syntaxen med File2File YAML Formatter.

Säkerhetsanalys och attackvektorer för tolkar

YAML-parserare som stöder anpassade typ-taggar (som PyYAML:s 'yaml.load()') tillät historiskt fjärrkodkörning genom godtycklig objektinstansiering.

Kända attackvektorer

  • Vilkaårlig kodkörning genom osäkra objekt-deserialiseringstagger (t.ex. '!!python/object/apply').
  • Enhetsutvidgningsbomber (motsvarar 'billion laughs' som använder YAML-ankar och alias).
  • Typförväxlingssårbarheter på grund av implicit tolkning av boolska värden och tidsstämplar.

Rekommenderade skyddsåtgärder:

Historiskt ursprung och milstolpar

2021YAML 1.2.2-revideringen publiceras, vilket förfinar JSON-kompatibilitet och formella grammofindefinitioner.
2009YAML 1.2 standardiserar YAML som en strikt övermängd av JSON, vilket innebär att all giltig JSON är giltig YAML.
2001Clark Evans, Ingy döt Net och Oren Ben-Kiki skapar YAML som ett människovänligt alternativ till XML.

Viktiga fördelar

  • Den ohotade standarden för modern molninfrastruktur: används universellt i Kubernetes-manifest, Docker Compose och GitHub Actions.
  • Ren, läsbar syntax: eliminerar röran av klamrar, parenteser och citattecken genom intuitiv indentering.
  • Stöder referenser och ankarreferenser (&anchor / *anchor) för att återanvända upprepade konfigurationsblock utan dubblering.

Tekniska begränsningar

  • Blankstegskänsligt: en oavsiktlig Tabb eller ett extra mellanslag kan förstöra dokumenthierarkin eller orsaka parserfel.
  • Ökända typomvandlingsfel: ociterade ord som 'no', 'on', 'yes' eller landskoder ('NO' för Norge) kan i tysthet bli boolska värden.
  • Betydligt långsammare parsning hastighet jämfört med binära format eller strikt JSON.

Intressant teknisk kuriosa

  • YAML stod ursprungligen för 'Yet Another Markup Language', men döptes skämtsamt om till det rekursiva akronymet 'YAML Ain't Markup Language' för att betona dataserialisering.
  • 'Norge-problemet' är ett berömt programmeringsfel där landskoden 'NO' i en YAML-fil tolkades som det boolska värdet 'false'.
  • Varje giltig JSON-fil i världen är samtidigt också en 100 % giltig YAML-fil.

Vanliga tekniska frågor

Vad används YAML till?

YAML är det primära konfigurationsspråket för molnberäkning, Kubernetes-klusterdistribution, Docker Compose-filer, GitHub Actions-arbetsflöden och programvaruinställningar.

Kan jag använda tabbade indrag i YAML-filer?

Nej. Den officiella YAML-specifikationen förbjuder strängt användning av tabbtecken för indrag; du måste alltid använda mellanslag (vanligtvis 2 mellanslag per nivå).

Hur kan jag konvertera YAML till JSON?

Du kan konvertera YAML-filer till ren, validerad JSON med ett klick med File2File.app direkt i din webbläsare med fullständig integritet.