Ok, jeśli Yaml nie ma języka markup, co to jest?
Jak wspomniano, YAML jest serializowanym danymi językiem opracowanym w celu poprawy czytelności człowieka za pomocą wcięcia i natywnych struktur danych. Pomyśl o tym jak o ścisłym zastawie JSON lub skrzyżowaniu JSON i XML. Ta hybryda pozwala na robienie tego, co może JSON i więcej dodatkowych funkcji.
Celem tego samouczka jest przedstawienie Ci YAML, podanie przewodnika na temat składni języka, zapewnienie szybkich narzędzi do pracy z YAML i nauczanie, jak używać go do plików konfiguracyjnych i nie tylko.
Jak napisać YAML
Pisanie YAML jest niezwykle intuicyjne (myślę, że o to chodzi), ponieważ wykorzystuje składnię pary wartości kluczowej. Tak więc jest jak słownik w Pythonie. Jednak w przeciwieństwie do Pythona YAML nie pozwala na odstępy za zakładki; używa przestrzeni.
Ogólna składnia to:
kluczowa wartośćAby rozpocząć nowy dokument YAML, zaczynamy od trzech krewacji wskazujących na początek nowego pliku.
Ta funkcja umożliwia posiadanie wielu dokumentów oddzielonych przez atrakcje w jednym pliku.
Utwórz plik z .Rozszerzenie YAML i dodaj następujące treści.
---Jak widać z powyższego pliku, każdy dokument w YAML zaczyna się od trzech kropek, a następnie danych przechowywanych w parach kluczowych.
Zainstaluj liner YAML
Przed kontynuowaniem potwierdźmy, że mamy ważny plik YAML. Aby to zrobić, musimy zainstalować liner Yaml.
Linter to narzędzie, które sprawdza i powiadamia programistę o błędach programowania, takich jak błędy składniowe i nieprawidłowe konstrukcje. Na przykład umożliwia sprawdzenie prawidłowej składni pliku.
W naszym przykładzie użyjemy Yamllint.
Aby zainstalować, użyj apt jako:
Sudo apt-get AktualizacjaPo zainstalowaniu możemy uruchomić liner na pliku za pomocą polecenia
echo -e „To jest poprawne: składnia YAML” | Próbka Yamllinta.YamlJeśli plik zawiera prawidłową składnię YAML, nie daje nam żadnego wyjścia.
Teraz spróbuj dodać przestrzenie wewnątrz pliku YAML lub dodaj pojedynczą deskę rozdzielczą na dole jako:
---Jeśli uruchomimy Linter na tym pliku, pojawiają się błędy, jak pokazano poniżej:
próbka.YamlNOTATKA: Podobnie jak słowniki w Python i podobne struktury danych w różnych językach programowania, pary kluczowe w dokumencie YAML muszą być unikalne.
Typy danych YAML
YAML obsługuje różne sposoby reprezentowania danych. Zawierają:
#: Typy skalarne
Są to najczęstszy typ danych w YAML. Mają postać par kluczowych, jak pokazano w powyższym przykładzie.
Wartości w parze mogą być dowolnym typem, taki jak ciąg, liczby, w tym sześciokadcima, liczby całkowite i takie.
#: Strings
YAML obsługuje również sznurki zamknięte w pojedynczych lub podwójnych cytatach. Nie jest to wymagane, ponieważ parser YAML to się rozwinę, ale może być pomocny, szczególnie w strunach z postaciami ucieczki.
Poniżej przedstawiono przykłady prawidłowych strun w YAML.
---NOTATKA: Upewnij się, aby zamknąć podwójne lub pojedyncze cytaty, gdzie używane. Poniżej spowoduje błąd.
---Aby dodać akapit w pliku YAML, użyj znaku (większego niż). Pamiętaj, aby dodać przestrzeń przed linią. Na przykład:
---#: Typy liczbowe
Drugi typ danych obsługiwany w YAML to typy numeryczne. Typy liczbowe obejmują liczby całkowite, dziesiętne, sześciokadcicę, ósemkowe i inne typy numeryczne.
Poniższa składnia YAML reprezentuje typy numeryczne.
---#: Listy
Listy w YAML są określone przy użyciu pojedynczego deski rozdzielczej jako:
---#: Sekwencje
Sekwencje to typy danych używane do przechowywania wielu wartości w jednym samym kluczu. Na przykład:
---#: Mapowania
Mapowanie jest dość podobne do sekwencji, ale składa się z par kluczowych, wszystkie zawarte w jednej podgrupie.
Oto przykład:
---#: Zero
Ustawiamy zerowe w YAML za pomocą tylde (~) lub null ciągu, jak pokazano w poniższym przykładzie:
---#: Tablice
Tablice w YAML są określone za pomocą nawiasów kwadratowych w jednej linii. Poniższy przykład pokazuje definicję tablic w YAML.
---Komentarze Yaml
YAML obsługuje również komentarze, które pozwalają dodać dodatkowe informacje do danych YAML. Parser ignoruje komentarze.
Komentarze YAML zaczynają się od Octothorpe (#).Przetwarzaj YAML do JSON
W niektórych przypadkach może być konieczne przekonwertowanie YAML na JSON. Ponieważ oba są ściśle powiązane, sensowne jest potrzebne od drugiego.
W przypadku takich scenariuszy możemy użyć narzędzia takiego jak YQ, które jest parserem YAML/XML dla JQ.
Aby go zainstalować, użyj PIP z poleceniem, jak pokazano:
PIP3 Zainstaluj YQNOTATKA: Upewnij się, że masz zainstalowany JQ, ponieważ jest to wymagana zależność dla YQ.
Załóżmy, że mamy przykładowy plik tworzenia kapsułki Kubernetes (Kubernetes.YAML) z zawartością, jak pokazano:
---NOTATKA: Powyższy plik dotyczy celów ilustracyjnych i może zawierać błędy, jeśli używane w prawdziwej instancji Kubernetes.
Aby przekonwertować plik YAML na JSON, użyj polecenia:
sudo yq eval -j kubernetes.YamlPo wykonaniu powyższego polecenia zawartość pliku jest automatycznie konwertowana na JSON, jak pokazano poniżej:
To ułatwia działanie podczas przejścia z JSON na YAML i odwrotnie.
Wniosek
YAML to niezwykle potężne narzędzie, które pozwala budować wysoce czytelne i kompatybilne pliki konfiguracyjne dla usług wsparcia. Korzystając z koncepcji w tym samouczku, jesteś w stanie tworzyć złożone dokumenty YAML dla swoich aplikacji lub aplikacji obsługujących YAML.
Dziękuję i szczęśliwe kodowanie!