📝
developpement

YAML

Format de serialisation de donnees lisible utilise pour la configuration.

Definition

YAML (YAML Ain't Markup Language) est un format de serialisation de donnees concu pour etre lisible par les humains. Il est devenu le standard pour les fichiers de configuration dans l'ecosysteme DevOps et cloud-native.

YAML est un sur-ensemble de JSON : tout fichier JSON valide est aussi un fichier YAML valide.

Syntaxe de base

# Ceci est un commentaire (JSON ne supporte pas les commentaires !)

# Scalaires
nom: Alice Dupont
age: 30
actif: true
email: alice@exemple.com

# Objet imbrique
adresse:
  rue: 123 rue de la Paix
  ville: Paris
  cp: "75001"  # Guillemets pour forcer le type string

# Liste
langages:
  - Python
  - JavaScript
  - Go

# Liste inline
tags: [devops, cloud, kubernetes]

# Texte multi-ligne (block scalar)
description: |
  Ceci est un texte
  sur plusieurs lignes.
  Les sauts de ligne sont preserves.

resume: >
  Ceci est un texte long
  qui sera joint en une
  seule ligne.

Ou YAML est utilise

Outil Fichier
Docker Compose docker-compose.yml
Kubernetes deployment.yaml, service.yaml
GitHub Actions .github/workflows/*.yml
GitLab CI .gitlab-ci.yml
Ansible playbooks, inventory
Helm Chart.yaml, values.yaml
CloudFormation templates

Exemple : Docker Compose

version: "3.8"
services:
  api:
    build: .
    ports:
      - "3000:3000"
    environment:
      DATABASE_URL: postgresql://user:pass@db:5432/mydb
    depends_on:
      - db
  db:
    image: postgres:16
    environment:
      POSTGRES_PASSWORD: secret
    volumes:
      - pgdata:/var/lib/postgresql/data

volumes:
  pgdata:

Pieges courants

L'indentation compte (espaces, PAS de tabs !)

# CORRECT (2 espaces)
parent:
  enfant: valeur

# ERREUR (tab)
parent:
	enfant: valeur

Les valeurs ambigues

# Attention : "yes", "no", "on", "off" sont interpretes comme booleens !
actif: yes    # boolean true
code: "yes"   # string "yes"

# Les nombres avec leading zeros
version: 010   # octal (8) !
version: "010" # string "010"

YAML vs JSON vs TOML

YAML JSON TOML
Commentaires Oui Non Oui
Lisibilite Excellente Bonne Bonne
Complexite Elevee (ancres, tags) Faible Faible
Erreurs courantes Indentation, types Virgules, guillemets Peu
Usage principal DevOps, config API, data exchange Config (Rust, Go)

Besoin d'aide technique ?

Decrivez votre projet pour des conseils personnalises par nos experts.

Recevoir des conseils

Questions frequentes

YAML ou JSON pour la configuration ?
YAML pour les fichiers edites par des humains (commentaires, lisibilite). JSON pour les fichiers generes ou echanges par des machines (API, stockage).
Pourquoi YAML est-il critique pour les erreurs d'indentation ?
YAML utilise l'indentation pour definir la hierarchie (comme Python). Une tabulation au lieu d'espaces, ou une indentation inconsistante, provoque des erreurs de parsing silencieuses.
.yml ou .yaml comme extension ?
Les deux sont valides. La convention officielle YAML recommande .yaml, mais .yml est tres repandu (Docker, GitHub Actions). Choisissez l'un et restez coherent.

Pages liees

Chaque semaine, le meilleur de la tech francaise

Tendances, salaires, outils et opportunites — directement dans votre boite mail.

Gratuit. Desabonnement en un clic. Pas de spam.