Yaml executa a mesma tarefa que JSON e Xml, Só que oferece um formato mais legível pelo homem. Com a YAML, seu foco está nos pares de valor-chave, com a ênfase principal no indentação e na separação de linhas. Além disso, a YAML tem muitos usos em mensagens na Internet, persistência de dados e compartilhamento de dados em linguagem cruzada.
Além disso, a YAML está encontrando seu lugar nas tecnologias existentes, e tecnologias como o Docker o estão adotando como a maneira moderna de escrever arquivos de configuração. Mesmo para idiomas como Python, temos o Pyyaml, que suporta o uso de YAML com Python.
Neste guia, aprenderemos tudo sobre YAML, da sintaxe aos exemplos, garantindo que você sai como um YAML Pro no final. Vamos começar.
Por que usar yaml
JSON e XML são maneiras populares de escrever arquivos de configuração. No entanto, a YAML está ganhando mais popularidade e aqui estão os seguintes motivos:
O arquivo yaml pode tomar o .yml ou .Yaml extensão.
Sintaxe YAML
A principal diferença entre YAML e XML ou JSON é como a estrutura de dados é definida. Para a YAML, a definição é baseada no recuo da linha e na separação de linha. Um espaçamento errado para a YAML levantará um erro, mas isso faz da YAML uma opção legível por humanos entre as três opções.
Ao trabalhar com a YAML, a sintaxe é centrada principalmente em pares de valores-chave, objetos, listas, comentários, strings de várias linhas, etc. Vamos cobrir cada um em detalhes e fornecer exemplos.
Pares de valor-chave
Ao usar a YAML, a maioria dos itens pega o formato do par de valores-chave. A chave significa o nome do par, e os dados anexados à chave é o valor. Um único valor armazenado se torna um escalar. É dos pares de valor-chave que outras construções para YAML são fundadas.
O par de valores-chave é representado como um mapeamento, onde o mapeamento associa os nós de valor-chave não ordenados. Idealmente, um mapeamento é criado definindo seu nome, seguido pelo cólon, a espaço, e os seus valor.
Aqui está um par simples de valor-chave para um arquivo de configuração.
Anteriormente, você observa que o mapeamento segue a sintaxe do valor-chave. Na primeira linha, a chave é o curso, e seu valor é o Introdução Yaml.
Observe que o recuo deve ser o mesmo. Caso contrário, ele levantará um erro como na imagem a seguir:
Trabalhando com cordas
Ao contrário de JSON e XML, a YAML não requer strings de envolvimento com aspas simples ou duplas. Se você os inclui em aspas ou não, o XML ainda capturará o valor como uma string.
O exemplo a seguir demonstra as diferentes maneiras de representar uma string no YAML:
Ao trabalhar com caracteres especiais, como o personagem Newline \ n, Você deve incluir a string para evitar a YAML tratando -a como uma string padrão em vez de um personagem especial.
Fazer isso faz a YAML reconhecer o personagem especial e lidar com ele como esperado.
Para strings, você pode fazer a YAML reconhecer uma string única e multi-line, dependendo de como você representa.
Se você tiver uma frase longa que deseja invadir várias frases, mas deseja que ela seja tratada como uma única linha pelo analisador, represente -a como mostrado abaixo:
Aqui, o truque é adicionar o Maior que sinal (>) para que o analisador possa tratar o valor como uma única linha. Além disso, você deve garantir que cada linha tenha o mesmo recuo. Caso contrário, você receberá um erro no seu par de valores-chave.
Para adicionar ao maior que o sinal, precisamos especificar se queremos que o último personagem seja preservado ao processar. No caso anterior, queríamos que cada último personagem de cada linha fosse preservado. Portanto, precisamos usar o >+ símbolo.
Se você quiser seguir cada uma das linhas anteriores com um \ n Para adicionar uma nova linha, use o tubo (|) símbolo em vez disso.
Veja como o novo código ficaria. Você pode optar por manter o último personagem adicionando um mais (+) ou não retê -lo adicionando um menos (-).
Com este método, você desfruta de uma maneira mais limpa de criar uma nova linha para o parágrafo em vez de adicionar o \ n no final.
Números
Você pode usar números como parte dos escalares no seu arquivo YAML. A YAML permite o uso de valores exponenciais, octal, decimais, inteiros, valores flutuantes e hexadecimal. Com a YAML, você não precisa enfatizar o tipo de número.
Basta adicioná -lo e, desde que não tenha cotações, a YAML o reconhecerá como um número, como segue:
boleano
A YAML suporta usando valores booleanos semelhantes à forma como você pode aplicá -los com várias linguagens de programação. Com a YAML, você pode criar um par de valores-chave onde o valor pode ser Sim/não, liga/desligado, e verdadeiro falso. Se você não deseja que o escalar seja tratado como um booleano, inclua -o dentro das citações.
Aqui está o seguinte exemplo de usar booleano com YAML:
Os três são os valores booleanos comuns que a YAML reconhece.
Comentários
YAML permite adicionar comentários. Para usar um comentário, use o # Antes da linha de comentários, e Yaml pulará a linha de comentários.
Observe que o recuo ou espaçamento de linha do comentário não afeta nada.
Nulo
Em um caso em que você tem um nulo, a YAML permite que você o represente usando o tilde (~) ou nulo palavra -chave.
Dê uma olhada no exemplo a seguir:
Qualquer uma das opções anteriores funcionará para o seu caso.
Objetos
Ao criar objetos, você deve colocar todos os seus atributos no mesmo nível de indentação. O recuo separa o nome do objeto e os atributos. Dessa forma, o analisador reconhecerá que você criou um objeto.
Vamos fornecer o seguinte exemplo:
Na imagem anterior, observe como cada atributo é recuado uma largura da margem, e todos os atributos têm o mesmo indentação. Você pode ter qualquer tipo de dados em seu objeto.
É assim que você representa um objeto em Yaml.
Lista
Para representar uma lista, adicione um hífen. Uma lista pode ser criada a partir de um objeto, onde você tem um objeto com várias subcategorias de atributos. Certifique -se de adicionar o recuo correto e a separação de linha para fazer um arquivo YAML válido.
No exemplo anterior, temos uma lista de membros que contêm o nome, a idade e a carreira de cada membro.
É possível criar uma lista aninhada a partir de um atributo de um objeto. Pode ser um dos atributos que têm muito valor. Nesse caso, você pode criar uma lista aninhada no YAML, como mostrado abaixo:
Para a lista aninhada, use um hífen para representar os dados primitivos sob o atributo e verifique se você adiciona o recuo e o espaçamento de linha necessário.
Como alternativa, você pode representar os dados primitivos em uma linha para criar um código mais limpo. Veja como a mesma lista aninhada pode ser expressa.
Ainda será analisado como uma lista/matriz YAML.
Trabalhando com vários arquivos YAML
A boa notícia com a YAML é que ele permite trabalhar com vários arquivos YAML em um documento. Esse recurso é útil para alguém que escreve um arquivo de configuração para coisas como ferramentas do docker. Melhora, pois você pode ter o mesmo nome de chave no documento, mas sob um arquivo YAML diferente.
Trabalhar com vários arquivos YAML e o hífens triplos (-) Para sinalizar o início do primeiro arquivo YAML e repita o mesmo para o outro arquivo.
Aqui está um exemplo de documento com três arquivos YAML.
Você deve adicionar os três hífens do último arquivo para sinalizar o fim.
Implementando âncoras e pseudônimo
Ao lidar com um grande arquivo de configuração, uma determinada configuração provavelmente será repetida em outros lugares do arquivo YAML. Nesse caso, isso levará à duplicação, e linhas desnecessárias serão usadas.
Felizmente, a YAML permite usar âncoras (&) e Alias (*) Para evitar esta duplicação. Vamos ter o seguinte exemplo de um arquivo de configuração:
No exemplo anterior, observe como temos detalhes de configuração duplicados para todos os chutes. Podemos evitar isso usando as âncoras para definir um pedaço de configuração e depois usar os aliases para se referir ao pedaço definido em outros lugares do código.
Dito isto, eis como podemos reescrever o arquivo de configuração anterior, eliminando a duplicação.
Agora temos um código mais limpo e simplificado, sem duplicação. Usar alias e âncora é útil quando os detalhes da configuração são os mesmos para todos os itens. No entanto, poderíamos dar um chute com diferentes tempos de teste ou versões para o nosso exemplo.
Nesse caso, invocamos o substituir (<<:) Para alterar os detalhes da âncora sem ter que reescrevê -lo novamente.
Aqui está um exemplo de implementação de um cenário de substituição de kick2 e kick3.
Ainda acabamos com um código simplificado.
Observação que você sempre pode verificar se seu arquivo YAML está correto usando um analisador online de sua escolha. Se você tiver um erro de recuperação ou espaçamento de linha, ele exibirá uma saída de erro para ajudá -lo a depurar seu arquivo, como no exemplo a seguir:
Trabalhando com variáveis ambientais
Ao criar um arquivo YAML, você pode utilizar uma variável ambiental invocando -a usando o sinal do dólar. Por exemplo, você pode usar o $ Usuário Variável ambiental ao escrever um arquivo de configuração que requer os detalhes de login do Linux.
Para fazer isso, use a variável ambiental como $ Usuário, e o analisador buscará o valor da variável de ambiente especificado.
Conclusão
A YAML é uma maneira avançada de criar arquivos de configuração e oferece uma sintaxe melhor para usar com Docker, Ansible e Kubernetes do que XML ou JSON. Com a YAML, você obtém um código de limpeza legível por humanos, o que significa que qualquer um pode acompanhar. Este guia apresentou os principais conceitos de usar YAML. Vimos a sintaxe a seguir para a YAML e damos vários exemplos para ajudá -lo a se sentir confortável usando YAML para suas atividades. Continue praticando para entender a sintaxe, e você vai adorar a simplicidade que vem com Yaml.