YAML-konfig (.yaml)
YAML StandardYAML 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:
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 0AASCII-REPRESENTATION: ---\n
Standardisering: YAML 1.2.2 Specification
Tekniska specifikationer
| Containerarkitektur | Indentation-based human-friendly data serialization format superset of JSON supporting anchors and aliases |
| Komprimering | Uncompressed text stream |
| Bytessordinning | UTF-8 / Unicode text stream |
| Färgrymder | N/A (Data Serialization) |
| Kanaler och struktur | Mappings (key-value dictionaries), sequences (lists), scalar types (strings, numbers, booleans), and anchors (&ref/*ref) |
| Maximala dimensioner | Unbounded document size (supports multi-document streams separated by '---') |
| Transparens | None |
| Strömning och progressiv | Multi-document streams allow sequential document-by-document processing |
Teknisk jämförelsematris: YAML vs konkurrenter
| Tekniskt attribut | YAML (Aktuell) | JSON | TOML | XML |
|---|---|---|---|---|
| Syntaxstil | Blankstegsindentering och hierarki | Strikta parenteser och citattecken | Tabeller och nyckel=värde-par | Utförliga start-/slut-taggar |
| Stöd för kommentarer | Inbyggt (#-kommentarer) | Inga kommentarer tillåtna | Inbyggt (#-kommentarer) | <!-- kommentarer --> |
| DevOps-användning | Universell standard (Kubernetes, CI/CD) | Universell API-standard | Paketkonfiguration för Rust/Python | Äldre företagskonfiguration |
| Dataåteranvändning | Inbyggda 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
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.
Relaterade konverteringspar för YAML
Omvandling av YAML-konfigurationsfiler till JSON-format översätter mänskligt läsbara textstrukturer med indrag till strikta, maskinläsbara objekt för webbapplikationer.
Omvandling av JSON-konfigurationsfiler till YAML-format förvandlar stela programmatiska datastrukturer till rena, mänskligt läsbara dokument som är mycket enklare för systemadministratörer att redigera.