YAML ワークフロードキュメントを作成する - EC2 Image Builder

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

YAML ワークフロードキュメントを作成する

YAML 形式定義ドキュメントは、イメージビルドプロセスのビルドステージとテストステージの入力、出力、ワークフローステップを設定します。標準化されたステップを含むテンプレートから始めることも、ゼロから始めて独自のワークフローを定義することもできます。テンプレートを使用するかゼロから始めるかにかかわらず、ワークフローをニーズに合わせてカスタマイズできます。

YAML ワークフロードキュメントの構造

Image Builder がイメージビルドおよびテストアクションを実行するために使用するYAMLワークフロードキュメントは、次のように構造化されます。

ワークフロードキュメントの識別

ワークフローを一意に識別します。このセクションは次の属性を含むことができます。

フィールド

説明

タイプ

必須

name

ワークフロードキュメントの名前。

文字列

いいえ

説明

ドキュメントの説明。

文字列

なし

schemaVersion

ドキュメントのスキーマバージョン。現在は 1.0。

文字列

あり

--- name: sample-test-image description: Workflow for a sample image, with extra configuration options exposed through workflow parameters. schemaVersion: 1.0

ワークフロードキュメントの入力パラメータ

ワークフロードキュメントのこの部分では、呼び出し側が指定できる入力パラメータを定義します。パラメータがない場合、このセクションは省略できます。パラメータを指定する場合、各パラメータには以下の属性を含めることができます。

フィールド

説明

タイプ

必須

制約

name

パラメータの名前。

文字列

あり

説明

パラメータの説明。

文字列

なし

デフォルト

値が指定されていない場合のパラメータのデフォルト値。パラメータ定義にデフォルト値を含めない場合、ランタイム時にパラメータ値が必要になります。

パラメータのデータ型に一致します。

なし

type

パラメータのデータ型。パラメータ定義にデフォルト値を含めない場合、パラーメータ型のデフォルトはランタイム時に必要な文字列値になります。

文字列

あり

パラメータのデータ型は、次のいずれかである必要があります。

  • string

  • integer

  • boolean

  • stringList

ワークフロードキュメントでパラメータを指定します。

parameters: - name: waitForActionAtEnd type: boolean default: true description: "Wait for an external action at the end of the workflow"

ワークフロードキュメントでパラメータ値を使用します。

$.parameters.waitForActionAtEnd

ワークフロードキュメントのステップ

ワークフローに最大 15 のステップアクションを指定します。ステップは、ワークフロードキュメント内で定義されている順序で実行されます。失敗した場合、ロールバックは逆の順序で実行されます。失敗したステップから始まり、前のステップまでさかのぼって実行されます。

各ステップは、前のステップアクションの出力を参照できます。これをチェーニング、または参照と呼びます。前のステップアクションからの出力を参照するには、JSONPathセレクタを使用できます。例:

$.stepOutputs.step-name.output-name

詳細については、「ワークフロードキュメントでは動的変数を使用します」を参照してください。

注記

ステップ自体には出力属性はありませんが、ステップアクションからの出力はすべてステップの stepOutput に含まれます。

各ステップには、次の属性を含めることができます。

フィールド

説明

タイプ

必須

デフォルト値

制約

アクション

このステップが実行するワークフローアクション。

文字列

あり

Image Builder ワークフロードキュメントでサポートされているステップアクションである必要があります。

if、その後に if オペレータを変更する一連の条件ステートメントが続きます。

条件ステートメントは、ワークフローステップの本文に制御フローの決定ポイントを追加します。

dict

なし

Image Builder は、if 演算子の修飾子として以下の条件ステートメントをサポートしています。

  • 分岐条件と修飾子: ifandornot。分岐条件は 1 行に単独で指定されます。

  • 比較演算子: booleanEqualsnumberEqualsnumberGreaterThannumberGreaterThanEqualsnumberLessThannumberLessThanEqualsstringEquals

説明

手順の説明。

文字列

なし

空の文字列は使用できません。含める場合、長さは 1~1024 文字である必要があります。

入力

ステップアクションの実行に必要なパラメータが含まれます。キー値は、静的な値として、または正しいデータ型に解決されるJSONPath変数で指定できます。

dict

あり

name

ステップの名前。この名前はワークフロードキュメント内で一意である必要があります。

文字列

あり

長さは 3~128 文字にする必要があります。

英数字と _ を含めることができます。スペースは使用できません。

onFailure

ステップが失敗した場合に実行するアクションを次のように構成します。

Behavior
  • Abort – ステップを失敗させ、ワークフローを失敗させ、失敗したステップの後に残っているステップを実行しません。ロールバックが有効な場合、ロールバックは失敗したステップから始まり、ロールバックを許可するすべてのステップがロールバックされるまで続きます。

  • Continue – ステップは失敗しますが、失敗したステップの後に残りのステップは引き続き実行されます。この場合、ロールバックは行われません。

文字列

なし

Abort

Abort | Continue

rollbackEnabled

障害が発生した場合にステップをロールバックするかどうかを設定します。静的ブール値またはブール値に解決される動的JSONPath変数を使用できます。

ブール値

なし

true

true | false

| または true または false に解決されるJSONPath変数。

timeoutSeconds

再試行が適用される場合に、ステップが失敗して再試行されるまでの最大実行時間 (秒単位)。

整数

なし

該当する場合、ステップアクションに定義されているデフォルトによって異なります。

1~86400 秒 (最大 24 時間)

steps: - name: LaunchTestInstance action: LaunchInstance onFailure: Abort inputs: waitFor: "ssmAgent" - name: ApplyTestComponents action: ExecuteComponents onFailure: Abort inputs: instanceId.$: "$.stepOutputs.LaunchTestInstance.instanceId" - name: TerminateTestInstance action: TerminateInstance onFailure: Continue inputs: instanceId.$: "$.stepOutputs.LaunchTestInstance.instanceId" - name: WaitForActionAtEnd action: WaitForAction if: booleanEquals: true value: "$.parameters.waitForActionAtEnd"

ワークフロードキュメントの出力

ワークフローの出力を定義します。各出力は、出力の名前と値を指定するキーと値のペアです。出力を使用してランタイム時に後続のワークフローで使用できるデータをエクスポートできます。このセクションはオプションです。

定義する各出力には以下の属性が含まれます。

フィールド

説明

タイプ

必須

name

出力の名前。名前は、パイプラインに含めるワークフロー間で一意である必要があります。

文字列

あり

value

出力の値。文字列の値は、ステップアクションからの出力ファイルなどの動的変数でもかまいません。詳細については、「ワークフロードキュメントでは動的変数を使用します」を参照してください。

文字列

あり

createProdImage ステップからのステップ出力を含むワークフロードキュメントの出力イメージ ID を作成します。

outputs: - name: 'outputImageId' value: '$.stepOutputs.createProdImage.imageId'

次のワークフローのワークフロー出力を参照してください。

$.workflowOutputs.outputImageId