Ok, se Yaml non è un linguaggio di markup, che cos'è?
Come accennato, YAML è un linguaggio serializzato di dati sviluppato per migliorare la leggibilità umana utilizzando il rientro e le strutture di dati native. Pensalo come un rigoroso superset di JSON o un incrocio tra JSON e XML. Questo ibrido gli consente di fare ciò che JSON può e più funzionalità aggiuntive.
Lo scopo di questo tutorial è di presentarti a Yaml, darti una guida sulla sintassi della lingua, fornirti strumenti rapidi per lavorare con YAML e insegnarti come usarlo per i file di configurazione e altro ancora.
Come scrivere yaml
Scrivere Yaml è incredibilmente intuitivo (immagino che sia il punto) in quanto utilizza la sintassi della coppia di valore chiave. Quindi, è come un dizionario in Python. Tuttavia, a differenza di Python, Yaml non consente la spaziatura delle schede; Usa spazi.
La sintassi generale è:
Chiave: valorePer iniziare un nuovo documento YAML, iniziamo con tre trattini che indicano l'inizio di un nuovo file.
Questa funzione consente di disporre più documenti separati dai trattini in un singolo file.
Crea un file con a .Estensione Yaml e aggiungi i seguenti contenuti.
---Come puoi vedere dal file sopra, ogni documento in YAML inizia con tre punti, seguiti dai dati memorizzati in coppie di valore chiave.
Installa un Linter Yaml
Prima di procedere ulteriormente, confermiamo che quello che abbiamo è un file YAML valido. Per fare questo, dobbiamo installare un maintempo.
Un Linter è uno strumento che controlla e notifica allo sviluppatore di errori di programmazione come errori di sintassi e costrutti non validi. Ad esempio, consente di verificare la sintassi valida di un file.
Nel nostro esempio, useremo Yamllint.
Per installare, utilizzare APT come:
Sudo Apt-get AggiornamentoUna volta installato, possiamo eseguire il linter contro il file usando il comando
echo -e 'Questa è una valida: sintassi yaml' | campione di yamllint.YamlSe il file contiene una sintassi di YAML valida, non ci dà alcun output.
Ora, prova ad aggiungere spazi all'interno del file YAML o aggiungi un singolo trattino in basso come:
---Se eseguiamo il linter contro questo file, gli errori vengono visualizzati, come mostrato di seguito:
campione.YamlNOTA: Come i dizionari in Python e strutture di dati simili in vari linguaggi di programmazione, le coppie di valore chiave in un documento YAML devono essere uniche.
Tipi di dati YAML
YAML supporta vari modi per rappresentare i dati. Loro includono:
#: Tipi scalari
Questi sono il tipo di dati più comune in YAML. Sono sotto forma di coppie di valore chiave, come mostrato nell'esempio sopra.
I valori in una coppia possono essere qualsiasi tipo come stringa, numeri inclusi esadecimale, numeri interi e simili.
#: Stringhe
YAML supporta anche stringhe racchiuse in singoli o doppi quote. Questo non è un requisito in quanto il parser YAML lo capirà ma può essere utile, specialmente nelle stringhe con personaggi di fuga.
Di seguito sono riportati esempi di stringhe valide in yaml.
---NOTA: Assicurarsi di chiudere le citazioni doppie o singole dove utilizzate. Quanto segue si tradurrà in un errore.
---Per aggiungere un paragrafo in un file YAML, utilizzare il segno (maggiore di). Ricorda di aggiungere uno spazio prima della linea. Per esempio:
---#: Tipi numerici
L'altro tipo di dati supportati in YAML è tipi numerici. I tipi numerici includono numeri interi, decimali, esadecimale, ottale e altri tipi numerici.
La seguente sintassi YAML rappresenta i tipi numerici.
---#: Elenchi
Gli elenchi in YAML sono specificati utilizzando un singolo trattino come:
---#: Sequenze
Le sequenze sono tipi di dati utilizzati per contenere più valori in un singolo la stessa chiave. Per esempio:
---#: Mappature
La mappatura è abbastanza simile a una sequenza ma composta da coppie di valore chiave tutte contenute in un sottogruppo.
Ecco un esempio:
---#: Nullo
Abbiamo impostato un null in yaml usando un tilde (~) o la stringa null come mostrato nell'esempio seguente:
---#: Array
Gli array in YAML sono specificati utilizzando le staffe quadrate in una singola linea. Il seguente esempio mostra la definizione di array in yaml.
---Commenti di Yaml
YAML supporta anche commenti che consente di aggiungere ulteriori informazioni ai dati YAML. Il parser ignora i commenti.
I commenti di Yaml iniziano con un Octothorpe (#).Elabora yaml a json
In alcuni casi, potremmo aver bisogno di convertire YAML in JSON. Poiché i due sono strettamente correlati, ha senso aver bisogno di uno dall'altro.
Per tali scenari, possiamo usare uno strumento come YQ, che è un parser YAML/XML per JQ.
Per installarlo, utilizzare PIP con il comando come mostrato:
PIP3 Installa yqNOTA: Assicurati di avere JQ installato in quanto è una dipendenza richiesta per YQ.
Supponiamo di avere un file di creazione di pod Kubernetes campione (Kubernetes.Yaml) con il contenuto come mostrato:
---NOTA: Il file sopra è a scopo di illustrazione e può contenere errori se utilizzato in un'istanza Kubernetes reale.
Per convertire il file YAML in JSON, utilizzare il comando:
sudo yq valuta -j kubernetes.YamlAl momento dell'esecuzione del comando sopra, il contenuto del file viene convertito automaticamente in JSON, come mostrato di seguito:
Ciò semplifica le opere quando si passa da JSON a YAML e viceversa.
Conclusione
Yaml è uno strumento incredibilmente potente che ti consente di creare file di configurazione altamente leggibili e compatibili per i servizi di supporto. Utilizzando i concetti in questo tutorial, sei in grado di costruire documenti YAML complessi per le tue applicazioni o applicazioni a supporto di YAML.
Grazie e felice programmazione!