View a markdown version of this page

生命週期政策執行的運作方式 - EC2 Image Builder

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

生命週期政策執行的運作方式

Image Builder 會定期執行已啟用的生命週期政策。每次執行都是執行。在執行期間,Image Builder 會根據政策規則評估您的映像資源,並執行指定的生命週期動作。

執行排程

Image Builder 每天執行一次已啟用的生命週期政策。

  • Image Builder 會管理確切的執行時間。您無法設定它。

  • 每個政策一次只執行一個執行。進行中或待定執行會繼續執行,而不是啟動新的執行。

  • 停用的政策不會執行,而停用政策會阻止任何待定的執行處理新資源。

執行狀態

使用主控台中的 RunLog 索引標籤或 list-lifecycle-executions AWS CLI 命令來監控生命週期執行進度。每個執行都會報告下列其中一種狀態:

IN_PROGRESS

Image Builder 正在主動評估資源並執行生命週期動作。

PENDING

處理已暫停。它會在下一次排定的執行期間繼續。

SUCCESS

Image Builder 已成功處理所有適用的資源。

FAILED

一或多個資源動作發生錯誤。使用 list-lifecycle-execution-resources 命令來識別失敗的資源及其原因。

CANCELLING

Image Builder 收到取消請求並完成目前的處理步驟。

CANCELLED

執行已取消。Image Builder 不會復原取消之前處理的資源。

如何評估資源

Image Builder 使用以下步驟評估從最新到最舊 (依建立日期) 的影像資源:

  1. 資源選擇 – 映像建置器會識別符合政策範圍的所有映像資源,由配方篩選條件 (包括版本模式) 或標籤篩選條件定義。

  2. 主動建置檢查 – Image Builder 會略過正在進行建置的映像 (建置、測試或分佈狀態),並在下次執行時對其進行評估。

  3. 規則評估 – Image Builder 會依優先順序評估規則:棄用、停用,然後刪除。每次執行時,每個映像只會套用一個動作。如果映像符合棄用規則,映像建置器會在相同執行期間略過該映像的停用和刪除規則。

    評估因規則類型而異:

    對於棄用和停用規則
    1. AGE 篩選條件檢查 (如果已設定) – 映像建置器會檢查映像是否早於指定的閾值。

    2. 影像層級標籤排除檢查 (exclusionRules.tagMap) – 影像建置器會略過具有排除標籤的影像。

    對於刪除規則
    1. AGE 或 COUNT 篩選條件檢查 – 對於 AGE,映像建置器會檢查映像是否早於閾值。對於 COUNT,Image Builder 會檢查是否已達到保留計數。

    2. 失敗或取消的檢查 – 處於失敗或取消狀態的影像符合刪除資格,且不會耗用保留槽。

    3. 保留檢查 – 如果您已設定retainAtLeast值 (AGE 篩選條件) 或計數值 (COUNT 篩選條件),則最新影像會先填滿保留位置。填補保留插槽的影像會保留,無需進一步評估。

    4. 影像層級標籤排除檢查 (exclusionRules.tagMap) – 對於通過保留檢查的影像 (否則會刪除的影像),影像建置器會檢查排除標籤。如果存在,映像建置器會略過映像。

    重要

    Image Builder 會在標籤排除前評估保留。無論排除標籤為何,保留時段內的映像都會受到保護。標籤排除僅適用於超過保留限制的影像。

    標籤排除的影像不會耗用保留插槽,也不會影響其他影像的保留計數。

  4. AMI 層級排除檢查 – 在確定合格映像之後,Image Builder 會根據 AMIs 層級排除規則 () 評估其輸出 AMIexclusionRules.amis。這些規則包括區域排除、公有 AMI 排除、AMI 標籤排除、共用帳戶排除和上次啟動排除。Image Builder 會報告符合任何排除標準的輸出 AMISKIPPED,如同指出相符條件的原因。

注意

後續執行會在符合條件時,將停用或刪除規則套用至先前已棄用的資源。

保留如何適用於刪除規則

保留篩選條件 (AGE 和 COUNT) 會根據映像建置器映像資源進行評估,而不是直接輸出 AMIs或容器。Image Builder 會為每個配方版本保留最新的映像,並標記較舊的映像以供刪除。

如需詳細的保留計算邏輯,包括以存留期和以計數為基礎的篩選行為,請參閱 如何計算保留

手動管理資源狀態

您可以使用 start-resource-state-update 命令觸發特定映像建置版本的立即生命週期狀態變更,而無需等待下一次排定的執行。

支援的轉換:

  • 棄用 – 將影像標記為棄用。

  • 停用 – 防止映像啟動新的執行個體。

  • 刪除 – 刪除映像及其相關聯的資源 (您必須至少指定一個相關聯的資源類型)。

  • 可用 – 將已棄用或已停用的映像傳回可用狀態。

每個手動狀態變更都會建立個別的生命週期執行。使用 list-lifecycle-executions 命令進行追蹤。

取消執行

使用 cancelcancel-lifecycle-execution命令或 Image Builder 主控台取消進行中或待定執行。

當您取消執行時:

  • 執行會在完成目前的資源動作CANCELLING時轉換為 。

  • 目前動作完成後,執行會轉換為 CANCELLED

  • Image Builder 不會復原已處理的資源。例如,在取消保留已棄用之前已棄用的影像。

  • Image Builder 會略過未處理的資源。

生命週期政策如何處理外部修改的資源

您或其他 AWS 服務可以在 Image Builder 生命週期政策之外修改帳戶中的資源。外部修改的範例:

  • 透過 Amazon EC2 主控台取消註冊 AMI

  • 使用 Amazon EC2 API 的 AMI 棄用

  • 從 Amazon ECR 儲存庫刪除容器映像

  • 使用映像建置器 API 刪除映像建置器映像資源

如果資源已刪除或已經處於所需狀態,Image Builder 會將動作報告為 SUCCESS。透過其他方式清理資源時,政策不會失敗。

注意

SKIPPED 狀態不同。映像建置器SKIPPED只會在資源存在時回報,但排除規則會阻止 動作。

監控執行結果

在兩個層級監控生命週期執行結果:

執行層級

檢視政策的所有執行,包括狀態、開始時間和結束時間。

  • 主控台 – 開啟生命週期政策詳細資訊頁面,然後選擇 RunLog 標籤。如需詳細資訊,請參閱RunLog 標籤

  • AWS CLI – 使用生命週期政策 ARN 執行 list-lifecycle-executions

資源層級

在 執行中檢視每個資源的結果。

每個資源項目包括:

  • 資源 ARN

  • 採取的動作 (或嘗試的動作)

  • 資源狀態 (SUCCESSFAILEDSKIPPED)

  • 結果的原因 (對於略過或失敗的資源特別有用)