Vérifiépar Adam B.·révisé par FE Editorial·mis à jour Aug 3, 20263.3(31 votes)Merci pour votre évaluation !
RÉPONSE RAPIDE
Un fichier .yaml (ou .yml) est un fichier de données structurées ou de configuration en texte brut écrit en YAML, utilisé pour les pipelines CI/CD, Docker Compose, les manifestes Kubernetes et la configuration d'applications. Ouvrez-le dans n'importe quel éditeur de code - VS Code avec l'extension YAML est le choix le plus sûr car il signale les erreurs d'indentation. YAML nécessite des espaces pour l'indentation ; une tabulation parasite provoque une erreur d'analyse.
Développeur : Clark Evans, Ingy döt Net, Oren Ben-Kiki (YAML spec)Catégorie : Fichiers de développementStandard ouvertMIME: application/yaml
.yaml est un format de fichier texte utilisé pour l'échange de données entre diverses applications. YAML - acronyme de *YAML Ain't Markup Language* - est un standard pour organiser l'information dans un format lisible par l'homme et indépendant de la plateforme, utilisant des paires key: value basées sur l'indentation et encodées en UTF-8. L'analyse des fichiers .yaml nécessite l'installation d'une bibliothèque YAML ; les bibliothèques populaires incluent PyYAML (Python), js-yaml (JavaScript) et SnakeYAML (Java). Les fichiers .yaml sont parfois enregistrés avec l'extension .yml, qui est fonctionnellement identique. Au-delà de l'échange de données, les fichiers .yaml sont typiquement utilisés pour la sérialisation de données et pour l'écriture de fichiers de configuration dans des outils tels que Docker Compose, Kubernetes et GitHub Actions.
Sérialisation
La sérialisation est un terme utilisé en informatique. C'est un processus de traduction de données ou d'objets dans un format qui peut être stocké, transmis et reconstruit plus tard. Par exemple, deux institutions échangeant des données dans un format standardisé à l'aide d'applications différentes doivent sérialiser ces données avant de les envoyer. Les données sérialisées peuvent également être stockées dans un fichier - .yaml, .xml, .json, .toml, etc. - puis envoyées aux destinataires.
Un document .yaml peut optionnellement commencer par le marqueur de début de document --- et se terminer par ... ; cela permet également d'inclure plusieurs documents dans un seul fichier. Depuis YAML 1.2 (2009, révisé en 2021), tout fichier JSON valide est également un fichier YAML valide.
Sécurité et sûreté
RISQUE : MEDIUM
Un fichier YAML est du texte brut et ne s'exécute pas de lui-même, sa lecture est donc sûre. Deux risques réels : (1) les fichiers YAML de config (pipelines CI, Compose, K8s, Ansible) contiennent fréquemment des secrets - jetons, mots de passe, clés - ne les collez donc pas dans des validateurs en ligne non fiables et ne les validez pas publiquement. (2) Danger programmatique : charger du YAML non fiable avec un analyseur non sécurisé (par exemple yaml.load de PyYAML au lieu de yaml.safe_load) peut exécuter des objets ou du code arbitraires - utilisez toujours le chargeur sécurisé pour les fichiers auxquels vous ne faites pas confiance. Risque d'édition : une tabulation ou un espace mal aligné change silencieusement le sens, validez donc après édition.
Sublime TextFreemiumOuvrez le .yaml pour une édition rapide avec coloration YAML ; configurez « translate tabs to spaces » pour que l'indentation reste valide.
Windows NotepadIntégréOuvre le YAML en tant que texte pour un coup d'œil rapide - mais il n'affiche pas les espaces/tabulations, ce qui est risqué pour éditer du YAML sensible à l'indentation.
NotepadOpen-sourceOuvrez avec la coloration syntaxique YAML ; activez Affichage > Afficher le symbole > Afficher les espaces blancs pour maintenir une indentation correcte.
Visual Studio CodeGratuitOuvrez le fichier ; l'extension YAML intégrée ou celle de Red Hat offre la coloration syntaxique, des guides d'indentation, la validation de schéma et le soulignement des erreurs. Le meilleur choix pour YAML.
macOS3 apps
TextEditIntégréFormat > Convertir au format Texte d'abord, et désactivez les guillemets intelligents - mais il n'affichera pas les espaces blancs, préférez donc un éditeur de code pour l'édition.
Visual Studio CodeGratuitOuvrez le fichier ; l'extension YAML intégrée ou celle de Red Hat offre la coloration syntaxique, des guides d'indentation, la validation de schéma et le soulignement des erreurs. Le meilleur choix pour YAML.
Sublime Text / BBEditFreemiumOuvrez le .yaml dans un éditeur de code pour une coloration YAML appropriée et une indentation basée sur les espaces.
Linux3 apps
Visual Studio CodeGratuitOuvrez le fichier ; l'extension YAML intégrée ou celle de Red Hat offre la coloration syntaxique, des guides d'indentation, la validation de schéma et le soulignement des erreurs. Le meilleur choix pour YAML.
GNOME Text Editor / geditOpen-sourceOuvrez avec la coloration YAML ; réglez-le pour insérer des espaces (pas de tabulations) avant d'éditer.
vim / nanoOpen-sourceÉditez dans le terminal ; dans Vim, utilisez « :set expandtab » pour que l'indentation utilise des espaces. Standard pour les fichiers de configuration de serveur.
Web1 app
YAML Lint / online YAML validatorsGratuitCollez le fichier pour valider la syntaxe et le mettre en forme dans le navigateur. Ne collez pas de secrets - les fichiers YAML de config contiennent souvent des identifiants.
Détails techniques
spécifications approfondies
Extension de fichier
.yaml (également .yml)
Type MIME
application/yaml
Encodage
Texte brut UTF-8 ; pas d'en-tête binaire ni de magic bytes
Structure
Paires clé: valeur basées sur l'indentation ; l'indentation utilise uniquement des espaces - les tabulations sont interdites par la spécification
Marqueurs de document
--- marque le début du document, ... marque la fin du document ; plusieurs documents peuvent coexister dans un seul fichier
YAML 1.2 (2009, révisé en 2021) ; remplace YAML 1.1 (2005) et YAML 1.0 (2001)
Compatibilité JSON
Depuis YAML 1.2, tout document JSON valide est également un document YAML valide - JSON est un sous-ensemble strict
Commentaires
Commentaires sur une seule ligne introduits par # ; peuvent apparaître sur leur propre ligne ou en ligne après une valeur
Chaînes multilignes
Le scalaire de bloc littéral (|) préserve les sauts de ligne ; le scalaire replié (>) convertit les sauts de ligne en espaces
Anres et alias
& définit une ancre nommée et * y fait référence (alias), permettant la réutilisation de valeurs sans duplication
Développeurs
Clark Evans, Ingy döt Net, Oren Ben-Kiki
Cas d'utilisation courants
Fichiers de configuration (Kubernetes, Docker Compose, GitHub Actions, Ansible), sérialisation de données, définitions OpenAPI
Guillemets
Chaînes sans guillemets, avec guillemets simples ('...') et doubles ("...") toutes supportées ; les guillemets doubles autorisent les séquences d'échappement
Aucune - il s'agit du même format YAML avec deux extensions. .yml est l'ancienne forme à 3 lettres. Utilisez celle que l'outil attend ; vous pouvez simplement renommer le fichier.
Comment ouvrir un fichier .yaml ?
Avec n'importe quel éditeur de code ou de texte. VS Code (avec l'extension YAML) est idéal car il met en évidence la structure et signale les erreurs d'indentation ; Notepad++ et Sublime fonctionnent également. C'est du texte brut, donc Notepad l'ouvre - mais il n'affichera pas les espaces blancs, auxquels YAML accorde de l'importance.
Pourquoi mon YAML donne-t-il une erreur d'indentation ou d'analyse ?
YAML utilise des espaces pour la structure et interdit les tabulations, donc une tabulation parasite ou une ligne mal alignée le casse. Ouvrez-le dans un éditeur compatible YAML (afficher les espaces blancs, convertir les tabulations en espaces) ou collez-le dans un validateur YAML en ligne pour trouver la ligne exacte.
Comment convertir du YAML en JSON ?
Utilisez « yq -o=json file.yaml », une commande VS Code ou un convertisseur en ligne. C'est essentiellement sans perte puisque JSON est un sous-ensemble de YAML - seuls les commentaires sont supprimés.
Puis-je utiliser des tabulations en YAML ?
Non. YAML n'autorise que les espaces pour l'indentation ; les tabulations provoquent une erreur d'analyse. Configurez votre éditeur pour insérer des espaces (par exemple « :set expandtab » dans Vim, ou « translate tabs to spaces » dans Sublime).
Le YAML est-il réservé à Python ?
Non - c'est une idée reçue courante. YAML est indépendant du langage et est utilisé partout : Docker Compose, Kubernetes, GitHub Actions, Ansible, les applications Go/Java/JS et plus encore. Python dispose simplement d'une bibliothèque YAML très populaire (PyYAML).