本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在映像建置器中管理配方
EC2 Image Builder 配方是建立自訂機器映像的藍圖。配方會指定三個關鍵元素:
-
基礎映像 – 映像的起點 (AMI、容器映像或匯入的 VM)。
-
元件 – 自訂映像的建置和測試步驟。元件是選用的。此設計支援測試和僅限分佈的工作流程。
-
組態 – 儲存磁碟區、執行個體設定、工作目錄和其他建置時間參數。
Image Builder 支援兩種類型的配方:
-
映像配方會產生可用於啟動 Amazon EC2 執行個體的 Amazon Machine Image (AMIs)。
-
容器配方會產生存放在 Amazon ECR 儲存庫中的Docker容器映像。
配方不可變。建立配方後,您無法修改或取代配方。若要更新元件或任何其他組態,您必須建立新的配方或配方版本。Image Builder 會保留所有先前的版本。這可讓您將影像譜系追蹤回產生每個輸出的確切配方。您可以隨時將標籤套用至現有的配方。如需在 中使用映像建置器命令標記資源的詳細資訊 AWS CLI,請參閱本指南的 標籤資源一節。
提示
您可以在配方中使用 Amazon 受管元件,也可以開發自己的自訂元件。如需詳細資訊,請參閱為您的映像建置器映像開發自訂元件。對於建立輸出 AMIs的映像配方,您也可以使用 AWS Marketplace 映像產品和元件。如需與 AWS Marketplace 產品整合的詳細資訊,請參閱 AWS Marketplace Image Builder 中的 整合。
使用本節中的主題來管理您的 EC2 Image Builder 配方,包括列出現有配方、檢視其詳細資訊,以及建立新的配方版本。
與容器配方相比的影像配方
下表比較映像配方和容器配方的功能。
| 功能 | 映像配方 | 容器配方 |
|---|---|---|
| Output | AMI | Docker Amazon ECR 中的容器映像 |
| 基礎映像來源 | AMI ID、映像建置器映像 ARN、SSM 參數、 AWS Marketplace 產品 | Docker Hub 映像、Amazon ECR 映像、Amazon 受管映像、映像建置器映像 ARN |
| Dockerfile | 不適用 | 必要 (範本與內容變數) |
| 目標儲存庫 | 不適用 | Amazon ECR (必要) |
| 儲存組態 | 輸出 AMI 的區塊型設備映射 | 組建執行個體的區塊型設備映射 |
| 使用者資料 | 支援 (覆寫預設 cloud-init) | 配方層級不支援 |
| Systems Manager 代理程式控制 | 可設定 (建置後解除安裝) | 無法設定 |
| AWS Marketplace 元件 | 支援 | 不支援 |
| 平台覆寫 | 不適用 (從 AMI 偵測到) | 適用於 Amazon ECR 和Docker Hub映像 |
配方版本控制
每個配方都使用語意版本控制,格式為 <major>.<minor>.<patch>。每個版本節點接受從 0 到 1,073,741,823 (2^30 - 1) 的值。
您可以在一個位置使用萬用字元 (x) 來啟用自動版本增量。當您使用萬用字元版本建立配方時,Image Builder 會將 取代x為該位置的下一個可用號碼。
| 模式 | Behavior (行為) | 範例序列 |
|---|---|---|
1.0.x |
遞增修補程式編號 | 1.0.1、1.0.2、1.0.3、... |
1.x.0 |
遞增次要數字 | 1.1.0、1.2.0、1.3.0、... |
x.0.0 |
遞增主要數字 | 1.0.0、2.0.0、3.0.0、... |
下列規則適用於萬用字元版本:
-
每個版本字串只允許一個
x萬用字元。 -
萬用字元可以出現在任何單一位置 (主要、次要或修補程式)。
-
其餘位置的數值必須是明確的整數。
提示
在 CI/CD 自動化中使用萬用字元版本,這樣您就不必手動追蹤和遞增配方版本。每次使用相同的萬用字元建立配方時,Image Builder 都會解析下一個可用的版本。例如,一律使用 的配方會1.0.x解析為 1.0.1、然後 1.0.2等。若要進一步了解 Image Builder 資源的語意版本控制,請參閱 Image Builder 中的語意版本控制。
配方限制條件和限制
建立配方之前,請檢閱下列限制條件。
| 限制條件 | 限制 | 備註 |
|---|---|---|
| 每個配方的元件 | 20 (預設) | 包括建置和測試元件。您可以透過 請求增加 AWS 支援。 |
| 配方大小上限 | 25 KB | 所有元件組態的累積大小,包括參數值。 |
| 每個輸出映像的產品代碼 | 9 | 從基礎映像和 AWS Marketplace 元件合併。 |
| 元件唯一性 | 每個配方一個 | 相同的元件 (無論版本為何) 只能出現一次。 |
| 版本節點上限 | 1,073,741,823 | 每個節點 (主要、次要或修補程式)。 |
| 配方名稱 | 無法變更 | 名稱會在建立後修正。為不同的名稱建立新的配方。 |
元件也必須符合下列相容性要求:
-
元件必須符合配方的平台 (Linux、Windows 或 macOS)。
-
當作業系統版本中繼資料可用時,元件必須支援父系映像的作業系統版本。
-
具有
DEPRECATED或DISABLED狀態的元件無法新增至新配方。 -
CIS 強化元件需要 CIS 發佈的父映像。
清除資源
為了避免意外費用,請務必清除您從本指南中的範例建立的資源和管道。如需在映像建置器中刪除資源的詳細資訊,請參閱 刪除過期或未使用的映像建置器資源。