🥱
yamlとは
YAML形式の概要
YAML(YAML Ain't Markup Language)は、データのシリアライズ化(直列化)形式の1つ。
人間にとって読みやすく、コンピュータにとっても解析しやすいテキスト形式のデータ表現として、設定ファイルやデータの保存、転送など、さまざまな目的に使用される。
特徴
- 読みやすい:インデントによる構造化と自然言語に近い記法により、人間にとって非常に読みやすい
- 書きやすい:簡潔で分かりやすい構文のため、初心者でも比較的簡単に記述できる
- 汎用性:言語やプラットフォームに依存せず、さまざまな環境で使用できる
- データ構造:リスト、マップ、シーケンスなど、複雑なデータ構造を表現できる
用途
- 設定ファイル:アプリケーションやサーバーの設定ファイル
- データファイル: ユーザー情報、製品情報などのデータ
- ドキュメント: 技術文書、マニュアルなどのドキュメント
- 構成管理: pulumiなどの構成管理ツール
- シリアル化: データの保存、転送、共有
※シリアル化とは、データをある形式に変換し、保存や転送できるようにすること
YAML形式の使い方
YAML形式は、以下の基本的な構成要素から成り立つ
- キー: データの識別子
- 値: キーに関連付けられるデータ
- インデント: 構造を表すための空白文字
- コメント: '#' から始まる行
データ構造
YAML形式では、以下のデータ構造を表現できる
- スカラー: 文字列、数値、ブール値など
- リスト: 項目の順序付きコレクション
- マップ: キーと値のペアの集合
- シーケンス: 順序付きの値のリスト
記述例
# スカラー
name: taro sato
# リスト
fruits:
- apple
- banana
- orange
# マップ
address:
street: 123 Main Street
city: New York
state: NY
zip: 10001
# シーケンス
numbers: [1, 2, 3, 4, 5]
基本ドキュメント
YAML公式ドキュメント: https://yaml.org/spec/
YAML入門チュートリアル: https://www.youtube.com/watch?v=1uFVr15xDGg
YAMLについての基本知識: https://www.cloudbees.com/blog/yaml-tutorial-everything-you-need-get-started
応用例
YAML形式は、さまざまな用途で使用されている
- Ansible Playbook: Ansibleは、ITインフラストラクチャの自動化ツールです。Playbookは、YAMLファイルで記述された、Ansibleのタスクを定義するものです。
- Docker Compose: Docker Composeは、複数のDockerコンテナをまとめて実行するためのツールです。Composeファイルは、YAMLファイルで記述された、コンテナの構成と起動方法を定義するものです。
- Kubernetes YAML: Kubernetesは、コンテナオーケストレーションツールです。デプロイメント、サービス、ポッドなどのリソースは、YAMLファイルで記述できます。
まとめ
YAML形式は、人間とコンピュータにとって読みやすく、使いやすいデータ表現形式。
設定ファイル、データファイル、ドキュメントなど、さまざまな用途に使用できる。
Discussion