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

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

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

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

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

Amazon マシンイメージ

ARN

Amazon リソースネーム

ApplyImageConfigurations

このステップアクションは、ライセンス設定、起動テンプレート設定、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

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

注記

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

$.stepOutputs.CreateImageFromInstance.imageId

DistributeImage

このステップアクションは、指定されたリージョンとアカウントに 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

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

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

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

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

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

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

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

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

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

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

出力名 説明 タイプ
executionArn ステートマシン実行の ARN。 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 入力は、ステップ完了要件を満たす条件を設定します。

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

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

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

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

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

テストステージ: ビルドステージから 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

このステップアクションは、起動許可やその他の 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

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

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

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

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

入力名 説明 タイプ [Required] (必須) [Default] (デフォルト) 制約
architecture AMI のアーキテクチャ。 String いいえ 有効な値: i386、x86_64、arm64、x86_64_mac、arm64_mac
blockDeviceMapping AMI のブロックデバイスマッピングエントリ。 配列 いいえ
bootMode AMI のブートモード。 String いいえ 有効な値: legacy-bios、uefi、uefi-preferred
description AMI の説明。 String いいえ
enaSupport ENA による拡張ネットワーキングが有効になっているかどうか。 ブール値 いいえ
imageLocation AMI マニフェストの場所。 String いいえ S3-backed AMIs に必須
imdsSupport IMDSv2 サポートレベル。 String いいえ 有効な値: v2.0
includeSnapshotTags ブロックデバイスマッピングで定義された最初のスナップショットのタグを含めるかどうか。 ブール値 いいえ FALSE

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

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

- 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」を参照してください。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

WaitForAction

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

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

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

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

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

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 分

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

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

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

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

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

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

- name: WaitForInstanceAfterReboot action: WaitForSSMAgent onFailure: Abort timeoutInSeconds: 900 # 15 minutes inputs: instanceId.$: $.stepOutputs.LaunchStep.instanceId

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

$.stepOutputs.WaitForInstanceAfterReboot.Status