Parser YAML
YAML (YAML Ain't Markup Language) e um formato de serializacao de dados legivel por humanos, popular para arquivos de configuracao. Esta ferramenta analisa YAML com suporte completo a especificacao 1.2, incluindo ancoras, aliases e fluxos multi-documento, e exibe o resultado em uma visualizacao de arvore interativa.
Especificacoes
Casos de Uso Comuns
- Analisar e validar manifestos Kubernetes (Deployments, Services, ConfigMaps)
- Ler arquivos Docker Compose e docker-compose.yml
- Depurar workflows do GitHub Actions, GitLab CI ou CircleCI
- Converter playbooks Ansible para JSON para processamento programatico
- Validar arquivos de valores de charts Helm
Funcionalidades
- Suporte completo a especificacao YAML 1.2
- Processar ancoras (&) e aliases (*) para conteudo reutilizavel
- Analisar fluxos multi-documento (separadores ---)
- Converter para JSON, TOML ou XML
- Validacao de sintaxe com mensagens de erro especificas por linha
- Visualizacao de arvore interativa para estruturas aninhadas
Exemplos
Kubernetes Deployment
Experimente →Um manifesto de Deployment Kubernetes definindo um pod nginx replicado.
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginxDocker Compose
Experimente →Um arquivo Docker Compose definindo servicos web e de banco de dados.
version: '3.8'
services:
web:
image: nginx:alpine
ports:
- "80:80"
db:
image: postgres:15
environment:
POSTGRES_PASSWORD: secretDicas
- YAML e sensivel a indentacao. Use espacos, nao tabs.
- Strings nao exigem aspas, a menos que contenham caracteres especiais.
- Use ancoras (&nome) e aliases (*nome) para evitar repeticao de conteudo.
- Strings de varias linhas podem usar escalares de bloco | (literal) ou > (dobrado).
Entendendo Parser YAML
YAML (YAML Ain't Markup Language) e um formato de serializacao de dados legivel por humanos amplamente utilizado em DevOps, infraestrutura em nuvem e configuracao de aplicacoes. Sua sintaxe baseada em indentacao elimina o ruido visual de colchetes e chaves, tornando-o o formato preferido para ferramentas de infraestrutura como codigo, pipelines CI/CD e orquestracao de conteineres.
A forca principal do YAML e a legibilidade. Um manifesto de Deployment Kubernetes, um workflow do GitHub Actions ou um arquivo Docker Compose em YAML pode ser compreendido com uma rapida olhada. O formato suporta escalares (strings, numeros, booleanos, null, datas), sequencias (arrays) e mapeamentos (pares chave-valor). Strings geralmente nao exigem aspas, conteudo de varias linhas pode usar blocos literais (|) ou blocos dobrados (>), e ancoras (&) com aliases (*) permitem definir um valor uma vez e referencia-lo varias vezes, reduzindo repeticao em grandes arquivos de configuracao.
YAML 1.2, a especificacao atual, e um superconjunto estrito de JSON: todo documento JSON valido tambem e YAML valido. Isso significa que voce pode misturar sintaxe YAML e JSON dentro do mesmo arquivo. O suporte a multi-documento via separador --- permite incorporar varios documentos independentes em um unico arquivo, comum em manifestos Kubernetes e templates Helm.
A principal armadilha do YAML e sua sensibilidade a espacos em branco. Tabs nao sao permitidos para indentacao (apenas espacos), e uma chave desalinhada pode alterar silenciosamente a estrutura do documento. O "problema da Noruega" — onde valores sem aspas como "no", "yes", "on" e "off" sao interpretados como booleanos — e outra fonte notoria de bugs. YAML 1.2 corrigiu alguns desses problemas, mas muitos parsers ainda usam regras do YAML 1.1 por padrao.
YAML 1.1 define um amplo conjunto de literais booleanos incluindo yes/no, on/off, true/false e suas variantes em maiusculas. Um codigo de pais como NO e analisado como booleano false, e a string "on" se torna true — o infame "problema da Noruega". YAML 1.2 restringe booleanos a apenas true e false, mas muitos parsers populares (incluindo PyYAML) ainda usam regras do YAML 1.1 por padrao. A solucao segura e sempre colocar aspas em strings que possam ser mal interpretadas. Caracteres de tab tambem sao estritamente proibidos para indentacao; apenas espacos sao permitidos, e um tab na indentacao causara um erro de analise. Dois espacos por nivel e a convencao mais comum.
YAML oferece dois estilos de escalar de bloco para strings de varias linhas. O escalar de bloco literal (|) preserva quebras de linha exatamente como escritas, tornando-o ideal para scripts incorporados ou consultas SQL. O escalar de bloco dobrado (>) junta linhas consecutivas com espacos, funcionando bem para descricoes longas ou paragrafos. Ambos os estilos suportam modificadores: |- e >- removem a quebra de linha final, enquanto |+ e >+ preservam todas as quebras de linha finais.
Ancoras e aliases sao o mecanismo do YAML para reutilizacao de conteudo. Uma ancora (&nome) marca um no para referencia posterior, e um alias (*nome) insere esse no em outro lugar no documento. Combinado com a chave de merge (<<: *defaults), esse padrao permite definir configuracoes compartilhadas uma vez e mesclá-las em varios mapeamentos. E particularmente util em configuracoes de CI/CD onde muitos jobs compartilham variaveis de ambiente, regras de cache ou etapas de implantacao comuns.