Przejdź do treści

Walidator YAML

Sprawdź składnię YAML, zanim spowoduje błędy wdrożenia lub potoku CI. Walidator analizuje każdy dokument wejściowy za pomocą parsera YAML 1.2, odrzuca zduplikowane klucze, tabulatory używane do wcięć i niekontrolowane rozwijanie aliasów oraz zgłasza pierwszy błąd wraz z numerem dokumentu, wiersza i kolumny. Przy poprawnych danych wyświetla liczbę dokumentów, typ najwyższego poziomu każdego z nich oraz ostrzeżenia. Dla autorów konfiguracji Kubernetes i Compose Docker.

Resetuj

Najczęściej zadawane pytania

Co sprawdza walidator YAML?

Analizuje pełną składnię YAML: wcięcia, kolekcje blokowe i przepływowe, wartości skalarne w cudzysłowie i bez niego, kotwice, aliasy, znaczniki i dyrektywy. Traktuje też zduplikowane klucze w mapowaniu jako błąd. Wynikiem jest potwierdzenie z krótkim podsumowaniem albo pierwszy błąd wraz z jego pozycją i objaśnieniem.

Jakiej wersji YAML używa?

Walidator używa podstawowego schematu YAML 1.2, czyli aktualnej wersji specyfikacji. W wersji 1.2 słowa takie jak yes, no, on i off są zwykłymi ciągami znaków, a nie wartościami logicznymi, więc nigdy nie powodują błędu. Dokumenty napisane z myślą o narzędziach YAML 1.1 są nadal akceptowane, o ile ich składnia jest poprawna.

Dlaczego zduplikowane klucze są zgłaszane jako błędy?

Specyfikacja YAML wymaga, aby klucze w mapowaniu były unikatowe. Wiele parserów po cichu zachowuje ostatnią wartość, co ukrywa błędy konfiguracji, takie jak dwukrotne zdefiniowanie ustawienia. Walidator podaje numer wiersza i kolumny powtórzonego klucza, aby można było zdecydować, którą wartość zachować.

Jak są liczone numery wierszy, kolumn i dokumentów?

Numeracja wierszy i kolumn zaczyna się od 1 na początku wklejonego tekstu. Dokumenty są liczone w kolejności występowania i oddzielone wierszami ---, więc pierwszy dokument ma numer 1. Wskazana pozycja pokazuje miejsce, w którym parser wykrył problem, co może być tuż za właściwym błędem.

Czy mogę jednocześnie walidować kilka dokumentów YAML?

Tak. Oddziel dokumenty za pomocą ---, jak w manifeście Kubernetes z wieloma dokumentami, a każdy z nich zostanie przeanalizowany. Prawidłowy wynik pokazuje liczbę dokumentów i typ najwyższego poziomu każdego z nich.

Co oznacza typ najwyższego poziomu?

Informuje, co zawiera każdy dokument na poziomie głównym: mapowanie kluczy i wartości, sekwencję elementów, pojedynczą wartość skalarną albo nic. Większość plików konfiguracyjnych to mapowania, a listy zasobów często są sekwencjami. Nieprawidłowy typ zwykle oznacza źle umieszczony myślnik lub wcięcie.

Czym są ostrzeżenia?

Ostrzeżenia dotyczą problemów, które nie przerywają analizy, na przykład tagu nierozpoznawanego przez parser, który jest wtedy odczytywany jako zwykła wartość. Każde ostrzeżenie jest wyświetlane wraz z numerem wiersza i kolumny; pokazywanych jest maksymalnie 20 ostrzeżeń. Dokument z ostrzeżeniami nadal jest uznawany za prawidłowy.

Dlaczego tabulatory są odrzucane?

YAML zabrania używania tabulatorów we wcięciach, ponieważ ich szerokość jest niejednoznaczna. Zastąp tabulatory na początku wskazanego wiersza spacjami i zachowaj wcięcia zgodne z sąsiednimi wierszami. Tabulatory wewnątrz wartości i ujętych w cudzysłów ciągów znaków są dozwolone.

Czy narzędzie jest zabezpieczone przed bombami aliasów?

Tak. Aliasy mogą być rozwijane maksymalnie 100 razy, więc dokument zaprojektowany tak, by powielić aliasy do rozmiaru gigabajtów — atak często nazywany billion laughs — zostanie zgłoszony jako nieprawidłowy, zanim wyczerpie pamięć. Zwykłe używanie kotwic i aliasów do współdzielenia ustawień pozostaje daleko poniżej tego limitu.

Czy narzędzie waliduje zgodność ze schematem, takim jak Kubernetes lub OpenAPI?

Nie, sprawdza tylko składnię i strukturę, a nie to, czy klucze i wartości pasują do konkretnego schematu. Dane wejściowe mogą mieć do 5 MiB. Aby przekonwertować prawidłowy YAML na JSON, TOML lub inny format, użyj konwertera formatów danych.

O OneClick Pro

OneClick Pro to bezpłatny zbiór ponad 150 narzędzi internetowych do codziennej pracy: konwertowania obrazów i jednostek, formatowania i walidowania kodu, sprawdzania domen i SEO oraz pracy z tekstem, datami i liczbami. Każde narzędzie działa bez rejestracji i subskrypcji, a wprowadzone dane służą wyłącznie do obliczenia wyniku i nigdy nie są przechowywane. Używaj go jako podręcznego zestawu narzędzi do jednorazowych zadań lub dodaj do zakładek te, z których korzystasz każdego dnia.