本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Image Builder 映像資源的生命週期管理規則運作方式
生命週期規則可讓您的映像保持全新狀態,並降低基礎設施成本,例如輸出 AMIs 的快照儲存體,以及容器的 Amazon ECR 儲存庫儲存體。
生命週期政策支援這些規則類型:
- 棄用規則
-
將映像建置器映像資源狀態設定為
Deprecated。映像建置器管道仍會針對已棄用映像執行。您可以選擇性地為相關聯的 AMIs 設定棄用時間,而不會影響您啟動新執行個體的能力。取代AMIs 不會出現在一般搜尋中。例如,Amazon EC2 describe-images命令會將已取代AMIs 從結果中排除。若要尋找已棄用的 AMI,請直接指定其 AMI ID。
注意
此規則不適用於容器型映像。
- 停用規則
-
將映像建置器映像資源狀態設定為
Disabled。這可防止映像建置器管道針對此映像執行 。您可以選擇性地停用相關聯的 AMI,以防止新的執行個體啟動。停用的 AMI 會變成私有,不再啟動新的執行個體。先前擁有共用存取權的帳戶、組織或組織單位會失去該存取權。
注意
此規則不適用於容器型映像。
- 刪除規則
-
依存留期或計數刪除映像資源。您可以定義符合您需求的閾值。當映像建置器映像資源超過閾值時,便會將其移除。您可以選擇性地取消註冊相關聯的 AMIs,或刪除這些 AMIs快照。您也可以為要保留的資源指定超過閾值的標籤。
對於容器映像,此規則會刪除映像建置器容器映像資源。您也可以從 ECR 儲存庫移除容器映像,以防止新的容器啟動。
規則優先順序和評估順序
當政策有多個規則類型時,Image Builder 會依此順序評估每個資源:
-
棄用規則
-
停用規則
-
刪除規則
重要
每次執行時,每個資源只會套用一個動作。如果資源符合棄用規則,Image Builder 會棄用該規則,並在相同執行期間略過該資源的停用和刪除規則。在後續執行中,如果資源符合其條件,Image Builder 會根據其他規則評估資源。
此優先順序支援漸進式生命週期策略。例如,您可以設定政策在 90 天後棄用映像、在 120 天後停用映像,並在 180 天後刪除映像。每個執行只會套用最高優先順序比對動作。
略過規則評估的影像狀態
Image Builder 會略過特定狀態下的影像,以防止重複的動作:
-
棄用規則 – 映像建置器會略過已棄用、停用、失敗或取消的映像。
-
停用規則 – 映像建置器會略過已停用、失敗或取消的映像。
-
刪除規則 – Image Builder 會根據保留規則和排除項目,評估任何要刪除狀態的影像。
AMI 生命週期排除規則
排除規則可保護特定 AMIs 免於生命週期動作。在 AWS 管理主控台、 API 或 中設定排除規則 AWS CLI。
生命週期政策支援這些排除規則類型:
-
標籤型排除 – 排除具有特定標籤的映像建置器映像資源 (最多 50 個標籤)。如需標籤在不同資源層級運作方式的詳細資訊,請參閱 將標籤標記為資源選擇器與排除規則。
-
公開 AMI 排除 – 排除公開共用AMIs。
-
上次啟動的排除 – 排除在指定期間內啟動執行個體AMIs。
注意
Amazon EC2 會報告 24 小時延遲的上次啟動時間。排除檢查執行時,可能不會反映過去 24 小時內的啟動。
-
區域排除 – 排除特定 AMIs AWS 區域。
-
共用帳戶排除 – 排除與特定 共用AMIs AWS 帳戶。
注意
映像建置器會略過正在進行建置的映像 (待定、建立、建置、匯入、測試、分發或整合狀態)。Image Builder 會在下一次排定的執行中評估這些映像。
AMI 排除規則評估順序
EC2 Image Builder 在決定生命週期動作的資格之後,會評估輸出 AMI 上的 AMI 層級排除規則 (exclusionRules.amis)。這些規則適用於 Amazon EC2 AMI 資源,而非映像建置器映像資源。保留計數會個別執行。排除的 AMI 不會使用保留插槽。Image Builder 會依序檢查條件,並在第一次配對時略過 AMI:
-
區域排除 – 檢查 AMI 是否位於排除區域。
-
公有 AMI 排除 – 檢查 AMI 是否為公有,並啟用
isPublic排除。 -
標籤排除 – 檢查 AMI 是否有符合排除標籤映射的標籤。
-
共用帳戶排除 – 檢查 AMI 是否與排除中列出的帳戶共用。
-
上次啟動的排除 – 檢查 AMI 是否在排除的時段內啟動。
在執行資源詳細資訊中,略過AMIs 會顯示SKIPPED狀態,其中包含指出符合哪個排除條件的原因。
將標籤標記為資源選擇器與排除規則
標籤在生命週期政策中有兩個不同的用途。每個標籤機制在特定資源層級上運作:
-
映像建置器映像 – 追蹤建置的映像建置器資源 (ARN 格式:
arn:aws:imagebuilder:)。透過 Image Builder 管理此資源上的標籤。region:account:image/name/version -
輸出 AMI 或容器映像 – Image Builder 產生的基礎 Amazon EC2 AMI 或 Amazon ECR 容器映像。分別透過 Amazon EC2 或 Amazon ECR 管理這些資源上的標籤。
- 將標籤標記為資源選取器 (政策範圍)
-
標籤型資源選擇只會評估映像建置器映像資源上的標籤,而不是輸出 AMIs或容器上的標籤。Image Builder 使用這些標籤來尋找政策套用的資源。
在
resourceSelection.tagMap欄位中設定標籤型資源選擇。每個項目都是鍵/值對。此政策會選取符合任何指定標籤鍵/值對 (OR 邏輯) 的映像建置器映像。映像建置器不會在沒有相符標籤的情況下評估映像。 - 將標籤標記為排除規則 (規則層級例外狀況)
-
排除標籤會以相反方向運作。在 Image Builder 根據政策範圍選取資源之後,它會先針對排除規則檢查每個資源,再採取任何動作。將排除標籤設定為兩個層級,每個層級操作於不同的資源類型:
exclusionRules.tagMap-
僅評估映像建置器映像資源上的標籤。不會檢查基礎 AMIs或容器上的標籤。如果映像建置器映像標籤符合項目 (精確索引鍵和值相符),映像建置器會略過映像和所有相關輸出資源。
exclusionRules.amis.tagMap-
在關聯的資源處理期間,評估輸出 AMI (Amazon EC2 層級資源) 上的標籤。使用此選項可根據 Amazon EC2 標籤 (例如,透過分佈設定或直接透過 Amazon EC2 套用的標籤) 排除特定輸出 AMIs。
重要
資源選擇和exclusionRules.tagMap不評估輸出 AMIs(Amazon EC2 標籤) 或容器 (Amazon ECR 標籤) 上的標籤。若要根據 Amazon EC2 標籤排除輸出 AMIs,請使用 exclusionRules.amis.tagMap。
範例標籤選擇器和排除一起運作
具有這些設定的政策:
-
資源選取標籤:
Environment: Production(在映像建置器映像資源上評估) -
映像層級排除標籤 (
exclusionRules.tagMap):Retain: True(在映像建置器映像資源上評估) -
AMI 層級排除標籤 (
exclusionRules.amis.tagMap):SharedWith: Partner(在輸出 AMIs上評估)
Image Builder 會執行這些步驟:
-
資源選擇 – Image Builder 會尋找標記為 的所有 Image Builder 影像資源
Environment: Production。 -
映像層級排除 – 映像建置器會檢查標籤 的每個所選映像建置器映像
Retain: True。Image Builder 會略過具有此標籤的影像,包括其輸出資源。 -
AMI 層級排除 – Image Builder 會檢查標籤 剩餘映像的輸出 AMIs (Amazon EC2 資源)
SharedWith: Partner。會略過具有此標籤AMIs。
如何計算保留
當您設定刪除規則的保留設定時,AGE 和 COUNT 篩選條件會根據映像建置器映像資源進行評估,而不是直接針對輸出 AMIs或容器。
重要
AGE 篩選條件使用映像建置器映像資源建立日期 (在建置完成後設定),而不是輸出 AMI 或容器建立日期。COUNT 篩選條件會計算每個配方版本的映像建置器映像資源,而不是輸出 AMIs或容器。
保留計算取決於您如何在政策範圍內指定配方版本:
- 特定版本 (例如
1.0.0) -
保留計數適用於使用該確切配方版本建置的映像建置器映像。映像建置器會先保留最新的映像 (依建立日期)。
- 萬用字元版本模式 (例如
1.x.x) -
保留計數會依相符的配方版本獨立套用。例如,
1.x.x保留計數為 5 的 會保留 5 個最新的映像1.0.0,保留 5 個最新的映像1.1.0,以此類推。 - 標籤型資源選擇
-
透過標籤型資源選擇 (請參閱 將標籤標記為資源選擇器與排除規則),也會根據配方版本計算保留。Image Builder 會排序每個版本中最新的影像,並個別套用每個版本群組的保留計數。
以存留期為基礎的刪除篩選條件與以計數為基礎的刪除篩選條件
刪除規則使用兩種篩選條件類型之一來判斷刪除資格:
AGE篩選條件-
保留比指定存留期閾值更新的映像建置器映像 (從映像建置器映像建立日期起,以天、週、月或年為單位)。您可以設定
retainAtLeast來保留每個配方版本的最新映像數量下限,無論使用期限為何。 COUNT篩選條件-
保留每個配方版本的最新 N 個映像建置器映像。超過指定計數的所有影像都符合刪除資格。
其他保留行為適用:
-
失敗或取消的映像建置器映像不會計入保留限制,且一律符合刪除資格。
-
映像建置器會先處理映像,並在評估刪除資格之前套用保留計數。
生命週期動作如何影響相關資源
映像建置器映像上的生命週期動作會影響相關聯的輸出 AMIs或容器,視規則類型和組態而定:
- 棄用
-
將映像建置器映像資源狀態設定為
Deprecated。您也可以棄用相關聯的輸出 AMIs。已取代AMIs 不會出現在一般搜尋中,但仍可供 AMI ID 使用。Image Builder 會將DeprecatedBy: EC2 Image Builder標籤新增至每個已取代的 AMI。僅適用於 AMI 型映像,不適用於容器。
- 停用
-
將映像建置器映像資源狀態設定為
Disabled。您也可以停用相關聯的輸出 AMIs。停用AMIs 會變成私有,不再啟動新的執行個體。僅適用於 AMI 型映像,不適用於容器。
- 刪除
-
刪除映像建置器映像資源。您也可以移除:
-
分發給其他 AWS 區域 和 帳戶的輸出 AMIs
-
與這些 AMIs相關聯的快照
-
分佈至 Amazon ECR 儲存庫的容器
適用於 AMI 型和容器型映像。
-
注意
Image Builder 在映像層級進行生命週期動作決策。只有在您將規則設定為包含它們時,關聯的輸出資源 (AMIs、快照、容器) 才會變更。
允許的資源狀態轉換
生命週期政策和這些狀態之間的 StartResourceStateUpdate API 轉換映像資源:
- 可用 → 已棄用
-
將可用映像標記為已棄用。影像仍可供 AMI ID 使用,但不會出現在一般搜尋中。Image Builder 新增
DeprecatedBy: EC2 Image Builder標籤以供追蹤。 - 可用或已棄用 → 已停用
-
將 AMI 設為私有,並防止新的執行個體啟動。如果 AMI 先前已棄用,Image Builder 會移除已棄用標籤,因為映像已移至更嚴格的狀態。
- 任何非建置狀態 → 已刪除
-
取消註冊 AMI 或從 ECR 刪除容器映像。您可以包含關聯的快照或基礎容器以進行刪除。
- 已棄用或已停用 → 可用
-
StartResourceStateUpdateAPI 會將已棄用或已停用的映像傳回至可用狀態。這會反轉棄用、重新啟用 AMI,並移除棄用日期和DeprecatedBy標籤。此轉換只能透過手動 API 運作,而非自動化政策執行。
注意
目前正在建置的影像 (待定、建立、建置、匯入、測試、分發或整合狀態) 不會變更狀態。具有作用中建置之映像上的手動狀態更新會失敗並顯示錯誤。
檢視生命週期政策的規則詳細資訊
在 主控台中,生命週期政策詳細資訊頁面具有規則索引標籤顯示政策規則詳細資訊的 。
在 中 AWS CLI,執行 get-lifecycle-policy