🥱

yamlとは

2024/04/08に公開

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