

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

# ワークフロードキュメントでサポートされているステップアクション
<a name="wfdoc-step-actions"></a>

このセクションには、Image Builder がサポートするステップアクションの詳細が含まれています。このセクションで使用する用語

AMI  
Amazon マシンイメージ

ARN  
Amazon リソースネーム

**Topics**
+ [ApplyImageConfigurations](#wfdoc-step-action-apply-image-configurations)
+ [BootstrapInstanceForContainer](#wfdoc-step-action-bootstrap-container)
+ [CollectImageMetadata](#wfdoc-step-action-collect-image-metadata)
+ [CollectImageScanFindings](#wfdoc-step-action-collect-findings)
+ [CreateImage](#wfdoc-step-action-create-img-from-inst)
+ [DistributeImage](#wfdoc-step-action-distribute-image)
+ [ExecuteComponents](#wfdoc-step-action-exec-components)
+ [ExecuteStateMachine](#wfdoc-step-action-exec-state-machine)
+ [LaunchInstance](#wfdoc-step-action-launch-instance)
+ [ModifyImageAttributes](#wfdoc-step-action-modify-image-attributes)
+ [RegisterImage](#wfdoc-step-action-register-image)
+ [RunCommand](#wfdoc-step-action-run-command)
+ [RunSysPrep](#wfdoc-step-action-run-sysprep)
+ [SanitizeInstance](#wfdoc-step-action-sanitize-instance)
+ [TerminateInstance](#wfdoc-step-action-terminate-instance)
+ [WaitForAction](#wfdoc-step-action-waitfor)
+ [WaitForSSMAgent](#wfdoc-step-action-wait-for-ssm-agent)

## ApplyImageConfigurations
<a name="wfdoc-step-action-apply-image-configurations"></a>

このステップアクションは、ライセンス設定、起動テンプレート設定、S3 エクスポート設定、EC2 Fast Launch 設定、Systems Manager AMIs に適用します。設定は、クロスアカウントに適用できる SSM パラメータ設定を除き、ソースアカウントの分散イメージにのみ適用されます。

**デフォルトのタイムアウト: **360 分

**最大タイムアウト: **720 分

**ロールバック: **このステップアクションにはロールバックはありません。

**インプット: **以下の表には、このステップアクションでサポートされる入力が含まれています。


| 入力名 | 説明 | タイプ | [Required] (必須) | [Default] (デフォルト) | 制約 | 
| --- | --- | --- | --- | --- | --- | 
| リージョン | イメージリージョン。 | String | はい |  |  | 
| licenseConfigurationArns | イメージのライセンス設定 ARN。 | 配列 | 不可 |  |  | 
| launchTemplateConfigurations |  | 配列 | 不可 |  |  | 
| launchTemplateConfigurations:launchTemplateId | イメージに適用する起動テンプレート ID。 | String | launchTemplateConfigurations が指定されている場合、はい |  |  | 
| launchTemplateConfigurations:accountId | イメージに適用する起動テンプレートアカウント IDs。 | String | 不可 |  |  | 
| launchTemplateConfigurations:setDefaultVersion | イメージの起動テンプレートのデフォルトバージョン設定。 | ブール値 | 不可 |  |  | 
| s3ExportConfiguration |  | 配列 | 不可 |  |  | 
| s3ExportConfiguration:roleName | イメージの S3 エクスポート設定ロール名。 | String | s3ExportConfiguration が指定されている場合、はい |  |  | 
| s3ExportConfiguration:diskImageFormat | イメージの S3 エクスポート設定ディスクイメージ形式。 | String | s3ExportConfiguration が指定されている場合、はい |  | 許可される値 - VMDK\|RAW\|VHD | 
| s3ExportConfiguration:s3Bucket | イメージの S3 エクスポート設定バケット名。 | String | s3ExportConfiguration が指定されている場合、はい |  |  | 
| s3ExportConfiguration:s3Prefix | イメージの S3 エクスポート設定バケットプレフィックス。 | String | 不可 |  |  | 
| fastLaunchConfigurations | イメージの EC2 Fast Launch 設定。 | 配列 | 不可 |  |  | 
| fastLaunchConfigurations:enabled |  イメージに対する EC2 Fast Launch の有効化/無効化。 | ブール値 | fastLaunchConfigurations が指定されている場合、はい |  |  | 
| fastLaunchConfigurations:snapshotConfiguration |  イメージに対する EC2 Fast Launch の有効化/無効化。 | マッピング | 不可 |  |  | 
| fastLaunchConfigurations:snapshotConfiguration:targetResourceCount | イメージの EC2 Fast Launch ターゲットリソース数。 | 整数 | 不可 |  |  | 
| fastLaunchConfigurations:maxParallelLaunches | イメージの EC2 Fast Launch 最大並列起動数。 | 整数 | 不可 |  |  | 
| fastLaunchConfigurations:launchTemplate |  |  | 不可 |  |  | 
| fastLaunchConfigurations:launchTemplate:launchTemplateId | イメージの EC2 Fast Launch 起動テンプレート ID。 | String | 不可 |  |  | 
| fastLaunchConfigurations:launchTemplate:launchTemplateName | イメージの EC2 Fast Launch 起動テンプレート名。 | String | 不可 |  |  | 
| fastLaunchConfigurations:launchTemplate:launchTemplateVersion | イメージの EC2 Fast Launch 起動テンプレートバージョン。 | String | 不可 |  |  | 
| ssmParameterConfigurations | イメージの SSM パラメータ設定。 | マッピング | 不可 |  |  | 
| ssmParameterConfigurations:amiAccountId | イメージの SSM パラメータ AMI アカウント ID。 | String | 不可 |  |  | 
| ssmParameterConfigurations:parameterName | イメージの SSM パラメータ名。 | String | ssmParameterConfigurations が指定されている場合、はい |  |  | 
| ssmParameterConfigurations:dataType | イメージの SSM パラメータデータ型。 | String | 不可 |  | 使用できる値 - text\|aws:ec2:image) | 

**出力: **次の表には、このステップアクションの出力が含まれています。


| 出力名 | 説明 | タイプ | 
| --- | --- | --- | 
| configuredImages | 設定済みイメージのリスト。 | 配列 | 
| configuredImages:accountId | 分散イメージの送信先アカウント ID。 | String | 
| configuredImages:name | AMI の名前。 | String | 
| configuredImages:amiId | 分散イメージの AMI ID。 | String | 
| configuredImages:dateStarted | ディストリビューションが開始された UTC 時間。 | String | 
| configuredImages:dateStopped | ディストリビューションが完了した UTC 時間。 | String | 
| configuredImages:step | ディストリビューションが停止したステップ。 | Completed\|AssociateLicensesRunning\|UpdateLaunchTemplateRunning\|PutSsmParametersRunning\|UpdateFastLaunchConfiguration\|ExportAmiQueued\|ExportAmiRunning | 
| configuredImages:region | 分散イメージの傾向 AWS  | String | 
| configuredImages:status | ディストリビューションステータス。 | Completed\|Failed\|Cancelled\|TimedOut | 
| configuredImages:errorMessage  | エラーメッセージがある場合。 | String | 

**例**

ワークフロードキュメントでステップアクションを指定します。

```
- name: {{ApplyImageConfigurations}}
  action: ApplyImageConfigurations
  onFailure: Abort
  inputs:
    distributedImages.$: $.stepOutputs.{{DistributeImageStep}}.distributedImages
```

ワークフロードキュメント内のステップアクション値の出力を使用します。

```
$.stepOutputs.{{ApplyImageConfigurationsStep}}.configuredImages
```

## BootstrapInstanceForContainer
<a name="wfdoc-step-action-bootstrap-container"></a>

このステップアクションは、コンテナワークフローを実行するための最小要件でインスタンスをブートストラップするサービススクリプトを実行します。Image Builder は、Systems Manager API の **sendCommand** を使用してこのスクリプトを実行します。詳細については、「[AWS Systems Manager Run Command](https://docs.aws.amazon.com/systems-manager/latest/userguide/execute-remote-commands.html)」を参照してください。

**注記**  
ブートストラップスクリプトは、Image Builder が Docker コンテナを正常に構築するための前提条件である AWS CLI および Docker パッケージをインストールします。このステップアクションを含めないと、イメージビルドは失敗する可能性があります。

**デフォルトタイムアウト: **60 分

**最大タイムアウト: **720 分

**ロールバック: **このステップアクションにはロールバックはありません。

**インプット: **以下の表には、このステップアクションでサポートされる入力が含まれています。


| 入力名 | 説明 | タイプ | [Required] (必須) | [Default] (デフォルト) | 制約 | 
| --- | --- | --- | --- | --- | --- | 
| instanceId | ブートストラップするインスタンスの ID。 | String | はい |  | これは、このワークフローのインスタンスを起動したワークフローステップの出力インスタンス ID でなければなりません。 | 

**出力: **次の表には、このステップアクションの出力が含まれています。


| 出力名 | 説明 | タイプ | 
| --- | --- | --- | 
| runCommandId | インスタンスでブートストラップスクリプトを実行した Systems Manager sendCommand の ID。 | String | 
| ステータス | Systems Manager sendCommand から返されたステータス。 | String | 
| output | Systems Manager sendCommand から返された出力。 | String | 

**例**

ワークフロードキュメントでステップアクションを指定します。

```
- name: {{ContainerBootstrapStep}}
  action: BootstrapInstanceForContainer
  onFailure: Abort
  inputs:
      instanceId.$: $.stepOutputs.{{LaunchStep}}.instanceId
```

ワークフロードキュメント内のステップアクション値の出力を使用します。

```
$.stepOutputs.{{ContainerBootstrapStep}}.status
```

## CollectImageMetadata
<a name="wfdoc-step-action-collect-image-metadata"></a>

このステップアクションはビルドワークフローでのみ有効です。

EC2 Image Builder は、イメージを構築してテストするために、起動した EC2 インスタンスで [AWS Systems Manager (Systems Manager) エージェント](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html)を実行します。Image Builder は、[Systems Manager インベントリ](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-inventory.html)を使用してビルドフェーズ中に使用されたインスタンスに関する追加情報を収集します。この情報には、オペレーティングシステム (OS) の名前とバージョン、オペレーティングシステムによって報告されたパッケージとそれぞれのバージョンのリストが含まれます。

**注記**  
このステップアクションは AMI を作成するイメージにのみ有効です。

**デフォルトタイムアウト: **30 分

**最大タイムアウト: **720 分

**ロールバック:**Image Builder は、このステップで作成された Systems Manager リソースをすべてロールバックします。

**インプット: **以下の表には、このステップアクションでサポートされる入力が含まれています。


| 入力名 | 説明 | タイプ | [Required] (必須) | [Default] (デフォルト) | 制約 | 
| --- | --- | --- | --- | --- | --- | 
| instanceId | メタデータ設定を適用するビルドインスタンス。 | String | はい |  | これは、このワークフローのビルドインスタンスを起動したワークフローステップの出力インスタンス ID でなければなりません。 | 

**出力: **次の表には、このステップアクションの出力が含まれています。


| 出力名 | 説明 | タイプ | 
| --- | --- | --- | 
| osVersion | ビルドインスタンスから収集されたオペレーティングシステム名とバージョン。 | String | 
| associationId | インベントリ収集に使用される Systems Manager アソシエーション ID。 | String | 

**例**

ワークフロードキュメントでステップアクションを指定します。

```
- name: {{CollectMetadataStep}}
  action: CollectImageMetadata
  onFailure: Abort
  inputs:
      instanceId: $.stepOutputs.{{LaunchStep}}.instanceId
```

ワークフロードキュメント内のステップアクションからの出力を使用します。

```
$.stepOutputs.{{CollectMetadataStep}}.osVersion
```

## CollectImageScanFindings
<a name="wfdoc-step-action-collect-findings"></a>

アカウントで Amazon Inspector が有効になっていて、パイプラインでイメージスキャンが有効になっている場合、このステップアクションは Amazon Inspector によって報告されたテストインスタンス用のイメージスキャンの検出結果を収集します。このステップアクションはビルドワークフローでは利用できません。

**デフォルトタイムアウト: **120 分

**最大タイムアウト: **720 分

**ロールバック: **このステップアクションにはロールバックはありません。

**インプット: **以下の表には、このステップアクションでサポートされる入力が含まれています。


| 入力名 | 説明 | タイプ | [Required] (必須) | [Default] (デフォルト) | 制約 | 
| --- | --- | --- | --- | --- | --- | 
| instanceId | スキャンが実行されたインスタンスの ID。 | String | はい |  | これは、このワークフローのインスタンスを起動したワークフローステップの出力インスタンス ID でなければなりません。 | 

**出力: **次の表には、このステップアクションの出力が含まれています。


| 出力名 | 説明 | タイプ | 
| --- | --- | --- | 
| runCommandId | 結果を収集するためにスクリプトを実行した Systems Manager sendCommand の ID。 | String | 
| ステータス | Systems Manager sendCommand から返されたステータス。 | String | 
| output | Systems Manager sendCommand から返された出力。 | String | 

**例**

ワークフロードキュメントでステップアクションを指定します。

```
- name: {{CollectFindingsStep}}
  action: CollectImageScanFindings
  onFailure: Abort
  inputs:
      instanceId.$: $.stepOutputs.{{LaunchStep}}.instanceId
```

ワークフロードキュメント内のステップアクション値の出力を使用します。

```
$.stepOutputs.{{CollectFindingsStep}}.status
```

## CreateImage
<a name="wfdoc-step-action-create-img-from-inst"></a>

このステップアクションは、Amazon EC2 `CreateImage` API を使用して実行中のインスタンスからイメージを作成します。作成プロセス中、ステップアクションは必要に応じてリソースが正しい状態になったことを確認してから続行します。

**デフォルトタイムアウト: **720 分

**最大タイムアウト: **3 日間

**ロールバック: **このステップアクションにはロールバックはありません。

**インプット: **以下の表には、このステップアクションでサポートされる入力が含まれています。


| 入力名 | 説明 | タイプ | [Required] (必須) | [Default] (デフォルト) | 制約 | 
| --- | --- | --- | --- | --- | --- | 
| instanceId | 新しいイメージを作成するインスタンス。 | String | はい |  | 指定したインスタンス ID のインスタンスは、このステップの開始時点の running 状態にある必要があります。 | 

**出力: **次の表には、このステップアクションの出力が含まれています。


| 出力名 | 説明 | タイプ | 
| --- | --- | --- | 
| imageId | 作成されたイメージの AMI ID。 | String | 

**例**

ワークフロードキュメントでステップアクションを指定します。

```
- name: {{CreateImageFromInstance}}
  action: CreateImage
  onFailure: Abort
  inputs:
      instanceId.$: "i-1234567890abcdef0"
```

ワークフロードキュメント内のステップアクション値の出力を使用します。

```
$.stepOutputs.{{CreateImageFromInstance}}.imageId
```

## DistributeImage
<a name="wfdoc-step-action-distribute-image"></a>

このステップアクションは、指定されたリージョンとアカウントに AMI を配布します。CreateImage または CreateImagePipeline APIs のリクエストで提供されたディストリビューション設定、またはディストリビューション設定の設定を上書きするためにワークフローで提供されたカスタムディストリビューション設定に基づいて、ターゲットリージョンとアカウントに AMI のコピーを作成します。

**デフォルトのタイムアウト: **360 分

**最大タイムアウト: **720 分

**ロールバック: **このステップアクションにはロールバックはありません。

**インプット: **以下の表には、このステップアクションでサポートされる入力が含まれています。


| 入力名 | 説明 | タイプ | [Required] (必須) | [Default] (デフォルト) | 制約 | 
| --- | --- | --- | --- | --- | --- | 
| リージョン | イメージを配布するリージョンのリスト。 | String | はい |  | 最小長は 1 です｡ 最大長は 1,024 です。 | 
| 名前 | ディストリビューション設定の名前。 | String | いいえ |  |  | 
| 説明 | ディストリビューション設定のディストリビューション。 | String | 不可 |  |  | 
| targetAccountIds | イメージを配布するアカウント IDs。 | 配列 | 不可 |  |  | 
| amiTags | ディストリビューション設定のタグ。 | マッピング | 不可 |  |  | 
| kmsKeyId | 分散イメージに適用する KMS キー。 | String | 不可 |  |  | 

**出力: **次の表には、このステップアクションの出力が含まれています。


| 出力名 | 説明 | タイプ | 
| --- | --- | --- | 
| distributedImages | 分散イメージのリスト | 配列 | 
| distributedImages:region | 分散イメージの Tne AWS リージョン。 | String | 
| distributedImages:name | AMI の名前。 | String | 
| distributedImages:amiId | 分散イメージの AMI ID。 | String | 
| distributedImages:accountId | 分散イメージの送信先アカウント ID。 | String | 
| distributedImages:dateStarted | ディストリビューションが開始された UTC 時間。 | String | 
| distributedImages:dateStopped | ディストリビューションが完了した UTC 時間。 | String | 
| distributedImages:status | ディストリビューションステータス。 | Completed\|Failed\|Cancelled\|TimedOut | 
| distributedImages:step | ディストリビューションが停止したステップ。 | 完了\|CopyAmiRunning | 
| distributedImages:errorMessage  | エラーメッセージがある場合。 | String | 

**例**

ワークフロードキュメントでステップアクションを指定します。

```
- name: {{DistributeImage}}
  action: DistributeImage
  onFailure: Abort
  inputs:
    distributions:
      - region.$: "$.parameters.{{SourceRegion}}"
        description: "{{AMI distribution to source region}}"
        amiTags:
          DistributionTest: "{{SourceRegion}}"
          WorkflowStep: "{{DistributeToSourceRegion}}"
          BuildDate: "{{imagebuilder:buildDate:yyyyMMHHss}}"
          BuildVersion: "{{imagebuilder:buildVersion}}"
```

ワークフロードキュメント内のステップアクション値の出力を使用します。

```
$.stepOutputs.{{DistributeImageStep}}.distributedImages
```

## ExecuteComponents
<a name="wfdoc-step-action-exec-components"></a>

このステップアクションは、ビルド中の現在のイメージのレシピで指定されているコンポーネントを実行します。ビルドワークフローは、ビルドインスタンスでビルドコンポーネントを実行します。テストワークフローは、テストインスタンスでのみテストコンポーネントを実行します。

Image Builder は、Systems Manager API の **sendCommand** を使用してコンポーネントを実行します。詳細については、「[AWS Systems Manager Run Command](https://docs.aws.amazon.com/systems-manager/latest/userguide/execute-remote-commands.html)」を参照してください。

**デフォルトタイムアウト: **720 分

**最大タイムアウト: **1 日

**ロールバック: **このステップアクションにはロールバックはありません。

**インプット: **以下の表には、このステップアクションでサポートされる入力が含まれています。


| 入力名 | 説明 | タイプ | [Required] (必須) | [Default] (デフォルト) | 制約 | 
| --- | --- | --- | --- | --- | --- | 
| instanceId | コンポーネントを実行する必要のあるインスタンスの ID。 | String | はい |  | これは、このワークフローのインスタンスを起動したワークフローステップの出力インスタンス ID でなければなりません。 | 

**出力: **次の表には、このステップアクションの出力が含まれています。


| 出力名 | 説明 | タイプ | 
| --- | --- | --- | 
| runCommandId | インスタンスでコンポーネントを実行した Systems Manager sendCommand の ID。 | String | 
| ステータス | Systems Manager sendCommand から返されたステータス。 | String | 
| output | Systems Manager sendCommand から返された出力。 | String | 

**例**

ワークフロードキュメントでステップアクションを指定します。

```
- name: {{ExecComponentsStep}}
  action: ExecuteComponents
  onFailure: Abort
  inputs:
      instanceId: $.stepOutputs.{{LaunchStep}}.instanceId
```

ワークフロードキュメント内のステップアクションからの出力を使用します。

```
$.stepOutputs.{{ExecComponentsStep}}.status
```

## ExecuteStateMachine
<a name="wfdoc-step-action-exec-state-machine"></a>

このステップアクションは、Image Builder ワークフローから AWS Step Functions ステートマシンの実行を開始します。Image Builder は Step Functions `StartExecution` API を使用してステートマシンを開始し、完了するのを待ちます。これは、複雑なワークフロー、コンプライアンス検証、または認証プロセスをイメージ構築パイプラインに統合するのに役立ちます。

詳細については、[「 デベロッパーガイド」の「Step Functions でステートマシンについて学ぶ](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-statemachines.html)」を参照してください。 *AWS Step Functions *

**デフォルトのタイムアウト: **6 時間

**最大タイムアウト: **24 時間

**ロールバック: **このステップアクションにはロールバックはありません。

**インプット: **以下の表には、このステップアクションでサポートされる入力が含まれています。


| 入力名 | 説明 | タイプ | [Required] (必須) | [Default] (デフォルト) | 制約 | 
| --- | --- | --- | --- | --- | --- | 
| stateMachineArn | 実行する Step Functions ステートマシンの ARN。 | String | はい |  | 有効なステートマシン ARN である必要があります。 | 
| input | ステートマシンに提供する JSON 入力データ。 | String | 不可 | {} | 有効な JSON 文字列である必要があります。最大長は 16 KiB です。 | 

**出力: **次の表には、このステップアクションの出力が含まれています。


| 出力名 | 説明 | タイプ | 
| --- | --- | --- | 
| executionArn | ステートマシン実行の ARN。 | String | 
| output | ステートマシン実行の出力。 | String | 

**必要な IAM アクセス許可**

このステップアクションを使用するには、カスタム実行ロールに次のアクセス許可が必要です。

**アクションを許可する**
+ `states:StartExecution`
+ `states:DescribeExecution`

**リソースを指定する**
+ `arn:aws:states:{{us-west-2}}:{{111122223333}}:stateMachine:{{state-machine-name}}`
+ `arn:aws:states:{{us-west-2}}:{{111122223333}}:execution:{{state-machine-name}}:*`

**例**

ワークフロードキュメントでステップアクションを指定します。

```
- name: {{ValidateImageCompliance}}
  action: ExecuteStateMachine
  timeoutSeconds: 3600
  onFailure: Abort
  inputs:
    stateMachineArn: arn:aws:states:{{us-west-2}}:{{111122223333}}:stateMachine:{{ImageComplianceValidation}}
    input: |
      {
        "imageId": "{{ $.stepOutputs.CreateImageFromInstance.imageId }}",
        "region": "us-west-2",
        "complianceLevel": "high",
        "requiredScans": ["cve", "benchmark", "configuration"]
      }
```

ワークフロードキュメント内のステップアクション値の出力を使用します。

```
$.stepOutputs.{{ValidateImageCompliance}}.executionArn
```

## LaunchInstance
<a name="wfdoc-step-action-launch-instance"></a>

このステップアクションは、 でインスタンスを起動 AWS アカウント し、Systems Manager エージェントがインスタンスで実行されるまで待ってから、次のステップに進みます。起動アクションでは、レシピの設定と、イメージに関連するインフラストラクチャ設定リソースを使用します。例えば、起動するインスタンスタイプはインフラストラクチャ設定に基づいています。出力は、起動したインスタンスのインスタンス ID です。

`waitFor` 入力は、ステップ完了要件を満たす条件を設定します。

**デフォルトのタイムアウト: **75 分

**最大タイムアウト: **720 分

**ロールバック: **ビルドインスタンスの場合、ロールバックはインフラストラクチャ設定リソースで設定したアクションを実行します。デフォルトでは、イメージの作成に失敗するとビルドインスタンスは終了します。ただし、インフラストラクチャ設定には、ビルドインスタンスをトラブルシューティング用に保持する設定があります。

**インプット: **以下の表には、このステップアクションでサポートされる入力が含まれています。


| 入力名 | 説明 | タイプ | [Required] (必須) | [Default] (デフォルト) | 制約 | 
| --- | --- | --- | --- | --- | --- | 
| imageIdOverride | インスタンスの起動に使用するイメージ | String | 不可 | ビルドステージ: イメージレシピベースイメージ<br />テストステージ: ビルドステージから AMI を出力する | 有効な AMI ID である必要があります | 
| instanceTypesOverride | Image Builder は、正常に起動するインスタンスタイプが見つかるまで、リスト内の各インスタンスタイプを試行します。 | 文字列のリスト | 不可 | インフラストラクチャ設定で指定されたインスタンスタイプ | 有効なインスタンスタイプである必要があります | 
| waitFor | ワークフローステップを完了し、次のステップに進む前に待機する条件 | String | はい |  | Image Builder は、ssmAgent をサポートしています。 | 

**出力: **次の表には、このステップアクションの出力が含まれています。


| 出力名 | 説明 | タイプ | 
| --- | --- | --- | 
| instanceId | 起動したインスタンスのインスタンス ID。 | String | 

**例**

ワークフロードキュメントでステップアクションを指定します。

```
- name: {{LaunchStep}}
  action: LaunchInstance
  onFailure: Abort
  inputs:
    waitFor: ssmAgent
```

ワークフロードキュメント内のステップアクションからの出力を使用します。

```
$.stepOutputs.{{LaunchStep}}.instanceId
```

## ModifyImageAttributes
<a name="wfdoc-step-action-modify-image-attributes"></a>

このステップアクションは、起動許可やその他の AMIs 属性など、分散 AMI の属性を変更します。ターゲットリージョンとアカウントに配布された AMIs で動作します。

**デフォルトタイムアウト: **120 分

**最大タイムアウト: **180 分

**ロールバック: **このステップアクションにはロールバックはありません。

**インプット: **以下の表には、このステップアクションでサポートされる入力が含まれています。


| 入力名 | 説明 | タイプ | [Required] (必須) | [Default] (デフォルト) | 制約 | 
| --- | --- | --- | --- | --- | --- | 
| リージョン | イメージのリージョン。 | String | はい |  |  | 
| launchPermission |  |  | 不可 |  |  | 
| launchPermission:userIds | イメージの起動アクセス許可で変更するユーザー IDs。 | String | 不可 |  |  | 
| launchPermission:userGroups | イメージの起動アクセス許可で変更するユーザーグループ。 | String | 不可 |  |  | 
| launchPermission:organizationArns | イメージの起動アクセス許可で変更する AWS 組織 ARNs。 | String | 不可 |  |  | 
| launchPermission:organizationalUnitArns | イメージの起動アクセス許可で変更する AWS 組織単位 ARNs。 | String | 不可 |  |  | 

**出力: **次の表には、このステップアクションの出力が含まれています。


| 出力名 | 説明 | タイプ | 
| --- | --- | --- | 
| modifiedImages | 変更されたイメージのリスト | 配列 | 
| modifiedImages:accountId | 分散イメージの送信先アカウント ID。 | String | 
| modifiedImages:name | AMI の名前。 | String | 
| modifiedImages:amiId | 分散イメージの AMI ID。 | String | 
| modifiedImages:dateStarted | ディストリビューションが開始された UTC 時間。 | String | 
| modifiedImages:dateStopped | ディストリビューションが完了した UTC 時間。 | String | 
| modifiedImages:step | ディストリビューションが停止したステップ。 | 完了\|ModifyAmiRunning | 
| modifiedImages:region | イメージの Tne AWS リージョン。 | String | 
| modifiedImages:status | ディストリビューションステータス。 | Completed\|Failed\|Cancelled\|TimedOut | 
| modifiedImages:errorMessage  | エラーメッセージがある場合。 | String | 

**例**

ワークフロードキュメントでステップアクションを指定します。

```
- name: {{ModifyImageAttributes}}
  action: ModifyImageAttributes
  onFailure: Abort
  inputs:
    distributedImages.$: $.stepOutputs.{{DistributeImageStep}}.distributedImages
```

ワークフロードキュメント内のステップアクション値の出力を使用します。

```
$.stepOutputs.{{ModifyImageAttributesStep}}.modifiedImages
```

## RegisterImage
<a name="wfdoc-step-action-register-image"></a>

このステップアクションは、Amazon EC2 RegisterImage API を使用して新しい Amazon マシンイメージ (AMI) RegisterImage を登録します。これにより、既存のスナップショットまたはスナップショットのセットから AMI を作成し、さまざまなイメージ属性を指定できます。

**デフォルトのタイムアウト: **540 分

**最大タイムアウト: **720 分

**ロールバック: **このステップアクションにはロールバックはありません。

**インプット: **以下の表には、このステップアクションでサポートされる入力が含まれています。


| 入力名 | 説明 | タイプ | [Required] (必須) | [Default] (デフォルト) | 制約 | 
| --- | --- | --- | --- | --- | --- | 
| アーキテクチャ | AMI のアーキテクチャ。 | String | 不可 |  | 有効な値: i386、x86\_64、arm64、x86\_64\_mac、arm64\_mac | 
| blockDeviceMapping | AMI のブロックデバイスマッピングエントリ。 | 配列 | 不可 |  |  | 
| bootMode | AMI のブートモード。 | String | 不可 |  | 有効な値: legacy-bios、uefi、uefi-preferred | 
| 説明 | AMI の説明。 | String | 不可 |  |  | 
| enaSupport | ENA による拡張ネットワーキングが有効になっているかどうか。 | ブール値 | 不可 |  |  | 
| imageLocation | AMI マニフェストの場所。 | String | 不可 |  | S3-backed AMIs に必須 | 
| imdsSupport | IMDSv2 サポートレベル。 | String | 不可 |  | 有効な値: v2.0 | 
| includeSnapshotTags | ブロックデバイスマッピングで定義された最初のスナップショットのタグを含めるかどうか。 | ブール値 | 不可 | FALSE | true に設定すると、タグは次のように含まれます。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/imagebuilder/latest/userguide/wfdoc-step-actions.html) | 
| kernelId | 使用するカーネルの ID。 | String | 不可 |  |  | 
| ramdiskId | 使用する RAM ディスクの ID。 | String | 不可 |  |  | 
| rootDeviceName | ルートデバイスのデバイス名。 | String | 不可 |  | 例: /dev/sda1 | 
| sriovNetSupport | Intel 82599 VF インターフェイスを使用した拡張ネットワーキング。 | String | 不可 |  |  | 
| tpmSupport | TPM バージョンのサポート。 | String | 不可 |  | 有効な値: v2.0 | 
| uefiData | Base64-encodedされた UEFI データ。 | String | 不可 |  |  | 
| virtualizationType | 仮想化タイプ。 | String | 不可 |  | 有効な値: hvm、準仮想 | 

**出力: **次の表には、このステップアクションの出力が含まれています。


| 出力名 | 説明 | タイプ | 
| --- | --- | --- | 
| imageId | 登録済みイメージの AMI ID。 | String | 

**必要な IAM アクセス許可**

このステップアクションを使用するには、カスタム実行ロールに次のアクセス許可が必要です。

**アクションを許可する**
+ `ec2:DescribeSnapshots`
+ `ec2:CreateTags`

**例**

ワークフロードキュメントでステップアクションを指定します。

```
- name: RegisterNewImage
  action: RegisterImage
  onFailure: Abort
  inputs:
    architecture: "x86_64"
    bootMode: "uefi"
    blockDeviceMapping:
      - DeviceName: "/dev/sda1"
        Ebs:
          SnapshotId: "{{snap-1234567890abcdef0}}"
          VolumeSize: 100
          VolumeType: "gp3"
    rootDeviceName: "/dev/sda1"
    virtualizationType: "hvm"
```

ワークフロードキュメント内のステップアクション値の出力を使用します。

```
$.stepOutputs.RegisterNewImage.imageId
```

**別のステップの SnapshotId と、生成された AMI に含まれるスナップショットタグの例**

```
- name: CreateSnapshot
  action: RunCommand
  onFailure: Abort
  inputs:
    instanceId: "{{i-1234567890abcdef0}}"
    documentName: "AWS-RunShellScript"
    parameters:
      commands:
        - "aws ec2 create-snapshot --volume-id {{vol-1234567890abcdef0}} --description 'Snapshot for AMI' --query 'SnapshotId' --output text"

- name: RegisterImageFromSnapshot
  action: RegisterImage
  onFailure: Abort
  inputs:
    architecture: "x86_64"
    bootMode: "uefi"
    blockDeviceMapping:
      - DeviceName: "/dev/sda1"
        Ebs:
          SnapshotId.$: "$.stepOutputs.CreateSnapshot.output[0]"
          VolumeSize: 100
          VolumeType: "gp3"
    includeSnapshotTags: true
    rootDeviceName: "/dev/sda1"
    virtualizationType: "hvm"
```

## RunCommand
<a name="wfdoc-step-action-run-command"></a>

このステップアクションは、ワークフローのコマンドドキュメントを実行します。Image Builder は、Systems Manager API の **sendCommand** を使用して実行します。詳細については、「[AWS Systems Manager Run Command](https://docs.aws.amazon.com/systems-manager/latest/userguide/run-command.html)」を参照してください。

**デフォルトタイムアウト: **720 分

**最大タイムアウト: **720 分

**ロールバック: **このステップアクションにはロールバックはありません。

**インプット: **以下の表には、このステップアクションでサポートされる入力が含まれています。


| 入力名 | 説明 | タイプ | [Required] (必須) | [Default] (デフォルト) | 制約 | 
| --- | --- | --- | --- | --- | --- | 
| instanceId | コマンドドキュメントを実行するインスタンスの ID。 | String | はい |  | これは、このワークフローのインスタンスを起動したワークフローステップの出力インスタンス ID でなければなりません。 | 
| documentName | 実行する Systems Manager コマンドドキュメントの名前。 | String | はい |  |  | 
| パラメータ | コマンドドキュメントに必要なすべてのパラメータのキーと値のペアのリスト。 | dictionary<string, list<string>> | 条件付き |  |  | 
| documentVersion | 実行するコマンドドキュメントのバージョン。 | String | 不可 | $DEFAULT |  | 

**出力: **次の表には、このステップアクションの出力が含まれています。


| 出力名 | 説明 | タイプ | 
| --- | --- | --- | 
| runCommandId | インスタンスでコマンドドキュメントを実行した Systems Manager sendCommand の ID。 | String | 
| ステータス | Systems Manager sendCommand から返されたステータス。 | String | 
| output | Systems Manager sendCommand から返された出力。 | 文字列のリスト | 

**例**

ワークフロードキュメントでステップアクションを指定します。

```
- name: {{RunCommandDoc}}
  action: RunCommand
  onFailure: Abort
  inputs:
    documentName: {{SampleDocument}}
    parameters:
        osPlatform: 
          - "{{linux}}"
    instanceId.$: $.stepOutputs.{{LaunchStep}}.instanceId
```

ワークフロードキュメント内のステップアクション値の出力を使用します。

```
$.stepOutputs.{{RunCommandDoc}}.status
```

## RunSysPrep
<a name="wfdoc-step-action-run-sysprep"></a>

このステップアクションでは、ビルドインスタンスがスナップショット用にシャットダウンされる前に、Systems Manager API の **sendCommand** を使用して Windows インスタンス用の `AWSEC2-RunSysprep` ドキュメントを実行します。これらのアクションは[AWS 、イメージを強化およびクリーンアップするためのベストプラクティス](https://aws.amazon.com/articles/public-ami-publishing-hardening-and-clean-up-requirements/)に従います。

**デフォルトタイムアウト: **60 分

**最大タイムアウト: **720 分

**ロールバック: **このステップアクションにはロールバックはありません。

**インプット: **以下の表には、このステップアクションでサポートされる入力が含まれています。


| 入力名 | 説明 | タイプ | [Required] (必須) | [Default] (デフォルト) | 制約 | 
| --- | --- | --- | --- | --- | --- | 
| instanceId | AWSEC2-RunSysprep ドキュメントを実行するインスタンスの ID。 | String | はい |  | これは、このワークフローのインスタンスを起動したワークフローステップの出力インスタンス ID でなければなりません。 | 

**出力: **次の表には、このステップアクションの出力が含まれています。


| 出力名 | 説明 | タイプ | 
| --- | --- | --- | 
| runCommandId | インスタンスで AWSEC2-RunSysprep ドキュメントを実行した Systems Manager sendCommand の ID。 | String | 
| ステータス | Systems Manager sendCommand から返されたステータス。 | String | 
| output | Systems Manager sendCommand から返された出力。 | String | 

**例**

ワークフロードキュメントでステップアクションを指定します。

```
- name: {{RunSysprep}}
  action: RunSysPrep
  onFailure: Abort
  inputs:
      instanceId.$: $.stepOutputs.{{LaunchStep}}.instanceId
```

ワークフロードキュメント内のステップアクション値の出力を使用します。

```
$.stepOutputs.{{RunSysprep}}.status
```

## SanitizeInstance
<a name="wfdoc-step-action-sanitize-instance"></a>

このステップアクションは、スナップショットのためにビルドインスタンスをシャットダウンする前に Linux インスタンス用の推奨サニタイズスクリプトを実行します。サニタイズスクリプトにより、最終的なイメージがセキュリティのベストプラクティスに従っていることを確認し、スナップショットに引き継がれてはならないビルドアーティファクトや設定をすべて削除することができます。スクリプトの詳細については、「[ビルド後のクリーンアップが必要](security-best-practices.md#post-build-cleanup)」を参照してください。このステップアクションはコンテナーイメージには適用されません。

Image Builder は、Systems Manager API の **sendCommand** を使用してこのスクリプトを実行します。詳細については、「[AWS Systems Manager Run Command](https://docs.aws.amazon.com/systems-manager/latest/userguide/execute-remote-commands.html)」を参照してください。

**デフォルトタイムアウト: **60 分

**最大タイムアウト: **720 分

**ロールバック: **このステップアクションにはロールバックはありません。

**インプット: **以下の表には、このステップアクションでサポートされる入力が含まれています。


| 入力名 | 説明 | タイプ | [Required] (必須) | [Default] (デフォルト) | 制約 | 
| --- | --- | --- | --- | --- | --- | 
| instanceId | サニタイズするインスタンスの ID。 | String | はい |  | これは、このワークフローのインスタンスを起動したワークフローステップの出力インスタンス ID でなければなりません。 | 

**出力: **次の表には、このステップアクションの出力が含まれています。


| 出力名 | 説明 | タイプ | 
| --- | --- | --- | 
| runCommandId | インスタンスでサニタイズスクリプトを実行した Systems Manager sendCommand の ID。 | String | 
| ステータス | Systems Manager sendCommand から返されたステータス。 | String | 
| output | Systems Manager sendCommand から返された出力。 | String | 

**例**

ワークフロードキュメントでステップアクションを指定します。

```
- name: {{SanitizeStep}}
  action: SanitizeInstance
  onFailure: Abort
  inputs:
      instanceId: $.stepOutputs.{{LaunchStep}}.instanceId
```

ワークフロードキュメント内のステップアクション値の出力を使用します。

```
$.stepOutputs.{{SanitizeStep}}.status
```

## TerminateInstance
<a name="wfdoc-step-action-terminate-instance"></a>

このステップアクションは、入力として渡されたインスタンス ID でインスタンスを終了します。

**デフォルトタイムアウト: **30 分

**最大タイムアウト: **720 分

**ロールバック: **このステップアクションにはロールバックはありません。

**インプット: **以下の表には、このステップアクションでサポートされる入力が含まれています。


| 入力名 | 説明 | タイプ | [Required] (必須) | [Default] (デフォルト) | 制約 | 
| --- | --- | --- | --- | --- | --- | 
| instanceId | 終了するインスタンスの ID。 | String | はい |  |  | 

**出力: **このステップアクションには出力がありません。

**例**

ワークフロードキュメントでステップアクションを指定します。

```
- name: {{TerminateInstance}}
  action: TerminateInstance
  onFailure: Continue
  inputs:
      instanceId.$: {{i-1234567890abcdef0}}
```

## WaitForAction
<a name="wfdoc-step-action-waitfor"></a>

このステップアクションは、実行中のワークフローを一時停止し、Image Builder **SendWorkflowStepAction** API アクションからの外部アクションの受信を待ちます。このステップは、EventBridge イベントをデフォルトの EventBridge イベントバスに詳細タイプ `EC2 Image Builder Workflow Step Waiting` で公開します。ステップは、SNS トピック ARN を指定した場合は SNS 通知を送信し、Lambda 関数名を指定した場合は Lambda 関数を非同期的に呼び出すこともできます。

**デフォルトタイムアウト: **3 日

**最大タイムアウト: **7 日間

**ロールバック: **このステップアクションにはロールバックはありません。

**インプット: **以下の表には、このステップアクションでサポートされる入力が含まれています。


| 入力名 | 説明 | タイプ | [Required] (必須) | [Default] (デフォルト) | 制約 | 
| --- | --- | --- | --- | --- | --- | 
| snsTopicArn | ワークフローステップが保留になっているときに通知を送信するオプションの SNS トピック ARN。 | String | 不可 |  |  | 
| lambdaFunctionName | ワークフローステップが保留中のときに非同期的に呼び出す Lambda 関数のオプションの名前または ARN。 | String | 不可 |  |  | 
| payload | SNS のメッセージとして使用される JSON 文字列と Lambda のペイロード。指定した場合、カスタムペイロードはデフォルトのメッセージ/ペイロードでラップされ、それぞれ SNS と Lambda に使用されます。指定しない場合、 はデフォルトのメッセージ/ペイロードを生成します。 | String | 不可 |  | 有効な JSON 文字列、最大 16 KiB である必要があります | 

**出力: **次の表には、このステップアクションの出力が含まれています。


| 出力名 | 説明 | タイプ | 
| --- | --- | --- | 
| action | SendWorkflowStepAction API アクションが返すアクション。 | 文字列 (RESUME または STOP) | 
| 理由 | 反されたアクションの理由。 | String | 

**必要な IAM アクセス許可**

このステップアクションを使用するには、カスタム実行ロールに次のアクセス許可が必要です。

**アクションを許可する**
+ `lambda:InvokeFunction`

**リソースを指定する**
+ `arn:aws:lambda:{{us-west-2}}:{{111122223333}}:function:{{function-name}}`
+ `arn:aws:lambda:{{us-west-2}}:{{111122223333}}:function:*`

**例**

SNS 通知を使用してワークフロードキュメントでステップアクションを指定します。

```
- name: {{SendEventAndWait}}
  action: WaitForAction
  onFailure: Abort
  inputs:
    snsTopicArn: arn:aws:sns:{{us-west-2}}:{{111122223333}}:{{ExampleTopic}}
```

Lambda 関数呼び出しを使用してワークフロードキュメントでステップアクションを指定します。

```
- name: {{SendEventAndWaitWithLambda}}
  action: WaitForAction
  onFailure: Abort
  inputs:
    lambdaFunctionName: {{ExampleFunction}}
    payload: |
      {
        "imageId": "{{ $.stepOutputs.CreateImageFromInstance.imageId }}",
        "region": "us-west-2"
      }
```

ワークフロードキュメント内のステップアクション値の出力を使用します。

```
$.stepOutputs.{{SendEventAndWait}}.reason
```

## WaitForSSMAgent
<a name="wfdoc-step-action-wait-for-ssm-agent"></a>

このステップアクションは、EC2 インスタンスが予想される無応答期間後に によって AWS Systems Manager 管理可能になるまで待機します。これは、システムの再起動、OS のアップグレード、SSM からインスタンスを一時的に切断するプラットフォーム固有のオペレーションなど、インスタンスの中断が既知のワークフローに特に役立ちます。Image Builder は、SSM 接続が回復するかタイムアウトするまでインスタンスをモニタリングします。

**デフォルトタイムアウト: **60 分

**最大タイムアウト: **180 分

**ロールバック: **このステップアクションにはロールバックはありません。

**インプット: **以下の表には、このステップアクションでサポートされる入力が含まれています。


| 入力名 | 説明 | タイプ | [Required] (必須) | [Default] (デフォルト) | 制約 | 
| --- | --- | --- | --- | --- | --- | 
| instanceId | SSM 接続をモニタリングするインスタンスの ID。 | String | はい |  | 有効な EC2 インスタンス ID である必要があります | 

**出力: **次の表には、このステップアクションの出力が含まれています。


| 出力名 | 説明 | タイプ | 
| --- | --- | --- | 
| ステータス | SSM エージェントの接続ステータス。 | String | 

**例**

ワークフロードキュメントでステップアクションを指定します。

```
- name: {{WaitForInstanceAfterReboot}}
  action: WaitForSSMAgent
  onFailure: Abort
  timeoutInSeconds: 900
  inputs:
    instanceId.$: $.stepOutputs.LaunchStep.instanceId
```

ワークフロードキュメント内のステップアクション値の出力を使用します。

```
$.stepOutputs.{{WaitForInstanceAfterReboot}}.Status
```