YAML:YAML Ain't a Markup Language@データ記述型言語¶
はじめに¶
本サイトにつきまして、以下をご認識のほど宜しくお願いいたします。
01. YAMLとは¶
異なる言語間やサーバー間で変換できるデータ記述型言語である。
02. 設計規約¶
キー名のケース¶
▼ ローワーキャメルケース¶
高頻度で使用されている。
例えば、Kubernetesではローワーキャメルケースに統一されている。
fooBarBaz: ""
▼ スネークケース¶
中頻度で使用されている。
例えば、Envoyではスネークケースに統一されている。
foo_bar_baz: ""
▼ ケバブケース¶
低頻度で使用されている。
foo-bar-baz: ""
03. 文法¶
配列¶
▼ []
(括弧)¶
account: 200
fruit: ["banana", "apple"]
▼ -
(マイナス)¶
account: 200
fruit:
- "banana"
- "apple"
改行¶
▼ |
(パイプ)¶
改行を改行のまま処理する。
また、最終行の改行までを全て使用する。
コマンドを繋ぐ&&
や;
は不要である。
command: |
echo foo
echo bar
# 処理中の構造
{ "command" => "echo foo\necho bar\n" }
▼ |+
(パイプ、プラス)¶
改行を改行のまま処理する。
また、最終行の改行のみでなく、それ以降の改行を全て使用する。
コマンドを繋ぐ&&
や;
は不要である。
command: |+
echo foo
echo bar
# 処理中の構造
{ "command" => "echo foo\necho bar\n" }
▼ |-
(パイプ、マイナス)¶
改行を改行のまま処理する。
ただし、最終行の改行を削除する。
コマンドを繋ぐ&&
や;
は不要である。
command: |-
echo foo
echo bar
# 処理中の構造
{ "command" => "echo foo\necho bar" }
▼ >
(大なり)¶
改行をスペースに変換して処理する。
また、最終行の改行までを全て使用する。
改行した異なるコマンドが、スペースを挟んで繋がってしまうため、&&
や;
で繋ぐ必要がある。
command: >
echo foo &&
echo bar
# 処理中の構造
{ "command" => "echo foo;echo bar\n" }
>
を使用すれば、1行の条件文を複数行で定義することもできる。
command: if [ -z "$VAR" ];then echo foo; else echo bar; fi
command: >
if [ -z "$VAR" ];then
echo foo;
else
echo bar;
fi
▼ >+
(大なり、プラス)¶
改行をスペースに変換して処理する。
また、最終行の改行のみでなく、それ以降の改行を全て使用する。
値が長くなる場合に便利である。
改行した異なるコマンドが、スペースを挟んで繋がってしまうため、&&
や;
で繋ぐ必要がある。
command: >+
echo foo &&
echo bar
# 処理中の構造
{ "command" => "echo foo && echo bar\n" }
▼ >-
(大なり、マイナス)¶
改行をスペースに変換して処理する。
ただし、最終行の改行を削除する。
値が長くなる場合に便利である。
改行した異なるコマンドが、スペースを挟んで繋がってしまうため、&&
や;
で繋ぐ必要がある。
command: >-
echo foo &&
echo bar
# 処理中の構造
{ "command" => "echo foo && echo bar" }