alltools.one
YAML
2025-07-06
8 min
alltools.one Team
YAMLSyntaxConfigurationDevOps

Tutoriel de Syntaxe YAML : Une Introduction Pratique

YAML (YAML Ain't Markup Language) est un format de sérialisation de données lisible par l'humain largement utilisé dans les fichiers de configuration, les pipelines CI/CD et l'infrastructure-as-code. Si vous travaillez avec Docker Compose, Kubernetes, GitHub Actions ou Ansible, vous utilisez déjà YAML quotidiennement. Ce tutoriel couvre tout ce dont vous avez besoin pour écrire du YAML avec confiance.

Pourquoi YAML ?

L'avantage principal de YAML est la lisibilité. Comparez les mêmes données en JSON et YAML :

JSON :

{
  "server": {
    "host": "localhost",
    "port": 8080,
    "debug": true,
    "allowed_origins": ["http://localhost:3000", "https://example.com"]
  }
}

YAML :

server:
  host: localhost
  port: 8080
  debug: true
  allowed_origins:
    - http://localhost:3000
    - https://example.com

YAML atteint la même structure avec moins de ponctuation. Pas d'accolades, pas de crochets pour les cas simples, pas de guillemets obligatoires. Cela rend les fichiers de configuration plus faciles à lire et à modifier manuellement.

Types de Données de Base

Scalaires

YAML infère automatiquement les types à partir des valeurs :

string: hello world          # String (no quotes needed)
quoted: "hello world"        # Explicit string
integer: 42                  # Integer
float: 3.14                  # Float
boolean: true                # Boolean (true/false, yes/no, on/off)
null_value: null             # Null (also ~ or empty)
date: 2025-01-15             # Date (ISO 8601)

Piège courant : Les valeurs comme yes, no, on, off sont interprétées comme des booléens. Si vous voulez la chaîne "yes", mettez-la entre guillemets : "yes".

Chaînes et Guillemets

Les chaînes ont rarement besoin de guillemets, mais certains cas l'exigent :

plain: This is a plain string
single: 'Preserves \n as literal backslash-n'
double: "Interprets \n as newline"
colon: "value: with colon needs quotes"
hash: "value # with hash needs quotes"

Chaînes Multilignes

YAML a deux styles multilignes :

Bloc littéral (|) — préserve les retours à la ligne :

description: |
  This is line one.
  This is line two.
  
  This is line four (after blank line).

Bloc replié (>) — joint les lignes avec des espaces :

description: >
  This is a long paragraph
  that will be folded into
  a single line.

Ajoutez - pour supprimer les retours à la ligne finaux (|-, >-) ou + pour les conserver (|+, >+).

Collections

Listes (Séquences)

# Block style
fruits:
  - apple
  - banana
  - cherry

# Flow style (inline)
fruits: [apple, banana, cherry]

Maps (Mappings)

# Block style
person:
  name: Alice
  age: 30
  city: London

# Flow style
person: {name: Alice, age: 30, city: London}

Structures Imbriquées

departments:
  - name: Engineering
    lead: Alice
    members:
      - Bob
      - Charlie
  - name: Design
    lead: Diana
    members:
      - Eve

Ancres et Alias

Les ancres (&) et les alias (*) vous permettent de réutiliser des valeurs :

defaults: &defaults
  adapter: postgres
  host: localhost
  port: 5432

development:
  database: dev_db
  <<: *defaults

production:
  database: prod_db
  <<: *defaults
  host: db.example.com  # Override the default

La clé de fusion << incorpore toutes les propriétés de l'ancre. Les propriétés définies après la fusion remplacent les valeurs ancrées. En savoir plus sur les patrons d'ancres avancés dans notre guide des ancres et alias YAML.

Documents Multiples

Un seul fichier YAML peut contenir plusieurs documents séparés par --- :

---
# Document 1: Config
apiVersion: v1
kind: ConfigMap
---
# Document 2: Service
apiVersion: v1
kind: Service

Ceci est couramment utilisé dans les manifestes Kubernetes.

Pièges Courants

1. Erreurs d'Indentation

YAML utilise des espaces, jamais des tabulations. L'indentation incohérente est l'erreur la plus courante :

# WRONG - mixed indentation
server:
  host: localhost
    port: 8080  # Error: unexpected indentation

# CORRECT
server:
  host: localhost
  port: 8080

Utilisez notre Formateur YAML pour corriger automatiquement les problèmes d'indentation.

2. Le Problème de la Norvège

Les codes pays comme NO (Norvège) sont interprétés comme le booléen false :

# WRONG
countries:
  - NO  # Interpreted as false!
  - SE
  - DK

# CORRECT
countries:
  - "NO"
  - SE
  - DK

3. Caractères Spéciaux sans Guillemets

Les deux-points, dièses et crochets dans les valeurs nécessitent des guillemets :

# WRONG
message: Error: file not found
url: http://example.com  # Might break

# CORRECT
message: "Error: file not found"
url: "http://example.com"

4. Piège des Numéros de Version

Les numéros de version comme 1.0 sont parsés comme des flottants :

# WRONG
version: 1.0  # Becomes 1 (float)

# CORRECT
version: "1.0"  # String

Valider le YAML

Validez toujours votre YAML avant de déployer. Les erreurs de syntaxe dans le YAML peuvent causer des échecs cryptiques dans les applications. Notre Validateur YAML vérifie la syntaxe instantanément, en mettant en surbrillance la ligne et la colonne exactes de toute erreur.

Pour une exploration plus approfondie des différences entre YAML et JSON, consultez notre comparaison YAML vs JSON.

FAQ

Combien d'espaces dois-je utiliser pour l'indentation YAML ?

Deux espaces est la convention la plus courante, utilisée par Kubernetes, Docker Compose, GitHub Actions et la plupart des outils DevOps. Certains projets utilisent quatre espaces. La règle clé est la cohérence au sein d'un fichier — ne mélangez jamais les niveaux d'indentation.

YAML supporte-t-il les commentaires ?

Oui, YAML supporte les commentaires sur une seule ligne avec #. Il n'y a pas de syntaxe de commentaire multiligne. Les commentaires sont supprimés lors du parsing et ne sont pas disponibles dans la structure de données chargée.

Ressources Connexes

Published on 2025-07-06
YAML Syntax Tutorial: A Practical Introduction | alltools.one