yamlの書き方(コメント, 配列, アンカー, エイリアス)

様々なツールで利用されているYAMLの書き方について解説します。「コメント」「配列」「アンカー」「エイリアス」「改行」について取り上げます。

YAMLとは?

構造化されたデータを表現するためのフォーマットです。ツールの設定ファイル などで利用されることが多いです。
例えば、CloudFormation docker-compose ansible CircleCI などで利用されています。

同じ用途で使われるフォーマットに JSON がありますが、 YAML は人間の読みやすさを重視しています。
例えば、JSON だとコメントが書けませんが、YAML だとコメントが書けます。

JSONからYAMLに変換
既にJSONで書かれた内容をYAMLに変換したい場合、http://j2y.link/ などのサービスを利用すると良いです。
YAMLはあくまで「仕様」
各ライブラリ、ツールによって実装されます。そのため、ツールによっては「サポートされていない部分」や「拡張機能」があるケースがあります。

コメント

# の後にコメント可能です。

スカラー

以下の値を利用できます。

  • 文字列
  • 数値
    • 整数
    • 浮動小数
  • 真偽値
    • true false
    • yes no
  • Null
    • null
    • ~
  • 日付
    • yyyy-mm-dd

コレクション

シーケンス(配列)

- "110:110"
- "143:143"
- "993:993"

- の後ろにはスペースが必要です。

マッピング(連想配列)

image: blackfire/blackfire
context: ./workspace
tty: true

: の後ろにはスペースが必要です。

マッピングのマッピング

run:
  name: Run tests
  command: bundle exec rake

1文字以上の空白で字下げします。
tabは利用できません。

マッピングのシーケンス

environment:
  - cluster.name=laradock-cluster
  - bootstrap.memory_lock=true
  - "ES_JAVA_OPTS=-Xms512m -Xmx512m"

1文字以上の空白で字下げします。
tabは利用できません。

ブロックスタイルとフロースタイル

先述したシーケンスとマッピングはブロックスタイルの記述です。
あまり利用しているのを見かけませんが、フロースタイルで書くと以下のようになります。

["110:110", "143:143", "993:993"]
{ image: blackfire/blackfire, context: ./workspace, tty: true }

記述をまとめる

アンカーとエイリアス

  • アンカー
    • & を利用して、他の場所でも参照できるようにします。
  • エイリアス
    • * を利用して、アンカーで定義した内容を参照します。

以下のように、同じ記述を1箇所にまとめることができます。

common: &common
  aaa: 1111
  bbb: 2222
  
dev:
  build: *common
  environment: aaa
stg:
  build: *common
  environment: bbb
prod:
  build: *common
  environment: ccc

マッピングをマージしたい場合は、以下のように << を利用します。

common: &common
  aaa: 1111
  bbb: 2222

dev:
  ccc: xxxx
  <<: *common
stg:
  ccc: yyyy
  <<: *common
prod:
  ccc: zzzz
  <<: *common

改行の扱い

改行させる

test: |
  aaa
  bbb
  ccc

| を利用すると各行に改行( "aaa\nbbb\nccc\n" )が入ります。

最後の行だけ改行させる

test: >
  aaa
  bbb
  ccc

> を利用すると最後の行だけ改行( "aaa bbb ccc\n" )が入ります。他の行はスペースになります。

参考

【エンジニア向け】仕事を見つける方法

転職する

転職エージェントを活用する

転職サイトの場合、自身でサイト上から企業を探す必要があります。 一方「レバテックキャリア」 などの転職エージェントの場合、エージェントが企業を紹介してくれます。エージェントが間に入ることにより、日程調整や、条件交渉などもサポートしてくれます。

転職ドラフトを活用する

転職ドラフト」は、 企業がITエンジニアをドラフトという形で指名するサービスです。年収が最初に提示されるなどのメリットがあります。 ただ、初回登録時にレジュメ作成が必要で、すでにエンジニア経験が豊富にあるエンジニア向けのサービスかと思います。 レジュメ作成が手間ですが、自身のキャリアを見直す機会になり、他の仕事探しにも役立つはずです。

エンジニア転職保証のあるスクールを活用する

ある程度、開発経験のあるかたであれば、独学で必要なスキルを身につけることができるはずです。ただ、別業種からエンジニアに転職したい場合など、1から独学で学ぶのはハードルが高いです。そういった方は、スクールの活用を検討しても良いと思います。 「TechAcademy」は、エンジニア転職保証コースを提供しています。給付金制度の対象講座として認定されているため、金銭面の負担も抑えることができます。

フリーランスとして活動する

レバテックフリーランス」「ITプロパートナーズ」「ギークスジョブ」は、フリーランスエージェントサービスです。 エージェントによって、支払いサイトなど細かい違いはありますが、まずは良い案件を見つけることが重要です。 登録自体は無料なので、複数エージェントに登録して、より多くの案件を紹介してもらうのがおすすめです。

logo
わくわくBank.
技術系の記事を中心に、役に立つと思ったこと、整理したい情報などを掲載しています。