Configuration YAML (.yaml)

Spécification Standard

YAML Ain't Markup Language (YAML) est le format de sérialisation de données dominant pour le DevOps moderne, l'infrastructure cloud (Kubernetes, Docker Compose) et l'automatisation CI/CD, mettant l'accent sur la lisibilité humaine grâce à une indentation par espaces claire.

Convertir YAML en JSON

Convertisseur gratuit de YAML vers JSON dans le navigateur. Convertissez des fichiers instantanément sur votre appareil.

Inspecter et métadonnées

Les systèmes d'exploitation et les analyseurs de fichiers identifient les fichiers YAML en inspectant la séquence d'octets binaires de tête :

Sélectionnez ou déposez des fichiers ici

Conversion 100 % privée dans le navigateur - les fichiers ne quittent jamais votre appareil

ou coller Ctrl+V
Garantie de confidentialité sans transmission réseau : 0 octet téléchargé vers des serveurs externes. Tout le traitement a lieu localement dans le bac à sable de votre navigateur.

Signature d'en-tête au niveau des octets (Magic Bytes)

Les systèmes d'exploitation et les analyseurs de fichiers identifient les fichiers YAML en inspectant la séquence d'octets binaires de tête :

SIGNATURE HEXADÉCIMALE (DÉCALAGE 0) :

2D 2D 2D 0A

REPRÉSENTATION ASCII : ---\n

Normalisation : Spécification YAML 1.2.2

Spécifications techniques

Architecture de conteneurFormat de sérialisation de données convivial basé sur l'indentation, sur-ensemble de JSON prenant en charge les ancres et les alias
CompressionFlux de texte non compressé
Boutisme des octetsFlux de texte UTF-8 / Unicode
Espaces colorimétriquesN/A (Sérialisation de données)
Canaux et structureMappages (dictionnaires clé-valeur), séquences (listes), types scalaires (chaînes, nombres, booléens) et ancres (&ref/*ref)
Dimensions maximalesTaille de document illimitée (prend en charge les flux multi-documents séparés par '---')
TransparenceAucune
Streaming et progressifLes flux multi-documents permettent un traitement séquentiel document par document

Matrice de comparaison technique : YAML vs Concurrents

Attribut techniqueYAML (Actuel)JSONTOMLXML
Style de syntaxeHiérarchie des espaces d'indentationCrochets et guillemets strictsTables et paires clé=valeurBalises d'ouverture/fermeture verbeuses
Prise en charge des commentairesNatif (commentaires #)Aucun commentaire autoriséNatif (commentaires #)<!-- commentaires -->
Adoption DevOpsNorme universelle (Kubernetes, CI/CD)Norme API universelleConfiguration de paquet Rust/PythonConfiguration d'entreprise héritée
Réutilisation des donnéesAncres natives (&) et alias (*)Aucune (duplication manuelle)Aucune (duplication manuelle)Entités XML

Modes de corruption courants et guide de récupération hexadécimale

Erreur d'analyseur : 'mapping values are not allowed here' ou erreur d'indentation.

Cause racine: Mélange de tabulations et d'espaces ou niveaux d'indentation mal alignés.

Récupération: Convertissez les tabulations en espaces et validez la syntaxe à l'aide du formateur YAML File2File.

Analyse de sécurité et vecteurs d'attaque de l'analyseur

Les analyseurs YAML prenant en charge les balises de type personnalisées (comme 'yaml.load()' de PyYAML) ont historiquement permis l'exécution de code à distance via l'instantiation d'objets arbitraires.

Vecteurs d'attaque connus

  • Exécution de code arbitraire par le biais de balises de désérialisation d'objets non sécurisées (par exemple, '!!python/object/apply').
  • Bombes d'expansion d'entités (l'équivalent du 'milliard de rires' utilisant des ancres et des alias YAML).
  • Vulnérabilités de confusion de type dues à l'analyse implicite des booléens et des horodatages.

Bonnes pratiques de défense: Utilisez toujours des analyseurs YAML sécurisés ('yaml.safe_load()' en Python) et appliquez des limites de profondeur d'expansion d'ancres.

Origines historiques et jalons

2021Publication de la révision YAML 1.2.2, affinant la compatibilité avec JSON et les définitions de grammaire formelle.
2009YAML 1.2 standardise YAML comme un sur-ensemble strict de JSON, ce qui signifie que tout JSON valide est un YAML valide.
2001Clark Evans, Ingy döt Net et Oren Ben-Kiki créent YAML comme alternative conviviale à XML.

Principaux avantages

  • La norme incontestée pour l'infrastructure cloud moderne : utilisée universellement dans les manifestes Kubernetes, Docker Compose et GitHub Actions.
  • Syntaxe propre et lisible : élimine l'encombrement des accolades, des crochets et des guillemets grâce à une indentation intuitive.
  • Prend en charge les références et les ancres (&anchor / *anchor) pour réutiliser des blocs de configuration répétés sans duplication.

Limites techniques

  • Sensible aux espaces : une tabulation accidentelle ou un seul espace supplémentaire peut corrompre la hiérarchie du document ou provoquer des erreurs d'analyse.
  • Célèbres bugs de coercition de type : les mots sans guillemets tels que 'no', 'on', 'yes' ou les codes de pays ('NO' pour la Norvège) peuvent devenir silencieusement des booléens.
  • Vitesse d'analyse nettement plus lente par rapport aux formats binaires ou au JSON strict.

Anecdotes techniques

  • YAML signifiait initialement 'Yet Another Markup Language', mais a été rebaptisé de manière humoristique par l'acronyme récursif 'YAML Ain't Markup Language' pour souligner la sérialisation des données.
  • Le « Problème norvégien » est un bogue de programmation célèbre où le code pays 'NO' dans un fichier YAML était analysé comme le booléen 'false'.
  • Chaque fichier JSON valide au monde est également simultanément un fichier YAML valide à 100 %.

Foire aux questions techniques

À quoi sert YAML ?

YAML est le langage de configuration principal pour le cloud computing, le déploiement de clusters Kubernetes, les fichiers Docker Compose, les flux de travail GitHub Actions et les paramètres logiciels.

Puis-je utiliser des tabulations dans les fichiers YAML ?

Non. La spécification YAML officielle interdit strictement l'utilisation de caractères de tabulation pour l'indentation ; vous devez toujours utiliser des espaces (généralement 2 espaces par niveau).

Comment puis-je convertir YAML en JSON ?

Vous pouvez convertir des fichiers YAML en JSON propre et validé en un seul clic à l'aide de File2File.app directement dans votre navigateur Web et en toute confidentialité.