■ はじめに
今更ながらだが、AWSやAnsibleなどなど色々と必要になりそうなので YAMLについて、調べてみた。
■ YAML
* YAML : * 読み方は、「ヤムル」 * 拡張子は「***.yml」「***.yaml」
■ 種類
【1】スカラー ... 値 【2】シーケンス .. 配列 【3】マッピング .. ハッシュ(Key-Value)
【1】スカラー(値)
* データ型は以下のようなものがある a) 文字列 .... hello, "5", 'true' b) 数値 ... 5, 5.45 c) 真偽 ... true/false, yes/no, on/off d) null ... null, ~(チルダ) e) 日付 ... 2019-12-21
【2】シーケンス(配列)
* 「- 【スカラー】」を使う(「ブロックスタイル」っていうらしい)
サンプル
- List-A - List-B - List-C
補足
* [List-A, List-B, List-C] って書き方でも同じ(こっちは「フロースタイル」) * 空白を入れることで、入れ子構造もかける(「タブ」じゃだめ)
サンプル:入れ子
- List-A - - List-B1 - List-B2 - Liar-C
【3】マッピング(Key-Value)
* 「【キー】: 【値】」を使う
サンプル
key_A: value_A key_B: value_B key_C: value_C
補足
* { key_A: value_A, key_B: value_B, key_C: value_C } って書き方でも同じ * 入れ子できま* * 配列と組み合わせることも可能
■ 文法
コメント
* 「#」を使う
サンプル
# ここがコメントになる
変数(アンカー/エイリアス)
* アンカー:変数定義 ...「&」を使う * エイリアス:変数参照 ...「*」を使う
サンプル
- &leader Mike - *leader - &subleader Tom - *lsubleader - *subleader
改行
大なり記号 (>)
* 改行はスペースに置き換わる 【例】 - > aws s3 cp src/hello_world.py s3://hello-world-xxx/src/hello_world.py # 「aws s3 cp src/hello_world.py s3://hello-world-xxx/src/hello_world.py」ってなる # => 一行として認識される
パイプ ( | )
* 【例】 - | This is a sample. This is a just sample. # 「This is a pen.\nThis is a just sample.」ってなる # => 改行も含めて認識される
■ その他
JSONからYAMLに変換
以下のサイトで変換できる
参考文献
https://qiita.com/fkana/items/21f7cc3b327445483d5c
https://magazine.rubyist.net/articles/0009/0009-YAML.html
https://www.wakuwakubank.com/posts/488-it-yaml/
動画
https://dotinstall.com/lessons/basic_yaml_v2
関連記事
TOML
https://dk521123.hatenablog.com/entry/2023/04/25/103533
Ansible ~ 基本編 ~
https://dk521123.hatenablog.com/entry/37482488
Python ~ 基本編 / YAML ~
https://dk521123.hatenablog.com/entry/2019/10/16/225401