中級 YAML

Machine Learning のための CI/CD

Ravi Bhadauria

Machine Learning Engineer

複数行文字列: ブロックスカラー形式

  • 複数行の文字列やテキストブロックを表現する
    • コードスニペット(シェルコマンド)
    • 段落(ログ)
    • 設定ファイル

YAML のブロック文字列の階層図。ルートノード「Block String」が強調表示されています。

Machine Learning のための CI/CD

スタイルインジケーター - リテラル

  • リテラルスタイル(|): 改行とインデントを保持する
  • シェルコマンドの記述に便利
commands: |
  echo "Running python script..."
  python3 script.py

YAML のブロック文字列の階層図。リーフノード「Literal Style」が強調表示されています。

Machine Learning のための CI/CD

リテラルスタイルの例

リテラル複数行スタイルで書かれたテキストの YAML 例。テキストの前に「|」記号が付いています。

YAML リテラル複数行スタイルで書かれたテキストの出力。

1 https://yaml-multiline.info/
Machine Learning のための CI/CD

スタイルインジケーター - フォールド

  • フォールドスタイル(>): 改行を削除する
  • 段落のような折り返しメッセージの記述に便利
message: >
  Successfully executed the code!
  All processes completed 
  without any errors.
  The results have been saved 
  in the designated
  output directory.

YAML のブロック文字列の階層図。リーフノード「Fold Style」が強調表示されています。

Machine Learning のための CI/CD

フォールドスタイルの例

フォールド複数行スタイルで書かれたテキストの YAML 例。テキストの前に「>」記号が付いています。

YAML フォールド複数行スタイルで書かれたテキストの出力。

1 https://yaml-multiline.info/
Machine Learning のための CI/CD

チョンピングインジケーター

  • 文字列の末尾の改行の挙動を制御する
  • スタイルインジケーターの後に追加する
  • clip: デフォルトモード、末尾に改行を1つ追加
    • 表現に追加の記号は不要

YAML のブロック文字列の階層図。リーフノード「Clip Chomping indicator」が強調表示されています。

Machine Learning のための CI/CD

チョンピングインジケーター - strip

  • strip(-): 末尾のすべての改行を削除する

YAML のブロック文字列の階層図。リーフノード「Strip Chomping indicator」が強調表示されています。

Machine Learning のための CI/CD

Strip チョンピングの例

strip チョンピングを使用したリテラル複数行スタイルで書かれたテキストの YAML 例。テキストの前に「|-」記号が付いています。

strip チョンピングを使用した YAML リテラル複数行スタイルで書かれたテキストの出力。strip チョンピングは末尾のすべての改行を削除します。

1 https://yaml-multiline.info/
Machine Learning のための CI/CD

チョンピングインジケーター - keep

  • keep(+): 末尾のすべての改行を保持する

YAML のブロック文字列の階層図。リーフノード「Keep Chomping indicator」が強調表示されています。

Machine Learning のための CI/CD

Keep チョンピングの例

keep チョンピングを使用したリテラル複数行スタイルで書かれたテキストの YAML 例。テキストの前に「|+」記号が付いています。

keep チョンピングを使用した YAML リテラル複数行スタイルで書かれたテキストの出力。keep チョンピングは末尾の改行を削除しません。

1 https://yaml-multiline.info/
Machine Learning のための CI/CD

動的な値の注入

  • 式(Expressions) を使うと、パーサーが値を動的に置き換えられる
  • 用途:
    • 環境変数
    • YAML の他の部分への参照
  • 一般的に ${{ ... }} の形式で表される
database:
  host: ${{ config.database.host }}
  port: ${{ config.database.port }}
  username: ${{ config.database.username }}
  password: ${{ config.database.password }}
Machine Learning のための CI/CD

マルチドキュメント YAML

  • 1つのファイル内に複数の独立した YAML ドキュメントを含める
  • 各ドキュメントには有効な YAML コンテンツが含まれる
  • 関連するドキュメントごとに整理しやすい
  • ドキュメントはハイフン3つ ––– で区切る
___
- name: John
  age: 30
___
- name: Jane
  age: 28
___
- name: Bob
  age: 35
  occupation: Developer
Machine Learning のための CI/CD

まとめ

名前 YAML 記号
リテラルスタイルインジケーター |
フォールドスタイルインジケーター >
Strip チョンピングインジケーター −
Keep チョンピングインジケーター +
式 ${{ ... }}
マルチドキュメント YAML –––
Machine Learning のための CI/CD

練習しましょう!

Machine Learning のための CI/CD

Preparing Video For Download...