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

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

概要

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

基本構造

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

データ型

スカラー(単一の値)
文字列(クォートあり・なし)
数値(整数、浮動小数点)
ブール値(true / false)
null(null または ~)
string1: 文字列
string2: “ダブルクォート”
string3: ‘シングルクォート’
integer: 42
float: 3.14
boolean: true
null_value: null
配列(リスト)
– を使ってリストを表現。
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をコピーしました