YAML-validator
Kontrollera YAML efter syntaxfel innan de orsakar problem i en driftsättning eller CI-pipeline. Validatorn tolkar varje dokument i indata med en YAML 1.2-parser, avvisar dubblerade nycklar, tabbar som används för indrag och okontrollerad aliassignsexpansion, och rapporterar det första felet med dokument, rad och kolumn. Giltig indata visar antalet dokument, den överordnade typen för vart och ett samt eventuella varningar. Skapad för Kubernetes-, Docker Compose- och konfigurationsförfattare.
Vanliga frågor
Vad kontrollerar YAML-validatorn?
Den tolkar hela YAML-syntaxen: indrag, block- och flödesstrukturer, citerade och ociterade skalärer, ankare, alias, taggar och direktiv. Den behandlar också dubblerade nycklar i en mappning som ett fel. Resultatet är antingen en bekräftelse med en kort sammanfattning eller det första felet med dess position och en förklaring.
Vilken version av YAML följer den?
Valideraren använder kärnschemat för YAML 1.2, den aktuella versionen av specifikationen. I 1.2 är ord som yes, no, on och off vanliga strängar i stället för booleska värden, så de orsakar aldrig något fel. Dokument som skrivits för verktyg med YAML 1.1 godtas fortfarande så länge syntaxen är giltig.
Varför rapporteras dubbla nycklar som fel?
YAML-specifikationen kräver att nycklar i en mappning är unika. Många parsers behåller tyst det sista värdet, vilket döljer konfigurationsmisstag som att en inställning definieras två gånger. Valideraren rapporterar raden och kolumnen för den upprepade nyckeln så att du kan avgöra vilket värde som ska behållas.
Hur räknas rad-, kolumn- och dokumentnummer?
Rader och kolumner börjar på 1 vid början av indata som du klistrar in. Dokument räknas i den ordning de förekommer och skiljs åt av rader med ---, så det första dokumentet är dokument 1. Positionen pekar på var parsern upptäckte problemet, vilket kan vara precis efter själva misstaget.
Kan jag validera flera YAML-dokument samtidigt?
Ja. Separera dokumenten med --- som i ett Kubernetes-manifest med flera dokument, så parsas varje dokument. Ett giltigt resultat visar antalet dokument och den översta typen för vart och ett.
Vad betyder den översta typen?
Den talar om vad varje dokument innehåller vid sin rot: en mappning av nycklar och värden, en sekvens av objekt, ett enda skalärt värde eller ingenting alls. De flesta konfigurationsfiler är mappningar, medan resurslistor ofta är sekvenser. En felaktig typ här betyder vanligtvis att ett bindestreck eller en indragning är felplacerad.
Vad är varningar?
Varningar är problem som inte stoppar parsningen, till exempel en tagg som parsern inte känner igen och därför läser som ett vanligt värde. Varje varning listas med rad och kolumn, upp till 20 stycken. Ett dokument med varningar räknas fortfarande som giltigt.
Varför avvisas tabbar?
YAML förbjuder tabbtecken för indragning eftersom deras bredd är tvetydig. Ersätt tabbarna i början av den rapporterade raden med blanksteg och håll indragningen konsekvent med de omgivande raderna. Tabbar i värden och citerade strängar är tillåtna.
Är den skyddad mot aliasbomber?
Ja. Alias får expanderas högst 100 gånger, så ett dokument som skapats för att mångfaldiga alias till gigabyte med data, ofta kallat en billion laughs-attack, rapporteras som ogiltigt i stället för att tömma minnet. Normal användning av ankare och alias för delade inställningar ligger långt under den här gränsen.
Validerar den mot ett schema som Kubernetes eller OpenAPI?
Nej, den kontrollerar endast syntax och struktur, inte om nycklarna och värdena stämmer med ett visst schema. Indata kan vara upp till 5 MiB. Om du vill konvertera giltig YAML till JSON, TOML eller ett annat format använder du Data Format Converter.