本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用增強型 AMI 分佈功能
Image Builder 為您提供進階分佈功能,可將分佈與建置程序分開。您可以分發已建置的映像,在測試或分發階段重試失敗的 AMI 映像,而無需重建映像,並使用自訂工作流程定義多階段分發程序。
分發現有映像
DistributeImage 操作會分發映像建置器 (或您) 已建立的映像,而無需重新執行建置和測試階段。Image Builder 只會執行分佈階段,並使用您由 ARN 參考的分佈組態中的目標和設定。
您可以透過以下三種方式之一來識別來源映像:
-
AMI ID – 標準 AMI 識別符,例如
ami-0abcdef1234567890。AMI 必須在您呼叫 操作的區域中存在並可存取。 -
SSM 參數:格式為 的 Systems Manager 參數存放區參考
ssm:,其中 的文字/path/to/parameterssm:是參數名稱或 ARN。參數必須是其值為有效 AMI ID 的String參數。 -
映像建置器映像版本 ARN – 在您呼叫 操作的區域中映像建置器映像的 ARN。影像的輸出資源必須在該區域中包含 AMI。您可以指定以組建編號結尾的組建版本 ARN,例如
image/,或不含組建編號的版本 ARN,例如my-image/1.0.0/1image/。Image Builder 會將版本 ARN 解析為my-image/1.0.0AVAILABLE狀態的最新組建。
注意
來源映像必須是 AMI ID、SSM 參數或映像建置器映像 ARN,而且映像建置器不接受 AWS Marketplace 產品程式碼。分佈組態必須位於您呼叫 的相同區域中DistributeImage。您無法將內嵌分佈設定傳遞至此操作。
先決條件
與管道建置不同, 會在呼叫時DistributeImage擔任執行角色。請確定下列項目已就緒:
-
Image Builder 可以擔任以執行分佈的 Image Builder 執行角色。建議您建立已連接 EC2ImageBuilderExecutionPolicy AWS 受管政策的自訂角色。該政策
ec2:EnableFastLaunch僅允許對標記為 的資源使用ec2:ModifyImageAttributeec2:ModifySnapshotAttribute、 和CreatedBy: EC2 Image Builder,並ssm:PutParameter僅允許對 下的參數使用/imagebuilder/。如果您的分佈作用於其他資源,請將必要的許可新增至角色。若要設定沒有啟動範本的 EC2 Fast Launch,請同時連接 EC2FastLaunchFullAccess政策。若要使用啟動範本設定 EC2 Fast Launch,啟動範本必須具有CreatedBy: EC2 Image Builder標籤。Image Builder 只會將此標籤新增至分佈組態在 中更新的啟動範本launchTemplateConfigurations。對於任何其他啟動範本,請自行新增標籤或連接EC2FastLaunchFullAccess政策。 -
呼叫
imagebuilder:DistributeImage、imagebuilder:GetDistributionConfiguration和iam:PassRole執行角色的許可。Image Builder 也會使用登入資料描述來源 AMI 以進行驗證,因此您需要ec2:DescribeImages每種來源類型。如果來源是 SSM 參數,您也需要ssm:GetParameter該參數。如果來源是映像建置器映像 ARN,您也需要在該映像imagebuilder:GetImage上。如果您在請求中包含標籤,您也需要imagebuilder:TagResource。 -
如果分發組態將 AMI 複製到其他帳戶 (
targetAccountIds),或更新其他帳戶中的啟動範本或 SSM 參數,EC2ImageBuilderDistributionCrossAccountRole則每個帳戶中的 都會連接Ec2ImageBuilderCrossAccountDistributionAccess 政策受管政策。受管政策不包含啟動範本或 SSM 參數。若要更新這些參數,也請新增使用映像建置器設定跨帳戶 AMI 分佈列出launchTemplateConfigurations和 參數存放區參數的政策。
重試失敗的映像
如果映像在測試或分佈階段失敗,請使用 retry-image
先決條件
重試失敗的影像之前,請確認下列事項。重試會計入並行映像建置配額,而且如果您已達到該配額,映像建置器會拒絕重試。
-
映像處於
FAILED或CANCELLED狀態,並在測試或分佈階段失敗或取消。您無法重試成功或仍在進行中的映像,或任何其他階段中失敗或取消的映像。 -
影像是在過去 30 天內建立的。
-
映像是以 AMI 為基礎的映像。您無法重試容器映像。
-
影像尚未重試次數上限。Image Builder 每個映像最多允許 10 次重試。
-
您已識別並解決失敗的根本原因。在 CloudWatch Logs 中檢閱映像的日誌,以取得錯誤詳細資訊。
-
您有權在要重試的映像建置版本
imagebuilder:RetryImage上呼叫 。 -
對於跨帳戶分佈失敗,請確認目的地帳戶中
EC2ImageBuilderDistributionCrossAccountRole的 已連接 Ec2ImageBuilderCrossAccountDistributionAccess 政策受管政策。如需詳細資訊,請參閱使用映像建置器設定跨帳戶 AMI 分佈。
分佈工作流程
分佈工作流程是補充建置和測試工作流程的工作流程類型。分佈工作流程將分佈階段定義為一系列步驟,可讓您了解和控制 Image Builder 如何分佈 AMI。本節說明的步驟適用於 AMI 輸出映像。
在分佈工作流程中,您可以包含執行下列動作的步驟:
-
跨區域和帳戶複製和共用 AMI。
-
修改分散式 AMIs 上的映像屬性,例如啟動許可。
-
套用其他映像組態。
-
暫停以進行手動核准,或使用wait-for-action步驟進行外部回呼。這可讓您建置階段或門控推展 – 例如,分發到測試區域、等待核准,然後繼續生產區域。
每個步驟都會報告自己的狀態:PENDING、RUNNING、 WAITING(僅限wait-for-action步驟)COMPLETED、SKIPPED、、 FAILED或 CANCELLED ,而 Image Builder 會將步驟層級詳細資訊傳送至您的 CloudWatch 日誌群組。執行時間超過其timeoutSeconds值的步驟會報告 FAILED。Image Builder 也會在關鍵點發出 EventBridge 事件 – 例如,當影像變更狀態,以及wait-for-action步驟暫停輸入時。如需事件的完整清單,請參閱 Image Builder 傳送的事件訊息。
若要了解如何建立和自訂工作流程,包括 YAML 文件格式和可用的步驟動作,請參閱 管理映像建置器映像的建置、測試和分佈工作流程。