Ok, se a Yaml não é marcar a linguagem, o que é?
Como mencionado, a YAML é uma linguagem serializada de dados desenvolvida para melhorar a legibilidade humana usando o indentação e as estruturas de dados nativos. Pense nisso como um superconjunto rigoroso de JSON ou um cruzamento entre JSON e XML. Este híbrido permite fazer o que o JSON pode e mais recursos adicionais.
O objetivo deste tutorial é apresentá -lo ao YAML, fornecer um guia sobre a sintaxe do idioma, fornecer ferramentas rápidas para trabalhar com a YAML e ensiná -lo a usá -lo para arquivos de configuração e mais.
Como escrever Yaml
Escrever Yaml é incrivelmente intuitivo (acho que esse é o ponto), pois utiliza a sintaxe do par de valores-chave. Assim, é como um dicionário em Python. No entanto, ao contrário do Python, a YAML não permite espaçamento de guias; Ele usa espaços.
A sintaxe geral é:
valor chavePara iniciar um novo documento YAML, começamos com três traços indicando o início de um novo arquivo.
Esse recurso permite que você tenha vários documentos separados pelos traços em um único arquivo.
Crie um arquivo com um .Extensão YAML e adicione o seguinte conteúdo.
---Como você pode ver no arquivo acima, cada documento no YAML começa com três pontos, seguidos pelos dados armazenados em pares de valor-chave.
Instale um linhador YAML
Antes de prosseguir, vamos confirmar que o que temos é um arquivo YAML válido. Para fazer isso, precisamos instalar um linhador YAML.
Um linhador é uma ferramenta que verifica e notifica o desenvolvedor de erros de programação, como erros de sintaxe e construções inválidas. Por exemplo, ele permite que você verifique a sintaxe válida de um arquivo.
Em nosso exemplo, usaremos Yamllint.
Para instalar, use o APT como:
Atualização de sudo apt-getDepois de instalado, podemos executar o linhador em relação ao arquivo usando o comando
eco -e 'Isso é válido: sintaxe da YAML' | amostra de Yamllint.YamlSe o arquivo contiver sintaxe YAML válido, ele não nos fornecerá nenhuma saída.
Agora, tente adicionar espaços dentro do arquivo YAML ou adicione um único traço na parte inferior como:
---Se executarmos o linhador contra esse arquivo, os erros aparecerão, como mostrado abaixo:
amostra.YamlOBSERVAÇÃO: Como dicionários em python e estruturas de dados semelhantes em várias linguagens de programação, os pares de valor-chave em um documento YAML devem ser únicos.
Tipos de dados YAML
A YAML suporta várias maneiras de representar dados. Eles incluem:
#: Tipos escalares
Estes são o tipo de dados mais comum no YAML. Eles estão na forma de pares de valor-chave, como mostrado no exemplo acima.
Os valores em um par podem ser qualquer tipo como string, números como hexadecimal, números inteiros e tal.
#: Cordas
A YAML também suporta strings incluídas em cenas únicas ou duplas. Isso não é um requisito, pois o analisador YAML descobrirá, mas pode ser útil, especialmente em cordas com personagens de fuga.
A seguir, são apresentados exemplos de strings válidos em Yaml.
---OBSERVAÇÃO: Certifique -se de fechar as citações duplas ou únicas, quando usado. O seguinte resultará em um erro.
---Para adicionar um parágrafo em um arquivo YAML, use o sinal (maior que). Lembre -se de adicionar um espaço antes da linha. Por exemplo:
---#: Tipos numéricos
O outro tipo de dados suportado no YAML são tipos numéricos. Os tipos numéricos incluem números inteiros, decimais, hexadecimal, octal e outros tipos numéricos.
A sintaxe YAML a seguir representa tipos numéricos.
---#: Listas
As listas no YAML são especificadas usando um único traço como:
---#: Sequências
Sequências são tipos de dados usados para manter vários valores em uma única chave. Por exemplo:
---#: Mapeamentos
O mapeamento é bastante semelhante a uma sequência, mas composto por pares de valor-chave, todos contidos em um subgrupo.
Aqui está um exemplo:
---#: Nulo
Definimos um nulo em Yaml usando um tilde (~) ou a string nula, como mostrado no exemplo abaixo:
---#: Matrizes
Matrizes em YAML são especificadas usando os colchetes em uma única linha. O exemplo a seguir mostra a definição de matrizes no YAML.
---Comentários da YAML
A YAML também suporta comentários que permitem adicionar informações extras aos dados da YAML. O analisador ignora comentários.
Os comentários da YAML começam com um octothorpe (#).Processe Yaml para JSON
Em alguns casos, podemos precisar converter YAML em JSON. Como os dois estão intimamente relacionados, faz sentido precisar de um do outro.
Para tais cenários, podemos usar uma ferramenta como YQ, que é um analisador Yaml/XML para JQ.
Para instalá -lo, use PIP com o comando como mostrado:
PIP3 Instale YQOBSERVAÇÃO: Certifique -se de ter o JQ instalado, pois é uma dependência necessária para YQ.
Suponha que tenhamos uma amostra do arquivo de criação do Kubernetes (Kubernetes.yaml) com o conteúdo como mostrado:
---OBSERVAÇÃO: O arquivo acima é para fins de ilustração e pode conter erros se usado em uma instância real de Kubernetes.
Para converter o arquivo YAML em JSON, use o comando:
Sudo YQ Eval -J Kubernetes.YamlAo executar o comando acima, o conteúdo do arquivo é automaticamente convertido em JSON, como mostrado abaixo:
Isso facilita as obras ao mudar de JSON para YAML e vice -versa.
Conclusão
A YAML é uma ferramenta incrivelmente poderosa que permite criar arquivos de configuração altamente legíveis e compatíveis para serviços de suporte. Usando os conceitos neste tutorial, você está em posição de criar documentos YAML complexos para seus aplicativos ou aplicativos que suportam YAML.
Obrigado e feliz codificação!