ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
概要
YAML(ヤメル、YAML Ain't Markup Language)は、2001 年に Clark Evans・Ingy döt Net・Oren Ben-Kiki によって提唱された、人間が読み書きしやすい構造化データ形式です。当初は "Yet Another Markup Language" の頭文字でしたが、マークアップ言語ではなくデータ表現言語であることを強調するため再帰的略称(GNU 流のジョーク)に改名されました。
拡張子は .yaml または .yml、MIME タイプは application/yaml(RFC 9512、2024 年)。最新仕様は YAML 1.2.2(2021 年)で、JSON のスーパーセットとして再設計されています。Kubernetes のマニフェスト、Ansible の Playbook、GitHub Actions のワークフロー、Docker Compose、GitLab CI、CircleCI など、現代の CI/CD・IaC 領域で最も広く使われる設定形式です。
構文・データモデル
YAML はインデント(スペース、タブ不可)でネスト構造を表します。データモデルは JSON とほぼ同じ(mapping / sequence / scalar)です。
name: Alice
age: 30
active: true
roles:
- admin
- dev
address:
city: Tokyo
zip: "100-0001"
deleted_at: null
# コメントも書ける
description: |
複数行の
リテラルブロック
強力な機能としてアンカーとエイリアスがあります。同じデータを &name で印を付け、*name で参照、<<: *name でマージできます。
defaults: &defaults
timeout: 30
retries: 3
prod:
<<: *defaults
host: prod.example.com
dev:
<<: *defaults
host: dev.example.com
区切り線 --- でひとつのファイルに複数ドキュメントを入れられます(Kubernetes マニフェストで頻出)。
主な用途
- Kubernetes マニフェスト: Pod / Deployment / Service など全リソース定義
- Ansible Playbook: 構成管理の宣言的記述
- CI/CD: GitHub Actions
.github/workflows/*.yml、GitLab CI.gitlab-ci.yml、CircleCI.circleci/config.yml - Docker Compose:
docker-compose.ymlでサービス・ネットワーク・ボリュームを定義 - OpenAPI / Swagger: API スキーマ定義(JSON より YAML 版の方が編集しやすいため好まれる)
- Hugo・Jekyll・MkDocs: 静的サイトジェネレータの設定や記事の Front Matter
関連形式との比較
| 項目 | YAML | JSON | TOML | XML |
|---|---|---|---|---|
| コメント | 可(#) | 不可 | 可(#) | 可 |
| 人間可読性 | 非常に高い | 中 | 高(フラット) | 低 |
| 機械パース安全性 | 低(暗黙変換) | 非常に高い | 高 | 中 |
| 参照・再利用 | アンカー/エイリアス | なし | なし | 外部実体 |
| インデント依存 | あり(致命的) | なし | なし | なし |
| 主用途 | CI・IaC・K8s | API・データ交換 | 言語設定 | 文書・古い API |
編集・パーサ・ツール
- yq: jq の YAML 版(Mike Farah 版が現在の主流)。
yq '.spec.replicas'のように使う - yamllint: 構文・スタイル違反を検出する Linter
- パーサライブラリ: Python
PyYAML/ruamel.yaml、RubyPsych、Gogo-yaml、JavaScriptjs-yaml、PHPsymfony/yaml - JSON Schema 連携: YAML を JSON 相当として扱えるため、JSON Schema で型検証ができる
- VS Code 拡張: Red Hat YAML 拡張がスキーマ連携・補完・diagnostics を提供(Kubernetes・GitHub Actions の補完が強力)
注意点・落とし穴
- インデントが命: タブとスペースが混在するとパースエラー。エディタで「スペース 2 個」に統一する
- Norway 問題: ノルウェーの国コード
NOやno、off、yes、onが YAML 1.1 では boolean に暗黙変換される。1.2 ではこの仕様は削除されたが、PyYAML など 1.1 互換実装は今も影響を受ける。文字列として確実に扱いたいなら"no"とクォートする - 裸文字列の罠: 電話番号や郵便番号も先頭ゼロが落ちたり八進数扱いになることがある。クォート推奨
- 巨大ファイルの編集: ネストが深くなるとどの階層にいるか分からなくなる。VS Code のブレッドクラム機能を活用
- YAML 爆弾(Billion Laughs): アンカーを多用したファイルでメモリ枯渇 DoS が起きうる。信頼できないソースからの YAML を
safe_load系で読む - パーサ依存の差異: 同じファイルが Python・Ruby・Go で微妙に解釈が違うことがある。CI でテストする
関連リンク
- Web・データ・設定
- ファイル拡張子とは
- JSON(.json)
- XML(.xml)
- TOML(.toml)
- env(.env)
- properties(.properties)
- conf(.conf)
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?