Ok, hvis Yaml ikke er markeringsspråk, hva er det?
Som nevnt er YAML et dataserialisert språk utviklet for å forbedre menneskelig lesbarhet ved å bruke innrykk og naturlige datastrukturer. Tenk på det som et strengt supersett av JSON eller en krysning mellom JSON og XML. Denne hybriden lar den gjøre det JSON kan og flere flere funksjoner.
Hensikten med denne opplæringen er å introdusere deg for YAML, gi deg en guide til syntaks på språket, gi deg raske verktøy for å jobbe med YAML og lære deg hvordan du bruker den til konfigurasjonsfiler og mer.
Hvordan du skriver yaml
Å skrive YAML er utrolig intuitivt (jeg antar at det er poenget) ettersom det bruker syntaks for nøkkelverdipar. Dermed er det som en ordbok i Python. I motsetning til Python, tillater YAML imidlertid ikke tabavstand; Den bruker mellomrom.
Den generelle syntaksen er:
Nøkkel: VerdiFor å starte et nytt YAML -dokument, starter vi med tre streker som indikerer begynnelsen på en ny fil.
Denne funksjonen lar deg få flere dokumenter atskilt med strekene i en enkelt fil.
Opprette en fil med en .YAML -utvidelse og legg til følgende innhold.
---Som du ser fra filen ovenfor, starter hvert dokument i YAML med tre prikker, etterfulgt av dataene som er lagret i nøkkelverdipar.
Installer en Yaml Linter
Før du fortsetter videre, la oss bekrefte at det vi har er en gyldig YAML -fil. For å gjøre dette, må vi installere en Yaml Linter.
En Linter er et verktøy som sjekker og varsler utvikleren av programmeringsfeil som syntaksfeil og ugyldige konstruksjoner. For eksempel lar det deg se etter den gyldige syntaksen til en fil.
I vårt eksempel skal vi bruke Yamllint.
For å installere, bruk APT som:
sudo apt-get oppdateringNår vi er installert, kan vi kjøre Linter mot filen ved hjelp av kommandoen
Echo -e 'Dette er en gyldig: YAML Syntax' | Yamllint prøve.YamlHvis filen inneholder gyldig YAML -syntaks, gir den ingen utdata.
Prøv nå å legge til mellomrom inne i YAML -filen eller legge til en enkelt strek i bunnen som:
---Hvis vi kjører Linter mot denne filen, vises feilene, som vist nedenfor:
prøve.YamlMERK: Som ordbøker i Python og lignende datastrukturer på forskjellige programmeringsspråk, må nøkkelverdiparene i et YAML-dokument være unik.
YAML -datatyper
YAML støtter forskjellige måter å representere data. De inkluderer:
#: Skalartyper
Dette er den vanligste datatypen i YAML. De er i form av nøkkelverdipar, som vist i eksemplet ovenfor.
Verdiene i et par kan være hvilken som helst type som streng, tall inkludert heksadesimal, heltall og slikt.
#: Strenger
YAML støtter også strenger innelukket i enkelt- eller dobbeltkvoter. Dette er ikke et krav da YAML -parseren vil finne ut av det, men kan være nyttig, spesielt i strenger med rømningskarakterer.
Følgende er eksempler på gyldige strenger i YAML.
---MERK: Forsikre deg om å lukke doble eller enkelt sitater der det brukes. Følgende vil resultere i en feil.
---For å legge til et avsnitt i en YAML -fil, bruk (større enn) tegnet. Husk å legge til et rom før linjen. For eksempel:
---#: Numeriske typer
Den andre datatypen som støttes i YAML er numeriske typer. Numeriske typer inkluderer heltall, desimaler, heksadesimale, oktale og andre numeriske typer.
Følgende YAML -syntaks representerer numeriske typer.
---#: Lister
Lister i YAML er spesifisert ved hjelp av en enkelt strek som:
---#: Sekvenser
Sekvenser er datatyper som brukes til å holde flere verdier i en enkelt den samme nøkkelen. For eksempel:
---#: Kartlegginger
Kartlegging er ganske lik en sekvens, men består av nøkkelverdipar alle inneholdt under en undergruppe.
Her er et eksempel:
---#: Null
Vi setter en null i YAML ved hjelp av en Tilde (~) eller strengen NULL som vist i eksemplet nedenfor:
---#: Arrays
Arrays i YAML er spesifisert ved hjelp av firkantede parenteser i en enkelt linje. Følgende eksempel viser definisjonen av matriser i YAML.
---Yaml kommenterer
YAML støtter også kommentarer som lar deg legge til ekstra informasjon i YAML -dataene. Parseren ignorerer kommentarer.
YAML -kommentarer begynner med en octothorpe (#).Behandle YAML til JSON
I noen tilfeller kan det hende vi må konvertere YAML til JSON. Siden de to er nært beslektede, er det fornuftig å trenge den ene fra den andre.
For slike scenarier kan vi bruke et verktøy som YQ, som er en YAML/XML -parser for JQ.
For å installere det, bruk Pip med kommandoen som vist:
PIP3 installer yqMERK: Forsikre deg om at du har JQ installert, da det er en nødvendig avhengighet for YQ.
Anta at vi har et eksempel på Kubernetes Pod Creation File (Kubernetes.yaml) med innholdet som vist:
---MERK: Ovennevnte fil er til illustrasjonsformål og kan inneholde feil hvis de brukes i en ekte Kubernetes -forekomst.
For å konvertere YAML -filen til JSON, bruk kommandoen:
sudo yq eval -j kubernetes.YamlNår du utfører kommandoen over, blir innholdet i filen automatisk konvertert til JSON, som vist nedenfor:
Det gjør verk enklere når du bytter fra JSON til YAML og omvendt.
Konklusjon
YAML er et utrolig kraftig verktøy som lar deg bygge svært lesbare og kompatible konfigurasjonsfiler for støttetjenester. Ved hjelp av konseptene i denne opplæringen er du i stand til å bygge komplekse YAML -dokumenter for applikasjonene dine eller applikasjoner som støtter YAML.
Takk og lykkelig koding!