

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

# YAML ワークフロードキュメントを作成する
<a name="image-workflow-create-document"></a>

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

## YAML ワークフロードキュメントの構造
<a name="workflow-document-structure"></a>

Image Builder がイメージビルドとテストアクションを実行するために使用する YAML ワークフロードキュメントは、次のように構成されています。
+ [ワークフロードキュメントの識別](#wfdoc-struct-ident)
+ [ワークフロードキュメントの入力パラメータ](#wfdoc-struct-param)
+ [ワークフロードキュメントのステップ](#wfdoc-struct-step)
+ [ワークフロードキュメントの出力](#wfdoc-struct-output)

### ワークフロードキュメントの識別
<a name="wfdoc-struct-ident"></a>

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


|  フィールド  |  説明  |  タイプ  |  必須  | 
| --- | --- | --- | --- | 
| 名前 | ワークフロードキュメントの名前。 | String | いいえ | 
| 説明 | ドキュメントの説明。 | String | いいえ | 
| schemaVersion | ドキュメントのスキーマバージョン。現在は 1.0。 | String | はい | 

**例**

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

### ワークフロードキュメントの入力パラメータ
<a name="wfdoc-struct-param"></a>

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


|  フィールド  |  説明  |  タイプ  |  必須  |  制約  | 
| --- | --- | --- | --- | --- | 
| 名前 | パラメータの名前。 | String | はい |  | 
| 説明 | パラメータの説明。 | String | 不可 |  | 
| デフォルト | 値が指定されていない場合のパラメータのデフォルト値。パラメータ定義にデフォルト値を含めない場合、ランタイム時にパラメータ値が必要になります。 | パラメータのデータ型に一致します。 | 不可 |  | 
| 型 | パラメータのデータ型。パラメータ定義にデフォルト値を含めない場合、パラーメータ型のデフォルトはランタイム時に必要な文字列値になります。 | String | はい | パラメータのデータ型は、次のいずれかである必要があります。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/imagebuilder/latest/userguide/image-workflow-create-document.html) | 

**例**

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

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

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

```
$.parameters.waitForActionAtEnd
```

### ワークフロードキュメントのステップ
<a name="wfdoc-struct-step"></a>

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

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

```
$.stepOutputs.{{step-name}}.{{output-name}}
```

詳細については、「[ワークフロードキュメントでは動的変数を使用します](wfdoc-dynamic-vars.md)」を参照してください。

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

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


|  フィールド  |  説明  |  タイプ  |  必須  |  デフォルトの 値  |  制約  | 
| --- | --- | --- | --- | --- | --- | 
| action | このステップが実行するワークフローアクション。 | String | はい |  | Image Builder ワークフロードキュメントでサポートされているステップアクションである必要があります。 | 
| `if`、その後に `if` オペレータを変更する一連の条件ステートメントが続きます。 | 条件ステートメントは、ワークフローステップの本文に制御フローの決定ポイントを追加します。 | dict | 不可 |  | Image Builder は、`if` 演算子の修飾子として以下の条件ステートメントをサポートしています。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/imagebuilder/latest/userguide/image-workflow-create-document.html) | 
| 説明 | 手順の説明。 | String | 不可 |  | 空の文字列は使用できません。含める場合、長さは 1～1024 文字である必要があります。 | 
| 入力 | ステップアクションの実行に必要なパラメータが含まれます。キー値は静的な値として指定することも、正しいデータ型に解決される JSONPath 変数で指定することもできます。 | dict | はい |  |  | 
| 名前 | ステップの名前。この名前はワークフロードキュメント内で一意である必要があります。 | String | はい |  | 長さは 3～128 文字にする必要があります。<br />英数字と `_` を含めることができます。スペースは使用できません。 | 
| onFailure | ステップが失敗した場合に実行するアクションを次のように構成します。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/imagebuilder/latest/userguide/image-workflow-create-document.html) | String | 不可 | `Abort` | `Abort` \| `Continue` | 
| rollbackEnabled | 障害が発生した場合にステップをロールバックするかどうかを設定します。静的なブール値を使用するか、ブール値に解決される動的な JSONPath 変数を使用できます。 | ブール値 | 不可 | `true` | `true` \| `false` \| または true または false に解決される JSONPath 変数。 | 
| timeoutSeconds | 再試行が適用される場合に、ステップが失敗して再試行されるまでの最大実行時間 (秒単位)。 | 整数 | 不可 | 該当する場合、ステップアクションに定義されているデフォルトによって異なります。 | ステップアクションの最大タイムアウトを超えることはできません | 
| waitSeconds | ステップ実行が一時停止する秒単位の時間。 | 整数 | 不可 | 0 | ステップアクションの timeoutSeconds を超えることはできません | 

**例**

```
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"
```

### ワークフロードキュメントの出力
<a name="wfdoc-struct-output"></a>

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

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


|  フィールド  |  説明  |  タイプ  |  必須  | 
| --- | --- | --- | --- | 
| 名前 | 出力の名前。名前は、パイプラインに含めるワークフロー間で一意である必要があります。 | String | はい | 
| 値 | 出力の値。文字列の値は、ステップアクションからの出力ファイルなどの動的変数でもかまいません。詳細については、「[ワークフロードキュメントでは動的変数を使用します](wfdoc-dynamic-vars.md)」を参照してください。 | String | はい | 

**例**

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

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

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

```
$.workflowOutputs.outputImageId
```