Yaml esegue lo stesso compito di JSON E XML, Solo che offre un formato più leggibile dall'uomo. Con YAML, il suo focus è sulle coppie di valore chiave, con l'enfasi principale sulla rientranza e sulla separazione delle linee. Inoltre, Yaml ha molti usi nella messaggistica Internet, nella persistenza dei dati e nella condivisione dei dati incrociati.
Inoltre, Yaml sta trovando il suo posto nelle tecnologie esistenti e tecnologie come Docker lo stanno adottando come il modo moderno di scrivere file di configurazione. Anche per lingue come Python, abbiamo il Pyyaml, che supporta l'uso di yaml con python.
In questa guida, impareremo tutto su Yaml, dalla sintassi agli esempi, assicurandoti come un YAML Pro alla fine. Iniziamo.
Perché usare Yaml
JSON e XML sono modi popolari di scrivere file di configurazione. Tuttavia, Yaml sta guadagnando più popolarità, ed ecco i seguenti motivi:
Il file yaml può prendere il .YML O .Yaml estensione.
Sintassi di Yaml
La differenza chiave tra YAML e XML o JSON è come viene definita la struttura dei dati. Per YAML, la definizione si basa sul rientro della linea e sulla separazione della linea. Una spaziatura sbagliata per Yaml aumenterà un errore, ma ciò rende Yaml un'opzione leggibile dall'uomo tra le tre opzioni.
Quando si lavora con YAML, la sintassi è principalmente centrata su coppie di valore chiave, oggetti, elenchi, commenti, stringhe multilinea, ecc. Copriamo ciascuno in dettaglio e forniamo esempi.
Coppie di valore chiave
Quando si utilizza YAML, la maggior parte degli articoli assume il formato della coppia di valore chiave. La chiave sta per il nome della coppia e i dati allegati alla chiave sono il valore. Un singolo valore memorizzato diventa uno scalare. È dalle coppie di valore chiave che vengono fondate altre costruzioni per Yaml.
La coppia di valore chiave viene rappresentata come una mappatura, in cui la mappatura associa i nodi non ordinati. Idealmente, una mappatura viene creata definendo la sua nome, seguito dal colon, UN spazio, e il suo valore.
Ecco una semplice coppia di valore chiave per un file di configurazione.
In precedenza, si nota che la mappatura segue la sintassi del valore chiave. Nella prima riga, la chiave è il corso, e il suo valore è il Introduzione Yaml.
Si noti che il rientro deve essere lo stesso. Altrimenti, aumenterà un errore come nella seguente immagine:
Lavorare con le corde
A differenza di JSON e XML, YAML non richiede stringhe racchiuse con virgolette singole o doppie. Sia che li alleggi tra virgolette o meno, XML catturerà comunque il valore come stringa.
L'esempio seguente dimostra i diversi modi di rappresentare una stringa in YAML:
Quando si lavora con personaggi speciali, come il personaggio di Newline \N, Dovresti racchiudere la stringa per evitare che Yaml la trattasse come una stringa standard anziché un carattere speciale.
In questo modo fa sì che Yaml riconosca il carattere speciale e lo gestisca come previsto.
Per le stringhe, puoi far riconoscere a Yaml una stringa singola e multilinea, a seconda di come la rappresenti.
Se hai una frase lunga che vuoi rompere in più frasi ma vuoi che venga trattata come una singola riga dal parser, rappresentala come mostrato di seguito:
Qui, il trucco è aggiungere il più grande di cartello (>) in modo che il parser possa trattare il valore come una singola riga. Inoltre, è necessario assicurarsi che ogni riga abbia la stessa rientranza. Altrimenti, otterrai un errore nella tua coppia di valore chiave.
Per aggiungere al segno più grande, dobbiamo specificare se vogliamo che l'ultimo carattere venga preservato durante l'elaborazione. Nel caso precedente, volevamo che ogni ultimo carattere di ogni riga fosse preservata. Pertanto, dobbiamo usare il >+ simbolo.
Se vuoi seguire ciascuna delle righe precedenti con un \N Per aggiungere una nuova riga, usa il Pipe (|) simbolo invece.
Ecco come sarebbe il nuovo codice. Puoi scegliere di conservare l'ultimo personaggio aggiungendo un più (+) o non mantenerlo aggiungendo un meno (-).
Con questo metodo, ti godi un modo più pulito di creare una nuova linea per il paragrafo invece di aggiungere il \ n alla fine.
Numeri
È possibile utilizzare i numeri come parte degli scalari nel tuo file yaml. YAML consente l'utilizzo di esponenziali, ottali, decimali, numeri interi, valori galleggianti ed esadecimale. Con YAML, non è necessario enfatizzare il tipo di numero.
Basta aggiungerlo e a condizione che non abbia quotazioni, Yaml lo riconoscerà come un numero, come segue:
Booleano
YAML supporta utilizzando valori booleani simili a come si possono applicarli con vari linguaggi di programmazione. Con YAML, puoi creare una coppia di valore chiave in cui il valore può essere Sì/No, ond/off, E vero falso. Se non vuoi che lo scalare sia trattato come un booleano, lo racchiude entro citazioni.
Ecco il seguente esempio dell'uso booleano con YAML:
I tre sono i valori booleani comuni che Yaml riconosce.
Commenti
Yaml consente di aggiungere commenti. Per usare un commento, usa il # Prima della riga dei commenti e Yaml salterà la riga dei commenti.
Si noti che il rientro o la spaziatura della linea del commento non influisce su nulla.
Nullo
In un caso in cui hai un null, Yaml ti consente di rappresentarlo usando il tilde (~) O nullo parola chiave.
Dai un'occhiata al seguente esempio:
Una delle opzioni precedenti funzionerà per il tuo caso.
Oggetti
Quando si crea oggetti, è necessario posizionare tutti i loro attributi allo stesso livello di rientro. Il rientro separa il nome dell'oggetto e gli attributi. In questo modo, il parser riconoscerà di aver creato un oggetto.
Forniamo il seguente esempio:
Nell'immagine precedente, nota come ogni attributo è rientrato da una larghezza dal margine e tutti gli attributi hanno la stessa rientranza. Puoi avere qualsiasi tipo di dati nel tuo oggetto.
È così che rappresenti un oggetto in Yaml.
Elenco
Per rappresentare un elenco, aggiungi un file trattino. Un elenco può essere creato da un oggetto, in cui si dispone di un oggetto con vari sottocategoria di attributi. Assicurati di aggiungere la corretta indentazione e la separazione delle linee per creare un file YAML valido.
Nell'esempio precedente, abbiamo un elenco di membri contenenti il nome, l'età e la carriera di ciascun membro.
È possibile creare un elenco nidificato da un attributo di un oggetto. Potrebbe essere uno degli attributi che hanno un sacco di valore. In tal caso, è possibile creare un elenco nidificato in YAML, come mostrato di seguito:
Per l'elenco nidificato, utilizzare un trattino per rappresentare i dati primitivi sotto l'attributo e assicurarsi di aggiungere il rientro richiesto e la spaziatura delle linee.
In alternativa, è possibile rappresentare i dati primitivi su una riga per creare un codice più pulito. Ecco come può essere espressa la stessa lista nidificata.
Verrà comunque analizzato come un elenco/array di yaml.
Lavorare con più file YAML
La buona notizia con YAML è che consente di lavorare con più file YAML su un documento. Questa funzione è utile per qualcuno che scrive un file di configurazione per cose come Docker Tools. Migliora perché puoi avere lo stesso nome chiave nel documento ma con un file YAML diverso.
Per lavorare con più file YAML e il Tripli tratti (-) per segnalare l'inizio del primo file YAML e ripetere lo stesso per l'altro file.
Ecco un esempio di un documento con tre file yaml.
È necessario aggiungere i tre trattini per l'ultimo file per segnalare la fine.
Implementazione di ancore e alias
Quando si tratta di un file di configurazione di grandi dimensioni, una determinata configurazione verrà probabilmente ripetuta altrove nel file YAML. In tal caso, porterà alla duplicazione e verranno utilizzate linee inutili.
Fortunatamente, Yaml consente di utilizzare Anchors (&) E Alias (*) Per evitare questa duplicazione. Diamo il seguente esempio di un file di configurazione:
Nell'esempio precedente, nota come abbiamo dettagli di configurazione duplicati per tutti i calci. Possiamo evitarlo usando gli ancore per definire un blocco di configurazione, quindi usando gli alias per fare riferimento al blocco definito altrove nel codice.
Detto questo, ecco come possiamo riscrivere il file di configurazione precedente, eliminando la duplicazione.
Ora abbiamo un codice più pulito e semplificato senza duplicazione. L'uso di alias e ancoraggio è utile quando i dettagli di configurazione sono gli stessi per tutti gli elementi. Tuttavia, potremmo avere un calcio con tempi di prova o versioni diversi per il nostro esempio.
In tal caso, invochiamo il Ovrava (<<:) Per cambiare i dettagli dell'ancora senza doverlo riscriverli di nuovo.
Ecco un esempio di implementazione di uno scenario di sovraccarico di kick2 e kick3.
Finiamo ancora con un codice semplificato.
Nota che puoi sempre verificare che il tuo file yaml sia corretto utilizzando un parser online di tua scelta. Se si dispone di un errore di spaziatura di rientro o di linea, visualizzerà un output di errore per aiutarti a eseguire il debug del file, come nell'esempio seguente:
Lavorare con le variabili ambientali
Quando si crea un file YAML, è possibile utilizzare una variabile ambientale invocandolo utilizzando il segno del dollaro. Ad esempio, potresti usare il $ Utente Variabile ambientale quando si scrive un file di configurazione che richiede i dettagli di accesso Linux.
Per fare ciò, utilizzare la variabile ambientale come $ Utente, e il parser prenderà il valore della variabile di ambiente specificato.
Conclusione
YAML è un modo avanzato di creare file di configurazione e offre una sintassi migliore da utilizzare con Docker, Ansible e Kubernetes di XML o JSON. Con Yaml, ottieni un codice più pulito leggibile dall'uomo, il che significa che chiunque può seguire. Questa guida ha presentato i principali concetti dell'uso di yaml. Abbiamo visto la sintassi da seguire per YAML e dato vari esempi per aiutarti a sentirti a tuo agio nell'uso di YAML per le tue attività. Continua a praticare per capire la sintassi e adorerai la semplicità che viene fornita con Yaml.