Sintaxe
Regras Básicas
IndentaçãoApenas espaços (sem tabs), profundidade consistente
#Comentário (até o final da linha)
---Marcador de início de documento
...Marcador de fim de documento
Sensível a maiúsculasChaves e valores diferenciam maiúsculas e minúsculas
Exemplo Mínimo
--- name: Alice age: 30 active: true
Escalares
Tipos de Escalar
helloString (sem aspas)
"hello"String (aspas duplas, permite escapes)
'hello'String (aspas simples, literal)
42 / 3.14Número (inteiro / decimal)
true / falseBooleano
null / ~Valor nulo
2026-03-26Data (ISO 8601)
Regras de Aspas
plain: sem aspas necessárias special: "dois-pontos: e cerquilha # precisam de aspas" escape: "linha\nnova" literal: 'sem \n escape aqui'
Sequências
Sequência em Bloco
fruits: - apple - banana - cherry
Sequência de Fluxo (Em Linha)
colors: [red, green, blue] matrix: [[1, 2], [3, 4]]
Sequência de Objetos
users: - name: Alice role: admin - name: Bob role: user
Mapeamentos
Mapeamento em Bloco
server: host: localhost port: 8080 debug: false
Mapeamento de Fluxo (Em Linha)
point: {x: 10, y: 20}
Chaves Complexas
? [first, second] : "valor de chave composta"
Âncoras e Aliases
Definir e Reutilizar
defaults: &defaults timeout: 30 retries: 3 production: <<: *defaults timeout: 60
Referência
&nameDefinir uma âncora
*nameReferenciar (alias) uma âncora
<<Chave de mesclagem — mesclar mapeamento no atual
Strings Multi-linha
Escalares em Bloco
| (literal)Preserva quebras de linha exatamente
> (dobrado)Dobra quebras de linha em espaços
|+ (manter)Literal, manter quebras de linha finais
|- (remover)Literal, remover quebras de linha finais
>- (dobrar+remover)Dobrado, remover quebras de linha finais
Bloco Literal
script: | echo "line one" echo "line two"
Bloco Dobrado
description: > Este texto longo será dobrado em uma única linha com espaços.
Tags
Tags de Tipo
!!str 42Forçar valor para string "42"
!!int "42"Forçar valor para inteiro 42
!!float 1Forçar valor para decimal 1.0
!!bool "true"Forçar valor para booleano
!!null ""Forçar valor para nulo
!!binaryDados binários codificados em Base64
Exemplo de Tag
port: !!str 8080 enabled: !!bool "yes" version: !!float 3
Padrões Comuns
Docker Compose
services: web: image: nginx:alpine ports: ["80:80"] environment: NODE_ENV: production
GitHub Actions
on: [push, pull_request] jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4
Dicas
yamllintValidar YAML quanto a sintaxe e estilo
yqProcessador YAML de linha de comando (como jq)
Evitar NorwayNO é false booleano — colocar aspas em códigos de países
Evitar !!pythonNunca carregar YAML não confiável com carregadores inseguros