【やむる】
YAML とは?
💡 「インデントで整理」する設定ファイルの定番
📌 このページのポイント
- YAML Ain't Markup Language の略(再帰的略語)
- Docker Compose、Kubernetes、GitHub Actionsなどの設定ファイルで使用
- JSONの上位互換で、JSONをYAMLとしてパース可能
- インデントミスがエラーの原因になりやすい
YAMLってどこで使うの?
YAMLで失敗しやすいポイントは?
①インデントにタブを使うとエラー(スペースのみ)、②インデントのずれが意味を変える、③「yes」「no」「on」「off」が勝手にブール値になる(文字列にしたいなら引用符で囲む)。特に③は有名な罠で、ノルウェーの国コード「NO」がfalseに変換される問題は「Norway problem」と呼ばれているよ
YAMLの書き方の基本は?
YAMLよりいい形式はないの?
TOMLは明示的な型指定ができて曖昧さが少ない。Rustのcargo.tomlやPythonのpyproject.tomlで採用されているよ。CUEやJsonnetはYAMLの生成に使われる「テンプレート言語」で、Kubernetesの複雑なYAMLを生成するのに使われているね。ただ、YAMLの普及度は圧倒的だから当面は必須知識だよ
まとめ:ざっくりこれだけ覚えればOK!
「YAML」って出てきたら「インデントベースの読みやすい設定ファイル形式」と思えればだいたいOK!
📖 おまけ:英語の意味
「YAML Ain't Markup Language」 = YAMLはマークアップ言語ではない
💬 元は「Yet Another Markup Language」だったけど「マークアップ言語じゃないよ」と改名したよ