

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

# ワークフロードキュメントでは動的変数を使用します
<a name="wfdoc-dynamic-vars"></a>

ワークフロードキュメントで動的変数を使用して、イメージ作成プロセスのランタイム時に変化する値を表すことができます。動的変数の文字列補間を使用すると、JSON 文字列などの構造化コンテンツ内に JSONPath 式を埋め込むことができます。これは、複雑なペイロード内のランタイム値を `ExecuteStateMachine`や などのステップアクションに渡す必要がある場合に特に便利です`WaitForAction`。

動的変数に文字列補間を使用するには、文字列コンテンツ`"{{...}}"`内の二重中括弧で JSONPath 式をラップします。二重中括弧でラップされた JSONPath 式のみが変数として処理されます。二重中括弧でラップされていない JSONPath 式は、リテラル文字列コンテンツとして扱われます。

**JSONPath 動的ワークフロー変数構文**

```
$.<document structure>.[<step name>.]<variable name>
```

動的変数値は、ターゲット変数を一意に識別する構造ノードを備えた JSONPath セレクターとして表されます。ルート ($) の後の最初のノードは、`stepOutputs` または Image Builder システム変数の場合は、`imageBuilder` などのワークフロードキュメント構造を表します。以下のリストには、サポートされている JSONPath ワークフロードキュメント構造ノードが含まれています。

**ドキュメント構造ノード**
+ parameters – ワークフローパラメータ
+ stepOutputs – 同じワークフロードキュメント内のステップからの出力
+ workflowOutputs – すでに実行されているワークフロードキュメントからの出力
+ imagebuilder – Image Builder システム変数

`parameters` および `stepOutputs` ドキュメント構造ノードには、ステップ名のオプションノードが含まれます。これにより、すべてのステップで変数名が一意になるようになります。

JSONPath の最後のノードは、`instanceId` などのターゲット変数の名前です。

各ステップは、これらの JSONPath 動的変数を備えた前のステップアクションの出力を参照できます。これをチェーニング、または参照とも呼びます。前のステップアクションの出力を参照するには、次の動的変数を使用できます。

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

**重要**  
入力パラメータが動的変数を参照する場合、連鎖インジケータ (`.$`) をパラメータ名の末尾にアタッチする必要があります。

**例 1: 入力パラメータ連鎖インジケータ**

次の例は、文字列補間を使用して実行時にパラメータ値の動的変数を解決する入力パラメータを示しています。

```
  - name: ApplyTestComponents
    action: ExecuteComponents
    onFailure: Abort
    inputs:
      instanceId.$: "$.{{stepOutputs}}.{{LaunchTestInstance}}.{{instanceId}}"
```

**例 2: 動的変数の文字列補間**

次の例は、動的変数が文字列補間を使用して実行時に値を決定する方法を示しています。

```
- name: ValidateImageConfiguration
  action: ExecuteStateMachine
  inputs:
    stateMachineArn: arn:aws:states:{{us-east-1}}:{{111122223333}}:stateMachine:ImageValidation
    input: |
      {
        "imageId": "{{ $.stepOutputs.CreateImageFromInstance.imageId }}",
        "region": "us-east-1",
        "buildDate": "{{ $.imagebuilder.dateTime }}",
        "instanceType": "{{ $.stepOutputs.LaunchStep.instanceType }}"
      }
```

この例では、二重中括弧でラップされた JSONPath 式は実行時に解決されます。
+ `{{ $.stepOutputs.CreateImageFromInstance.imageId }}` - CreateImageFromInstance ステップから実際のイメージ ID を解決します
+ `{{ $.imagebuilder.dateTime }}` - 現在のビルドタイムスタンプを解決します。使用できる Image Builder システム変数のリスト[Image Builder システム変数を使用する](#wfdoc-ib-vars)については、「」を参照してください。
+ `{{ $.stepOutputs.LaunchStep.instanceType }}` - LaunchStep で使用されるインスタンスタイプを解決します

のようなリテラル文字列`"region": "us-east-1"`は変更されません。

**注記**  
文字列補間は、YAML パイプ (`|`) 演算子を使用した複数行文字列など、ワークフロードキュメント内の任意の文字列コンテンツで機能します。中括弧要件は、JSONPath 変数とリテラルテキストコンテンツを明確に区別するためのエスケープメカニズムとして機能します。

## Image Builder システム変数を使用する
<a name="wfdoc-ib-vars"></a>

Image Builder には、ワークフロードキュメントで使用できる以下のシステム変数があります。


|  変数名  |  説明  |  タイプ  |  値の例  | 
| --- | --- | --- | --- | 
| cloudWatchLogGroup | 出力ログの CloudWatch Logs グループの名前。<br />形式: `/aws/imagebuilder/{{<recipe-name>}}` | String | `/aws/imagebuilder/{{sampleImageRecipe}}` | 
| cloudWatchLogStream | 出力ログの CloudWatch Logs ストリームの名前。 | String | {{1.0.0/1}} | 
| collectImageMetadata | インスタンスメタデータを収集するかどうかを Image Builder に指示する設定。 | ブール値 | `true` \| `false` | 
| collectImageScanFindings | Image Builder が画像スキャン検出結果を収集できるようにする設定の現在の値。 | ブール値 | `true` \| `false` | 
| imageBuildNumber | イメージのビルドバージョン番号。 | 整数 | {{1}} | 
| imageId | ベースイメージの AMI ID。 | String | {{ami-1234567890abcdef1}} | 
| imageName | イメージの名前。 | String | {{sampleImage}} | 
| imageType | 画像出力タイプ。 | String | `AMI` \| `Docker` | 
| imageVersionNumber | イメージのバージョン番号。 | String | {{1.0.0}} | 
| instanceProfileName | Image Builder がビルドインスタンスとテストインスタンスを起動するために使用するインスタンスプロファイルロールの名前。 | String | {{SampleImageBuilderInstanceProfileRole}} | 
| platform | ビルドされたイメージのオペレーティングシステムプラットフォーム。 | String | `Linux` \| `Windows` \| `MacOS` | 
| s3Logs | Image Builder が書き込む S3 ログの設定を含む JSON オブジェクト。 | JSON オブジェクト | {'s3Logs': {'s3BucketName': '{{sample-bucket}}', 's3KeyPrefix': '{{ib-logs}}'}} | 
| securityGroups | ビルドインスタンスとテストインスタンスに適用されるセキュリティグループ ID。 | List [String] | {{[sg-1234567890abcdef1, sg-11112222333344445]}} | 
| sourceImageARN | ワークフローがビルドステージとテストステージに使用する Image Builder イメージリソースの Amazon リソースネーム (ARN)。 | String | arn:aws:imagebuilder:{{us-east-1}}:{{111122223333}}:image/{{sampleImage}}/{{1.0.0/1}} | 
| subnetId | ビルドインスタンスとテストインスタンスを起動するサブネットの ID。 | String | {{subnet-1234567890abcdef1}} | 
| terminateInstanceOnFailure | 障害発生時にインスタンスを終了するか、トラブルシューティングのために保持するよう Image Builder に指示する設定の現在の値。 | ブール値 | `true` \| `false` | 
| workflowPhase | ワークフロー実行のために実行中の現在のステージ。 | String | `Build` \| `Test` | 
| workingDirectory | 作業ディレクトリへのパス。 | String | `/tmp` | 