本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
工作流程文件支援的步驟動作
本節包含 Image Builder 支援的步驟動作詳細資訊。
本節中使用的術語
- AMI
-
Amazon Machine Image
- ARN
-
Amazon Resource Name
支援的動作
BootstrapInstanceForContainer
此步驟動作會執行服務指令碼,以使用執行容器工作流程的最低需求來引導執行個體。Image Builder 使用 Systems Manager API sendCommand中的 來執行此指令碼。如需詳細資訊,請參閱AWS Systems Manager 執行命令。
注意
引導指令碼會安裝 AWS CLI 和 Docker 套件,這些套件是 Image Builder 成功建置 Docker 容器的先決條件。如果您未包含此步驟動作,映像建置可能會失敗。
預設逾時:60 分鐘
回復:此步驟動作沒有回復。
輸入:下表包含此步驟動作支援的輸入。
| 輸入名稱 | Description (描述) | Type | 必要 | 預設 | 限制 |
|---|---|---|---|---|---|
| instanceId | 要引導的執行個體 ID。 | 字串 | 是 | 這必須是啟動此工作流程執行個體之工作流程步驟的輸出執行個體 ID。 |
輸出:下表包含此步驟動作的輸出。
| 輸出名稱 | Description (描述) | Type |
|---|---|---|
| runCommandId | 在執行個體上執行sendCommand引導指令碼的 Systems Manager ID。 | 字串 |
| status | 從 Systems Manager 傳回的狀態sendCommand。 | 字串 |
| output | 從 Systems Manager 傳回的輸出sendCommand。 | 字串 |
範例
在工作流程文件中指定步驟動作。
- name:ContainerBootstrapStepaction: BootstrapInstanceForContainer onFailure: Abort inputs: instanceId.$: $.stepOutputs.LaunchStep.instanceId
使用工作流程文件中步驟動作值的輸出。
$.stepOutputs.ContainerBootstrapStep.status
CollectImageMetadata
此步驟動作僅適用於建置工作流程。
EC2 Image Builder 會在啟動的 EC2 執行個體上執行 AWS Systems Manager (Systems Manager) Agent,以建置和測試您的映像。Image Builder 會收集有關 Systems Manager 庫存建置階段期間所用執行個體的其他資訊。此資訊包括作業系統 (OS) 名稱和版本,以及您作業系統報告的套件清單及其個別版本。
注意
此步驟動作僅適用於建立 AMIs的影像。
預設逾時:30 分鐘
回復:Image Builder 會回復此步驟期間建立的任何 Systems Manager 資源。
輸入:下表包含此步驟動作支援的輸入。
| 輸入名稱 | Description (描述) | Type | 必要 | 預設 | 限制 |
|---|---|---|---|---|---|
| instanceId | 要套用中繼資料設定的建置執行個體。 | 字串 | 是 | 這必須是啟動此工作流程建置執行個體之工作流程步驟的輸出執行個體 ID。 |
輸出:下表包含此步驟動作的輸出。
| 輸出名稱 | Description (描述) | Type |
|---|---|---|
| osVersion | 從建置執行個體收集的作業系統名稱和版本。 | 字串 |
| associationId | 用於庫存收集的 Systems Manager 關聯 ID。 | 字串 |
範例
在工作流程文件中指定步驟動作。
- name:CollectMetadataStepaction: CollectImageMetadata onFailure: Abort inputs: instanceId: $.stepOutputs.LaunchStep.instanceId
使用工作流程文件中步驟動作的輸出。
$.stepOutputs.CollectMetadataStep.osVersion
CollectImageScanFindings
如果您的帳戶已啟用 Amazon Inspector,且您的管道已啟用映像掃描,此步驟動作會收集 Amazon Inspector 為您的測試執行個體回報的映像掃描問題清單。此步驟動作不適用於建置工作流程。
預設逾時:120 分鐘
回復:此步驟動作沒有回復。
輸入:下表包含此步驟動作支援的輸入。
| 輸入名稱 | Description (描述) | Type | 必要 | 預設 | 限制 |
|---|---|---|---|---|---|
| instanceId | 執行掃描之執行個體的 ID。 | 字串 | 是 | 這必須是啟動此工作流程執行個體之工作流程步驟的輸出執行個體 ID。 |
輸出:下表包含此步驟動作的輸出。
| 輸出名稱 | Description (描述) | Type |
|---|---|---|
| runCommandId | sendCommand 執行指令碼以收集問題清單的 Systems Manager ID。 | 字串 |
| status | 從 Systems Manager 傳回的狀態sendCommand。 | 字串 |
| output | 從 Systems Manager 傳回的輸出sendCommand。 | 字串 |
範例
在工作流程文件中指定步驟動作。
- name:CollectFindingsStepaction: CollectImageScanFindings onFailure: Abort inputs: instanceId.$: $.stepOutputs.LaunchStep.instanceId
使用工作流程文件中步驟動作值的輸出。
$.stepOutputs.CollectFindingsStep.status
CreateImage
此步驟動作會使用 Amazon EC2 CreateImage API 從執行中的執行個體建立映像。在建立過程中,步驟動作會視需要等待,以確認資源已達到正確狀態,然後再繼續。
預設逾時:720 分鐘
回復:此步驟動作沒有回復。
輸入:下表包含此步驟動作支援的輸入。
| 輸入名稱 | Description (描述) | Type | 必要 | 預設 | 限制 |
|---|---|---|---|---|---|
| instanceId | 要從中建立新映像的執行個體。 | 字串 | 是 | 此步驟開始時,所提供執行個體 ID 的執行個體必須處於 running 狀態。 |
輸出:下表包含此步驟動作的輸出。
| 輸出名稱 | Description (描述) | Type |
|---|---|---|
| imageId | 建立之映像的 AMI ID。 | 字串 |
範例
在工作流程文件中指定步驟動作。
- name:CreateImageFromInstanceaction: CreateImage onFailure: Abort inputs: instanceId.$: "i-1234567890abcdef0"
使用工作流程文件中步驟動作值的輸出。
$.stepOutputs.CreateImageFromInstance.imageId
ExecuteComponents
此步驟動作會針對正在建置的目前映像執行配方中指定的元件。建置工作流程會在建置執行個體上執行建置元件。測試工作流程只會在測試執行個體上執行測試元件。
Image Builder 使用 Systems Manager API sendCommand中的 來執行元件。如需詳細資訊,請參閱AWS Systems Manager 執行命令。
預設逾時:720 分鐘
回復:此步驟動作沒有回復。
輸入:下表包含此步驟動作支援的輸入。
| 輸入名稱 | Description (描述) | Type | 必要 | 預設 | 限制 |
|---|---|---|---|---|---|
| instanceId | 元件應執行的執行個體 ID。 | 字串 | 是 | 這必須是啟動此工作流程執行個體之工作流程步驟的輸出執行個體 ID。 |
輸出:下表包含此步驟動作的輸出。
| 輸出名稱 | Description (描述) | Type |
|---|---|---|
| runCommandId | 在執行個體上執行sendCommand元件的 Systems Manager ID。 | 字串 |
| status | 從 Systems Manager 傳回的狀態sendCommand。 | 字串 |
| output | 從 Systems Manager 傳回的輸出sendCommand。 | 字串 |
範例
在工作流程文件中指定步驟動作。
- name:ExecComponentsStepaction: ExecuteComponents onFailure: Abort inputs: instanceId: $.stepOutputs.LaunchStep.instanceId
使用工作流程文件中步驟動作的輸出。
$.stepOutputs.ExecComponentsStep.status
LaunchInstance
此步驟動作會在 中啟動執行個體, AWS 帳戶 並等到 Systems Manager 代理程式在執行個體上執行,再繼續進行下一個步驟。啟動動作會使用配方中的設定,以及與映像相關聯的基礎設施組態資源。例如,要啟動的執行個體類型來自基礎設施組態。輸出是其啟動之執行個體的執行個體 ID。
waitFor 輸入會設定滿足步驟完成要求的條件。
預設逾時:60 分鐘
回復:對於建置執行個體,回復會執行您在基礎設施組態資源中設定的動作。根據預設,如果映像建立失敗,則會終止建置執行個體。不過,基礎設施組態中有一項設定,可保留建置執行個體以進行故障診斷。
輸入:下表包含此步驟動作支援的輸入。
| 輸入名稱 | Description (描述) | Type | 必要 | 預設 | 限制 |
|---|---|---|---|---|---|
| imageIdOverride | 用來啟動執行個體的映像 | 字串 | 否 |
建置階段:映像配方基礎映像 測試階段:從建置階段輸出 AMI |
必須是有效的 AMI ID |
| instanceTypesOverride | Image Builder 會嘗試清單中的每個執行個體類型,直到找到成功啟動的執行個體 | 字串的清單 | 否 | 基礎設施組態中指定的執行個體類型 | 必須是有效的執行個體類型 |
| waitFor | 在完成工作流程步驟並繼續進行下一個步驟之前等待的條件 | 字串 | 是 | Image Builder 支援 ssmAgent。 |
輸出:下表包含此步驟動作的輸出。
| 輸出名稱 | Description (描述) | Type |
|---|---|---|
| instanceId | 啟動之執行個體的執行個體 ID。 | 字串 |
範例
在工作流程文件中指定步驟動作。
- name:LaunchStepaction: LaunchInstance onFailure: Abort inputs: waitFor:ssmAgent
使用工作流程文件中步驟動作的輸出。
$.stepOutputs.LaunchStep.instanceId
RunCommand
此步驟動作會為您的工作流程執行命令文件。Image Builder 會使用 Systems Manager API sendCommand中的 為您執行。如需詳細資訊,請參閱AWS Systems Manager 執行命令。
預設逾時:12 小時
回復:此步驟動作沒有回復。
輸入:下表包含此步驟動作支援的輸入。
| 輸入名稱 | Description (描述) | Type | 必要 | 預設 | 限制 |
|---|---|---|---|---|---|
| instanceId | 執行命令文件的執行個體 ID。 | 字串 | 是 | 這必須是啟動此工作流程執行個體之工作流程步驟的輸出執行個體 ID。 | |
| documentName | 要執行的 Systems Manager 命令文件名稱。 | 字串 | 是 | ||
| parameters | 命令文件所需任何參數的索引鍵值對清單。 | 字典 <string, list<string>> | 有條件 | ||
| documentVersion | 要執行的命令文件版本。 | 字串 | 否 | $DEFAULT |
輸出:下表包含此步驟動作的輸出。
| 輸出名稱 | Description (描述) | Type |
|---|---|---|
| runCommandId | 在執行個體上執行sendCommand命令文件的 Systems Manager ID。 | 字串 |
| status | 從 Systems Manager 傳回的狀態sendCommand。 | 字串 |
| output | 從 Systems Manager 傳回的輸出sendCommand。 | 字串清單 |
範例
在工作流程文件中指定步驟動作。
- name:RunCommandDocaction: RunCommand onFailure: Abort inputs: documentName:SampleDocumentparameters: osPlatform: - "linux" instanceId.$: $.stepOutputs.LaunchStep.instanceId
使用工作流程文件中步驟動作值的輸出。
$.stepOutputs.RunCommandDoc.status
RunSysPrep
此步驟動作會使用 Systems Manager API sendCommand中的 ,在建置執行個體關閉快照之前執行 Windows 執行個體AWSEC2-RunSysprep的文件。這些動作遵循AWS 強化和清理映像的最佳實務
預設逾時:60 分鐘
回復:此步驟動作沒有回復。
輸入:下表包含此步驟動作支援的輸入。
| 輸入名稱 | Description (描述) | Type | 必要 | 預設 | 限制 |
|---|---|---|---|---|---|
| instanceId | 要執行AWSEC2-RunSysprep文件的執行個體 ID。 |
字串 | 是 | 這必須是啟動此工作流程執行個體之工作流程步驟的輸出執行個體 ID。 |
輸出:下表包含此步驟動作的輸出。
| 輸出名稱 | Description (描述) | Type |
|---|---|---|
| runCommandId | 在執行個體上執行sendCommandAWSEC2-RunSysprep文件的 Systems Manager ID。 |
字串 |
| status | 從 Systems Manager 傳回的狀態sendCommand。 | 字串 |
| output | 從 Systems Manager 傳回的輸出sendCommand。 | 字串 |
範例
在工作流程文件中指定步驟動作。
- name:RunSysprepaction: RunSysPrep onFailure: Abort inputs: instanceId.$: $.stepOutputs.LaunchStep.instanceId
使用工作流程文件中步驟動作值的輸出。
$.stepOutputs.RunSysprep.status
SanitizeInstance
此步驟動作會在建置執行個體關閉快照之前,為 Linux 執行個體執行建議的淨化指令碼。淨化指令碼有助於確保最終映像遵循安全最佳實務,並移除不應傳遞至快照的建置成品或設定。如需指令碼的詳細資訊,請參閱 必要的建置後清除。此步驟動作不適用於容器映像。
Image Builder 使用 Systems Manager API sendCommand中的 來執行此指令碼。如需詳細資訊,請參閱AWS Systems Manager 執行命令。
預設逾時:60 分鐘
回復:此步驟動作沒有回復。
輸入:下表包含此步驟動作支援的輸入。
| 輸入名稱 | Description (描述) | Type | 必要 | 預設 | 限制 |
|---|---|---|---|---|---|
| instanceId | 要淨化的執行個體 ID。 | 字串 | 是 | 這必須是啟動此工作流程執行個體之工作流程步驟的輸出執行個體 ID。 |
輸出:下表包含此步驟動作的輸出。
| 輸出名稱 | Description (描述) | Type |
|---|---|---|
| runCommandId | 在執行個體上執行sendCommand淨化指令碼的 Systems Manager ID。 | 字串 |
| status | 從 Systems Manager 傳回的狀態sendCommand。 | 字串 |
| output | 從 Systems Manager 傳回的輸出sendCommand。 | 字串 |
範例
在工作流程文件中指定步驟動作。
- name:SanitizeStepaction: SanitizeInstance onFailure: Abort inputs: instanceId: $.stepOutputs.LaunchStep.instanceId
使用工作流程文件中步驟動作值的輸出。
$.stepOutputs.SanitizeStep.status
TerminateInstance
此步驟動作會使用做為輸入傳入的執行個體 ID 來終止執行個體。
預設逾時:30 分鐘
回復:此步驟動作沒有回復。
輸入:下表包含此步驟動作支援的輸入。
| 輸入名稱 | Description (描述) | Type | 必要 | 預設 | 限制 |
|---|---|---|---|---|---|
| instanceId | 要終止的執行個體 ID。 | 字串 | 是 |
輸出:此步驟動作沒有輸出。
範例
在工作流程文件中指定步驟動作。
- name:TerminateInstanceaction: TerminateInstance onFailure: Continue inputs: instanceId.$:i-1234567890abcdef0
WaitForAction
此步驟動作會暫停執行中的工作流程,並等待從映像建置器 SendWorkflowStepAction API 動作接收外部動作。此步驟會將 EventBridge 事件發佈至具有詳細資訊類型 的預設 EventBridge 事件匯流排EC2 Image Builder Workflow Step Waiting。如果您提供 SNS 主題 ARN, 步驟也可以傳送 SNS 通知。
預設逾時:3 天
回復:此步驟動作沒有回復。
輸入:下表包含此步驟動作支援的輸入。
| 輸入名稱 | Description (描述) | Type | 必要 | 預設 | 限制 |
|---|---|---|---|---|---|
| snsTopicArn | 選用的 SNS 主題 ARN,可在工作流程步驟擱置時傳送通知給 。 | 字串 | 否 |
輸出:下表包含此步驟動作的輸出。
| 輸出名稱 | Description (描述) | Type |
|---|---|---|
| 動作 | SendWorkflowStepAction API 動作傳回的動作。 | 字串 (RESUME 或 STOP) |
| reason | 傳回動作的原因。 | 字串 |
範例
在工作流程文件中指定步驟動作。
- name:SendEventAndWaitaction: WaitForAction onFailure: Abort inputs: snsTopicArn: arn:aws:sns:us-west-2:111122223333:ExampleTopic
使用工作流程文件中步驟動作值的輸出。
$.stepOutputs.SendEventAndWait.reason