View a markdown version of this page

ワークフロードキュメントでサポートされているステップアクション - EC2 イメージビルダー

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

ワークフロードキュメントでサポートされているステップアクション

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

このセクションで使用する用語
AMI

Amazon マシンイメージ

ARN

Amazon リソースネーム

次の表は、各ステップアクションをサポートするワークフローステージを示しています。チェックマーク (X) は、そのステージでステップアクションを使用できることを示します。Image Builder は、いくつかのアクションを特定のステージに制限します。ExecuteComponentsビルドステージとテストステージ、CollectImageScanFindingsテストステージ、および DistributeImageModifyImageAttributesApplyImageConfigurations、、ディストリビューションステージDistributeContainerImageです。他のすべてのアクションはどのステージでも使用できます。

ステップアクション ビルド テスト ディストリビューション 注意事項
LaunchInstance X X X Amazon EC2 インスタンスを起動します。
BootstrapInstanceForContainer X X X コンテナビルド AWS CLI 用の Docker と をインストールします。
ExecuteComponents X X インスタンスでコンポーネントを実行します。ビルドステージとテストステージに制限されます。
CollectImageMetadata X X X AMI ビルドのみ。
RunSysPrep X X X Windows ビルド。
SanitizeInstance X X X Linux AMI ビルド。コンテナ用ではありません。
CreateImage X X X ビルドインスタンスから AMI を作成します。
CreateImageFromIso X X X ISO ディスクイメージから AMI を作成します。
RegisterImage X X X スナップショットから AMI を登録します。
DistributeContainerImage X コンテナイメージを分散します。ディストリビューションステージに制限されます。
CollectImageScanFindings X イメージスキャンの検出結果を収集します。テストステージに制限されます。Amazon Inspector とイメージスキャンが必要です。
RunCommand X X X AWS Systems Manager (Systems Manager) コマンドドキュメントを実行します。
WaitForSSMAgent X X X 再起動後、Systems Manager の接続を待ちます。
WaitForAction X X X 外部アクションを一時停止します。
ExecuteStateMachine X X X Step Functions ステートマシンを実行します。
TerminateInstance X X X インスタンスを終了します。たとえば、コンテナ分散ワークフローは、イメージをプッシュした後にビルドインスタンスを終了します。
DistributeImage X AMI をリージョンとアカウントにコピーします。ディストリビューションステージに制限されます。
ModifyImageAttributes X AMI 起動のアクセス許可を変更します。ディストリビューションステージに制限されます。
ApplyImageConfigurations X 起動テンプレート、ライセンス、エクスポート、高速起動、および Systems Manager パラメータを適用します。ディストリビューションステージに制限されます。
重要

単一のワークフローは、AMIsまたはコンテナイメージの両方ではなく、両方を配布します。ワークフローに が含まれている場合DistributeContainerImageDistributeImageModifyImageAttributes、または を含めることはできませんApplyImageConfigurations。これらの AMI ディストリビューションアクションは Amazon EC2 AMIs、 は Amazon Elastic Container Registry (Amazon ECR) のコンテナイメージでDistributeContainerImage動作します。

ApplyImageConfigurations

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

注記

configurations 入力はオプションです。これを指定すると、Image Builder はワークフロー入力を使用し、アタッチされたディストリビューション設定を無視します。これを省略すると、Image Builder はパイプラインまたはイメージにアタッチされたディストリビューション設定に戻ります。

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

最大タイムアウト: 720 分 (12 時間)

デフォルトは、表示されている最大値まで timeoutSecondsで上書きできます。最大を超える値は検証に失敗します。

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

インプット: 以下の表には、このステップアクションでサポートされる入力が含まれています。distributedImages.$ 入力は必須です。残りの行は、configurations配列の各項目内のフィールドを記述します。

入力名 説明 タイプ [Required] (必須) [Default] (デフォルト) 制約
distributedImages.$ 設定する分散イメージのリスト。同じワークフローのDistributeImageステップからのdistributedImages出力を参照します。 String はい で始まる JSONPath リファレンス $.stepOutputs.
設定 分散 AMIs にリストとして適用する設定。各項目は 1 つの AWS リージョンを対象としています。 配列 いいえ
設定:リージョン 設定する分散 AMI の AWS リージョン。 String はい の各項目に必要ですconfigurations
configuration:licenseConfigurationArns イメージのライセンス設定 ARN。 配列 いいえ
configuration:launchTemplateConfigurations 分散 AMIs に適用する起動テンプレート設定。 配列 いいえ
configuration:launchTemplateConfigurations:launchTemplateId イメージに適用する起動テンプレート ID。 String launchTemplateConfigurations が指定されている場合、はい
configuration:launchTemplateConfigurations:accountId イメージに適用する起動テンプレートアカウント IDs。 String いいえ
configuration:launchTemplateConfigurations:setDefaultVersion イメージの起動テンプレートのデフォルトバージョン設定。 ブール値 いいえ
設定:s3ExportConfiguration 分散 AMIs の Amazon S3 エクスポート設定。 配列 いいえ
設定:s3ExportConfiguration:roleName イメージの Amazon S3 エクスポート設定ロール名。 String s3ExportConfiguration が指定されている場合、はい
設定:s3ExportConfiguration:diskImageFormat イメージの Amazon S3 エクスポート設定ディスクイメージ形式。 String s3ExportConfiguration が指定されている場合、はい 許可される値 - VMDK|RAW|VHD
設定:s3ExportConfiguration:s3Bucket イメージの Amazon S3 エクスポート設定バケット名。 String s3ExportConfiguration が指定されている場合、はい
設定:s3ExportConfiguration:s3Prefix イメージの Amazon S3 エクスポート設定バケットプレフィックス。 String いいえ
設定:fastLaunchConfigurations イメージの Amazon EC2 Fast Launch 設定。 配列 いいえ
configuration:fastLaunchConfigurations:enabled イメージに対して Amazon EC2 Fast Launch が有効になっているかどうか。 ブール値 fastLaunchConfigurations が指定されている場合、はい
configuration:fastLaunchConfigurations:snapshotConfiguration Amazon EC2 Fast Launch スナップショットを事前プロビジョニングするためのスナップショット設定。 マッピング いいえ
configuration:fastLaunchConfigurations:snapshotConfiguration:targetResourceCount イメージの Amazon EC2 Fast Launch ターゲットリソース数。 整数 いいえ
configuration:fastLaunchConfigurations:maxParallelLaunches イメージの Amazon EC2 Fast Launch 最大並列起動。 整数 いいえ
configuration:fastLaunchConfigurations:launchTemplate Amazon EC2 Fast Launch が事前プロビジョニングされたスナップショットを準備するために使用する起動テンプレート。 マッピング いいえ
configuration:fastLaunchConfigurations:launchTemplate:launchTemplateId イメージの Amazon EC2 Fast Launch 起動テンプレート ID。 String いいえ
configuration:fastLaunchConfigurations:launchTemplate:launchTemplateName イメージの Amazon EC2 Fast Launch 起動テンプレート名。 String いいえ
configuration:fastLaunchConfigurations:launchTemplate:launchTemplateVersion イメージの Amazon EC2 Fast Launch 起動テンプレートのバージョン。 String いいえ
configuration:ssmParameterConfigurations イメージの Systems Manager パラメータ設定。 マッピング いいえ
configuration:ssmParameterConfigurations:amiAccountId イメージの Systems Manager パラメータ AMI アカウント ID。 String いいえ
configuration:ssmParameterConfigurations:parameterName イメージの Systems Manager パラメータ名。 String ssmParameterConfigurations が指定されている場合、はい
configuration:ssmParameterConfigurations:dataType イメージの Systems Manager パラメータデータ型。 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 configurations: - region: us-west-2 licenseConfigurationArns: - arn:aws:license-manager:us-west-2:111122223333:license-configuration:lic-example

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

$.stepOutputs.ApplyImageConfigurationsStep.configuredImages

BootstrapInstanceForContainer

このステップアクションは、コンテナワークフローを実行するための最小要件でインスタンスをブートストラップするサービススクリプトを実行します。Image Builder は、Systems Manager API の sendCommand を使用してこのスクリプトを実行します。詳細については、「AWS Systems Manager Run Command」を参照してください。

注記

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

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

最大タイムアウト: 720 分 (12 時間)

デフォルトは、表示されている最大値まで timeoutSecondsで上書きできます。最大を超える値は検証に失敗します。

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

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

入力名 説明 タイプ [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

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

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

注記

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

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

最大タイムアウト: 720 分 (12 時間)

デフォルトは、表示されている最大値まで timeoutSecondsで上書きできます。最大を超える値は検証に失敗します。

ロールバック: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

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

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

最大タイムアウト: 720 分 (12 時間)

デフォルトは、表示されている最大値まで timeoutSecondsで上書きできます。最大を超える値は検証に失敗します。

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

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

入力名 説明 タイプ [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

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

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

最大タイムアウト: 3 日 (259,200 秒)

デフォルトは、表示されている最大値まで timeoutSecondsで上書きできます。最大を超える値は検証に失敗します。

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

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

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

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

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

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

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

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

$.stepOutputs.CreateImageFromInstance.imageId

CreateImageFromIso

このステップアクションを使用して、ビルドインスタンスの ISO ディスクイメージから Amazon マシンイメージ (AMI) を作成します。ソースがベース AMI ではなく ISO ファイルである場合は、ビルドワークフローで使用します。Image Builder は ISO を AMI に変換し、リソースが必要な状態になるまで待機してから続行します。

注記

このアクションには、ISO ディスクイメージのインポートと同じ要件があります。詳細については、「Image Builder を使用して検証済みの Windows ISO ディスクイメージをインポートする」を参照してください。

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

最大タイムアウト: 720 分 (12 時間)

デフォルトは、表示されている最大値まで timeoutSecondsで上書きできます。最大を超える値は検証に失敗します。

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

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

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

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

出力名 説明 タイプ
amiName ステップが作成した AMI の名前。 String
snapshotId AMI をバックアップするスナップショットの ID。 String
アーキテクチャ AMI のアーキテクチャ (x86_64 または arm64)。 String

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

- name: CreateImageFromIsoStep action: CreateImageFromIso onFailure: Abort inputs: instanceId.$: $.stepOutputs.LaunchStep.instanceId

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

$.stepOutputs.CreateImageFromIsoStep.amiName

DistributeContainerImage

このステップアクションを使用して、ビルドステージが作成したコンテナイメージを、イメージに定義されたターゲットリージョンの Amazon ECR リポジトリに配布します。コンテナ (DOCKER) イメージのディストリビューションワークフローでこのアクションを使用します。これは、 に対応するコンテナイメージとして機能しますDistributeImage

このステップアクションは、ビルドインスタンスで Systems Manager コマンドを実行してコンテナイメージをプッシュします。インスタンスには Docker と AWS CLI がインストールされている必要があります。詳細については、「BootstrapInstanceForContainer」を参照してください。

重要

を含むワークフローには、DistributeImage、、ModifyImageAttributesまたは を含めるDistributeContainerImageことはできませんApplyImageConfigurations。1 つのワークフローは、コンテナイメージまたは AMIs、両方を配布します。

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

最大タイムアウト: 720 分 (12 時間)

デフォルトは、表示されている最大値まで timeoutSecondsで上書きできます。最大を超える値は検証に失敗します。

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

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

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

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

出力名 説明 タイプ
ステータス Systems Manager sendCommand から返されたステータス。 String
succeededRegions ディストリビューションが成功したリージョン。 配列
failedRegions ディストリビューションが失敗したリージョン。 配列

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

- name: DistributeContainer action: DistributeContainerImage onFailure: Abort inputs: instanceId.$: $.stepOutputs.LaunchStep.instanceId

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

$.stepOutputs.DistributeContainer.status

DistributeImage

このステップアクションは、指定したターゲットリージョンとアカウントに AMI を配布します。CreateImage または CreateImagePipelineリクエストのディストリビューション設定、またはデフォルト設定を上書きするワークフローのカスタムディストリビューション設定を使用します。

注記

distributions 入力はオプションです。これを指定すると、Image Builder はワークフロー入力を使用し、アタッチされたディストリビューション設定を無視します。これを省略すると、Image Builder はパイプラインまたはイメージにアタッチされたディストリビューション設定に戻ります。

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

最大タイムアウト: 720 分 (12 時間)

デフォルトは、表示されている最大値まで timeoutSecondsで上書きできます。最大を超える値は検証に失敗します。

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

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

入力名 説明 タイプ [Required] (必須) [Default] (デフォルト) 制約
ディストリビューション リストとしての AMI のディストリビューション設定。各項目は 1 つの AWS リージョンを対象としています。この入力を省略すると、Image Builder はパイプラインまたはイメージにアタッチされたディストリビューション設定を使用します。 配列 いいえ
ディストリビューション:リージョン AMI を配布する AWS リージョン。 String はい 最小長は 1 です。 最大長は 1,024 です。
distributions:name 分散 AMI に適用する名前。 String いいえ
distributions:description 分散 AMI に適用する説明。 String いいえ
distributions:targetAccountIds AMI を配布するアカウント IDs。 配列 いいえ
distributions:amiTags 分散 AMI に適用するタグ。 マッピング いいえ 最大 50 個のタグ。
distributions:kmsKeyId 分散 AMI の暗号化に使用する KMS キー。 String いいえ

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

出力名 説明 タイプ
distributedImages 分散イメージのリスト 配列
distributedImages:region 分散イメージの 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

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

Image Builder は、Systems Manager API の sendCommand を使用してコンポーネントを実行します。詳細については、「AWS Systems Manager Run Command」を参照してください。

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

最大タイムアウト: 1 日 (24 時間)

デフォルトは、表示されている最大値まで timeoutSecondsで上書きできます。最大を超える値は検証に失敗します。

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

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

入力名 説明 タイプ [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

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

詳細については、「 デベロッパーガイド」の「Step Functions でステートマシンについて学ぶ」を参照してください。 AWS Step Functions

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

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

デフォルトは、表示されている最大値まで timeoutSecondsで上書きできます。最大を超える値は検証に失敗します。

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

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

入力名 説明 タイプ [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

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

waitFor 入力は、ステップ完了要件を満たす条件を設定します。healthCheck 入力は、ステップを進める前に が渡す必要がある EC2 インスタンスのヘルス検証のレベルを指定します。

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

最大タイムアウト: 720 分 (12 時間)

デフォルトは、表示されている最大値まで timeoutSecondsで上書きできます。最大を超える値は検証に失敗します。

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

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

入力名 説明 タイプ [Required] (必須) [Default] (デフォルト) 制約
imageIdOverride インスタンスの起動に使用するイメージ String いいえ

ビルドステージ: イメージレシピベースイメージ

テストステージ: ビルドステージから AMI を出力する

有効な AMI ID である必要があります
instanceTypesOverride Image Builder は、正常に起動するインスタンスタイプが見つかるまで、リスト内の各インスタンスタイプを試行します。 文字列のリスト いいえ インフラストラクチャ設定で指定されたインスタンスタイプ 有効なインスタンスタイプである必要があります
waitFor ワークフローステップを完了し、次のステップに進む前に待機する条件 String はい なし Image Builder は、ssmAgent をサポートしています。
healthCheck ワークフローステップを進める前に必要な EC2 ヘルス検証のレベル。最小限の検証でビルドをRUNNING高速化するため、または EC2 ステータスチェックが成功するまで待機STATUS_CHECK_PASSEDするために を指定します。 String いいえ STATUS_CHECK_PASSED 有効な値: RUNNING | STATUS_CHECK_PASSED

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

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

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

- name: LaunchStep action: LaunchInstance onFailure: Abort inputs: healthCheck: "RUNNING" waitFor: ssmAgent

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

$.stepOutputs.LaunchStep.instanceId

ModifyImageAttributes

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

注記

attributes 入力はオプションです。これを指定すると、Image Builder はワークフロー入力を使用し、アタッチされたディストリビューション設定を無視します。これを省略すると、Image Builder はパイプラインまたはイメージにアタッチされたディストリビューション設定に戻ります。

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

最大タイムアウト: 180 分 (3 時間)

デフォルトは、表示されている最大値まで timeoutSecondsで上書きできます。最大を超える値は検証に失敗します。

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

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

入力名 説明 タイプ [Required] (必須) [Default] (デフォルト) 制約
distributedImages.$ 変更する分散イメージのリスト。同じワークフローのDistributeImageステップからのdistributedImages出力を参照します。 String はい で始まる JSONPath リファレンス $.stepOutputs.
属性 リストとして変更するイメージ属性。各項目は 1 つの AWS リージョンを対象としています。 配列 いいえ
属性:リージョン 変更する分散 AMI の AWS リージョン。 String はい の各項目に必要ですattributes
attributes:launchPermission 分散 AMI に適用する起動許可設定。 マッピング いいえ
attributes:launchPermission:userIds AMI の起動アクセス許可に追加または削除するアカウント IDs。 配列 いいえ
attributes:launchPermission:userGroups AMI の起動アクセス許可に追加または削除するユーザーグループ。 配列 いいえ
attributes:launchPermission:organizationArns AMI の起動アクセス許可に追加または削除する AWS Organizations ARNs。 配列 いいえ
attributes:launchPermission:organizationalUnitArns AMI の起動アクセス許可に追加または削除する組織単位 (OU) ARNs。 配列 いいえ

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

出力名 説明 タイプ
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 イメージの AWS リージョン。 String
modifiedImages:status ディストリビューションステータス。 Completed|Failed|Cancelled|TimedOut
modifiedImages:errorMessage エラーメッセージがある場合。 String

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

- name: ModifyImageAttributes action: ModifyImageAttributes onFailure: Abort inputs: distributedImages.$: $.stepOutputs.DistributeImageStep.distributedImages attributes: - region: us-west-2 launchPermission: userIds: - "111122223333"

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

$.stepOutputs.ModifyImageAttributesStep.modifiedImages

RegisterImage

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

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

最大タイムアウト: 720 分 (12 時間)

デフォルトは、表示されている最大値まで timeoutSecondsで上書きできます。最大を超える値は検証に失敗します。

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

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

入力名 説明 タイプ [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 ブロックデバイスマッピングで定義された最初のスナップショットのタグを含めるかどうか。 ブール値 いいえ

true に設定すると、タグは次のように含まれます。

  • を含むblockDeviceMappingリスト内の最初の EBS ボリュームSnapshotIdの からのタグSnapshotIdは、出力 AMI タグとマージされます。

  • 出力 AMI タグは、同じキーを持つスナップショットタグよりも優先されます。

  • AWS 予約済みタグ ( で始まるキーを持つタグaws:) は自動的に除外されます。

  • を持つ複数の EBS ボリュームSnapshotIdが定義されている場合、 を含むリストの最初の EBS ボリュームのタグのみSnapshotIdが含まれます。

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

このステップアクションは、ワークフローのコマンドドキュメントを実行します。Image Builder は、Systems Manager API の sendCommand を使用して実行します。詳細については、「AWS Systems Manager Run Command」を参照してください。

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

最大タイムアウト: 720 分 (12 時間)

デフォルトは、表示されている最大値まで timeoutSecondsで上書きできます。最大を超える値は検証に失敗します。

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

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

入力名 説明 タイプ [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

このステップアクションでは、ビルドインスタンスがスナップショット用にシャットダウンされる前に、Systems Manager API の sendCommand を使用して Windows インスタンス用の AWSEC2-RunSysprep ドキュメントを実行します。これらのアクションはAWS 、イメージを強化およびクリーンアップするためのベストプラクティスに従います

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

最大タイムアウト: 720 分 (12 時間)

デフォルトは、表示されている最大値まで timeoutSecondsで上書きできます。最大を超える値は検証に失敗します。

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

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

入力名 説明 タイプ [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

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

Image Builder は、Systems Manager API の sendCommand を使用してこのスクリプトを実行します。詳細については、「AWS Systems Manager Run Command」を参照してください。

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

最大タイムアウト: 720 分 (12 時間)

デフォルトは、表示されている最大値まで timeoutSecondsで上書きできます。最大を超える値は検証に失敗します。

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

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

入力名 説明 タイプ [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

このステップアクションは、instanceId入力で指定したインスタンスを終了します。デフォルトでは、終了が開始され、待機せずに次のステップに進みます。バックグラウンドプロセスは、終了時に EC2 サービスエラーが発生した場合にクリーンアップを処理します。続行する前に完全な終了を待つには、waitForTermination入力を に設定しますtrue

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

最大タイムアウト: 720 分 (12 時間)

デフォルトは、表示されている最大値まで timeoutSecondsで上書きできます。最大を超える値は検証に失敗します。

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

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

入力名 説明 タイプ [Required] (必須) [Default] (デフォルト) 制約
instanceId 終了するインスタンスの ID。 String はい なし なし
waitForTermination ステップが、続行する前にインスタンスが終了状態になるまで待機するかどうかを指定します。に設定するとtrue、ステップは完全な終了 (10 秒から数分) を待ちます。 ブール値 いいえ false true | false

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

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

- name: TerminateInstance action: TerminateInstance onFailure: Continue inputs: instanceId.$: i-1234567890abcdef0 waitForTermination: false

WaitForAction

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

一時停止と再開の仕組み

WaitForAction ステップが実行されると、Image Builder はステップステータスを に設定WAITINGし、EventBridge イベントを発行します (詳細タイプ EC2 Image Builder Workflow Step Waiting)。を指定するとsnsTopicArn、Amazon SNS 通知も送信されます。を指定するとlambdaFunctionName、その関数が非同期的に呼び出されます。ワークフローは、次のいずれかが発生するまで一時停止されたままになります。

  • SendWorkflowStepActionRESUMEを呼び出しSTOPて続行するか、ワークフローを終了します。

  • ステップはタイムアウト (デフォルトは 3 日、最大 7 日) に達し、ワークフローは失敗します。

reason渡す SendWorkflowStepActionは ステップとともに保存され、後のステップでステップのreason出力として使用できます。

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

最大タイムアウト: 7 日 (604,800 秒)

デフォルトは、表示されている最大値まで timeoutSecondsで上書きできます。最大を超える値は検証に失敗します。

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

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

入力名 説明 タイプ [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

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

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

最大タイムアウト: 180 分 (3 時間)

デフォルトは、表示されている最大値まで timeoutSecondsで上書きできます。最大を超える値は検証に失敗します。

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

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

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

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

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

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

- name: WaitForInstanceAfterReboot action: WaitForSSMAgent onFailure: Abort timeoutSeconds: 900 inputs: instanceId.$: $.stepOutputs.LaunchStep.instanceId

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

$.stepOutputs.WaitForInstanceAfterReboot.status