yamlを使いこなすポイント

kelly-sikkema--1_RZL8BGBM-unsplash.jpg

質問

yamlを使いこなすポイントを挙げてください。


解答

とても良いテーマです。
YAML(YAML Ain’t Markup Language)はシンプルに見えて奥が深く、

特に設定ファイル(Kubernetes、GitHub Actions、Docker Composeなど)で頻繁に使われます。


以下に、YAMLを使いこなすための主要なポイントを整理して挙げます。


1. インデント(字下げ)を絶対に正確に

  • YAMLは スペースの数が構造を決める 言語。
    → インデントのズレ = 文法エラーです。

  • タブ文字は禁止(必ずスペースで)。

  • 通常は 2スペース4スペース で統一します。

# OKapp:  name: myapp  version: 1.0# NG(タブ使用や不揃い)app:	name: myapp  # タブ version: 1.0   # 不揃い

2. 配列(リスト)と辞書(マップ)の違いを理解

YAMLの基本構造は リスト(-)キー・値(:) の組み合わせです。

# 配列(リスト)fruits:  - apple  - banana  - orange# 辞書(マップ)person:  name: Taro  age: 30

3. スカラー値(文字列・数値・真偽値)の扱いに注意

  • 文字列は基本的にクォート不要ですが、
    特殊文字(:, #, ?, *, |, >など)が含まれるときは "..." で囲む。

  • 真偽値や数値は自動的に型推論されるが、意図的に文字列扱いにしたいときはクォート必須。

version: "1.0"  # 文字列扱いdebug: true     # 真偽値port: 8080      # 数値

4. 複数行の文字列は |> を使い分ける

# | : 改行を保持description: |  This text  has line breaks.# > : 改行をスペースに変換summary: >  This text  will be joined  into one line.

5. アンカー(&)とエイリアス(*)で重複を減らす

設定を再利用する際に非常に便利。

default: &base  image: python:3.12  restart: alwaysweb:  <<: *base  ports:    - "8080:80"worker:  <<: *base  command: ["python", "worker.py"]

&base で定義したブロックを *base で再利用。


6. コメント(#)を積極的に使う

設定ファイルとして長く使う場合、コメントで目的を残すのが大切。

# データベース接続設定database:  host: localhost  port: 5432

7. 型や構造を意識して書く

YAMLは柔軟すぎて、意図せず構造が変わることがあります。
→ JSONに変換して検証すると安全です。

cat config.yaml | yq -o=json

8. ツールを活用する

  • lint / validateツール:
    yamllint, yq, yaml-language-server

  • エディタ支援:
    VS Code なら「YAML extension」を入れてスキーマ補完を有効化。


9. スキーマ(構文定義)を理解する

KubernetesやGitHub Actionsのように、YAML自体ではなくその上の構文ルールが存在します。
→ 「YAMLが正しくても、ツールが理解できない」ことがある。
→ 公式ドキュメントで対応スキーマを確認する習慣をつける。


10. 一度 JSON に変換してみる癖をつける

YAMLはJSONのスーパーセットなので、変換して確認すると構造理解が深まります。

yq -o=json config.yaml

まとめ

ポイント内容
インデントスペースで統一、ズレは致命的
構造リストと辞書を明確に区別
文字列クォートの使い方に注意
複数行`
再利用&* を活用
コメント意図を明示する
検証JSON変換やlintツールで確認






YAML Essentials for Modern Development Definitive Reference for Developers and Engineers【電子書籍】[ Richard Johnson ]

価格:1443円
(2025/11/11 21:58時点)
感想(0件)


ゼロからはじめるLinuxサーバー構築・運用ガイド 動かしながら学ぶWebサーバーの作り方 [ 中島能和 ]

価格:2948円
(2024/11/2 00:15時点)
感想(0件)


 



この記事へのコメント

広告です。クリックいただけると励みになります。