YAML入門:人に優しい設定ファイル形式の完全ガイド

YAMLについて調べたので残しておきます。
ちょっと使ってみましたが、見やすさはともかく、JSONの方が使いやすいと思いました。

概要

YAML(YAML Ain’t Markup Language)は、人間が読みやすいデータフォーマットであり、設定ファイルやデータのシリアライズによく使われます。以下にYAMLの主な仕様を説明します。

基本構造

インデントにはスペースを使用(タブは不可)。
キーと値のペアで記述(key: value)。コロンの次はスペース。
# でコメントが書ける。

name: John Doe  # コメント
age: 30

データ型

配列(リスト)

– を使ってリストを表現。

fruits:
  - Apple
  - Banana
  - Cherry

辞書(マップ)

key: value 形式でネストできる。

person:
  name: Alice
  age: 25
  address:
    city: Tokyo
    zip: 100-0001

複雑なデータ構造

インライン表記

リストや辞書はインライン表記も可能。

fruits: [Apple, Banana, Cherry]
person: {name: Alice, age: 25}

アンカー & 参照(エイリアス)

& でアンカーを定義し、* で参照。

default: &default_settings
  timeout: 30
  retries: 3

server1:
  <<: *default_settings
  host: server1.example.com

server2:
  <<: *default_settings
  host: server2.example.com
  retries: 5  # 上書き可能

複数行の文字列

リテラルブロック(|)

改行をそのまま保持。

description: |
  これは複数行の
  テキストです。

フォールドブロック(>)

行末の改行をスペースに変換。

summary: >
  これは複数行の
  テキストですが、改行は
  スペースに置き換えられます。

型の指定(タグ)

!! で型を明示的に指定。

int_value: !!int "42"
float_value: !!float "3.14"
bool_value: !!bool "yes"

環境変数の参照

一部のツール(docker-compose.yml など)では環境変数を ${VAR_NAME} で参照可能。

version: "3"
services:
  web:
    image: nginx
    environment:
      - DB_HOST=${DATABASE_HOST}

ドキュメントの分割

— で複数のYAMLドキュメントを分ける。

---
name: John
age: 30
---
name: Alice
age: 25

コメント

タイトルとURLをコピーしました