
YAML (YAML Ain’t Markup Language) é uma linguagem de serialização de dados legível por humanos, frequentemente usada para configuração de arquivos, troca de dados e definição de estruturas em ferramentas como Ansible, Kubernetesm, Docker Compose, GitHub Actions, Prometheus e outras ferramentas de CI/CD.
Atualmente ela está na versão 1.2.
Site do projeto: yaml.org
Extensão para VSCode: YAML Language Support by Red Hat.
Características do YAML:
- Legível e intuitivo – Sintaxe limpa, sem colchetes ou chaves.
- Baseado em indentação – Usa espaços (não tabs) para hierarquia.
- Case-sensitive – Diferencia maiúsculas de minúsculas.
- Tipos de dados suportados:
- Strings, números, booleanos (
true/false). - Listas (arrays) e dicionários (objetos/maps).
- Multilinhas, comentários e referências.
- Strings, números, booleanos (
Estrutura Básica do YAML
1. Pares Chave-Valor (Dicionários)
Usados para representar objetos ou propriedades:
yaml
pessoa: nome: João idade: 30 casado: false
Equivalente em JSON:
json
{
"pessoa": {
"nome": "João",
"idade": 30,
"casado": false
}
}
2. Listas (Arrays)
Itens sequenciais com hífen (-):
yaml
frutas: - maçã - banana - laranja
Equivalente em JSON:
json
{
"frutas": ["maçã", "banana", "laranja"]
}
3. Aninhamento
Combina dicionários e listas:
yaml
clientes:
- nome: Maria
pedidos: [1, 5, 9]
- nome: Pedro
pedidos: [2, 4]
Equivalente em JSON:
json
{
"clientes": [
{ "nome": "Maria", "pedidos": [1, 5, 9] },
{ "nome": "Pedro", "pedidos": [2, 4] }
]
}
4. Multilinhas e Texto Longo
Use | para preservar quebras de linha ou > para dobrar linhas:
yaml
descricao: | Este texto mantém as quebras de linha. resumo: > Este texto será juntado em uma linha.
5. Comentários
Linhas começando com #:
yaml
# Configuração do servidor porta: 8080 # Porta HTTP
6. Tipos Especiais
- Booleanos:
true,false,yes,no. - Nulos:
nullou~. - Datas:
2023-10-05.
Exemplo Prático (Docker Compose)
yaml
version: "3.8"
services:
web:
image: nginx:latest
ports:
- "80:80"
db:
image: postgres:13
environment:
POSTGRES_PASSWORD: senha123
Regras Importantes:
- Indentação: Sempre use espaços (2 ou 4), nunca tabs.
- Strings: Aspas são opcionais, exceto para caracteres especiais.
- Documentos Múltiplos: Separe com
---em um único arquivo.
YAML é amplamente usado por sua simplicidade e flexibilidade, especialmente em DevOps e automação.