在 Azure Container Registry (預覽) 使用虛刪除原則復原刪除的成品

Azure Container Registry (ACR) 可讓您啟用虛刪除原則,以復原設定保留期間內任何意外刪除的成品。

Diagram of soft delete artifacts lifecycle.

虛刪除原則的概念

您可隨時啟用/停用虛刪除原則。 當您在 ACR 中啟用虛刪除原則後,它會以已設定的保留期間,將已刪除的成品管理為虛刪除的成品。 因此,您能夠列出、篩選及還原虛刪除的成品。

保留期限

虛刪除成品的預設保留期間為 7 天,但可以將保留期間值設定為 1 到 90 天。 您可以設定、更新及變更保留原則值。 虛刪除的成品會在保留期間完成之後到期。

自動清除

自動清除每隔 24 小時會執行一次,且一律先會考慮目前保留天數的值,再永久刪除虛刪除的成品。 例如,在虛刪除成品五天之後,如果您將保留天數的值從 7 變更為 14 天,則成品在初始虛刪除 14 天後才會到期。

可用性和價格資訊

這項功能適用於所有服務層級 (也稱為 SKU)。 如需有關登錄服務層級的資訊,請參閱 Azure Container Registry 服務層級

注意

虛刪除的成品會根據儲存體的作用中 SKU 定價計費。

預覽限制

重要

虛刪除原則目前為預覽狀態。 請參閱 Microsoft Azure 預覽版增補使用規定,以了解適用於 Azure 功能 (搶鮮版 (Beta)、預覽版,或尚未正式發行的版本) 的法律條款。

  • ACR 目前不支援手動清除虛刪除的成品。
  • 虛刪除原則不支援異地複寫的登錄。
  • ACR 不允許同時啟用保留原則和虛刪除原則。 請參閱未標記資訊清單的保留原則。

必要條件

  • 使用者需要下列權限 (登錄層級) 才能執行虛刪除作業:
權限 描述
Microsoft.ContainerRegistry/registries/deleted/read 列出虛刪除的成品
Microsoft.ContainerRegistry/registries/deleted/restore/action 還原虛刪除的成品
  • 您可以使用 Azure Cloud Shell 或安裝在本機的 Azure CLI 來執行此文章中的命令範例。 如果您想要在本機使用,需使用 2.0.74 版或更新版本。 針對版本執行 az --version。 如果您需要安裝或升級,請參閱安裝 Azure CLI

  • 登入 Azure 入口網站

啟用登錄的虛刪除原則 - CLI

  1. 更新指定 MyRegistry ACR 的虛刪除原則,並將保留期間設定為 1 到 90 天。

    az acr config soft-delete update -r MyRegistry --days 7 --status <enabled/disabled>
    
  2. 顯示指定 MyRegistry ACR 的已設定虛刪除原則。

    az acr config soft-delete show -r MyRegistry 
    

列出虛刪除成品 - CLI

az acr repository list-deleted 命令會啟用虛刪除存放庫的擷取和清單。 如需詳細資訊,請使用 --help

  1. 列出指定 MyRegistry ACR 中的虛刪除存放庫。

    az acr repository list-deleted -n MyRegistry
    

az acr manifest list-deleted 命令會啟用虛刪除資訊清單的擷取和清單。

  1. 列出指定 MyRegistry ACR 中 hello-world 存放庫的虛刪除資訊清單。

    az acr manifest list-deleted -r MyRegistry -n hello-world
    

az acr manifest list-deleted-tags 命令會啟用虛刪除標籤的擷取和清單。

  1. 列出指定 MyRegistry ACR 中 hello-world 存放庫的虛刪除標籤。

    az acr manifest list-deleted-tags -r MyRegistry -n hello-world
    
  2. 篩選 hello-world 存放庫的虛刪除標籤,以符合指定 MyRegistry ACR 中的標籤 latest

    az acr manifest list-deleted-tags -r MyRegistry -n hello-world:latest
    

還原虛刪除成品 - CLI

az acr manifest restore 命令會依標籤和摘要還原單一映像。

  1. 依指定 MyRegistry ACR 中的標籤 latest 和摘要 sha256:abc123 還原 hello-world 存放庫的映像。

    az acr manifest restore -r MyRegistry -n hello-world:latest -d sha256:abc123
    
  2. 在指定的 MyRegistry ACR 中,依標籤 latest 還原 hello-world 存放庫最近刪除的資訊清單。

    az acr manifest restore -r MyRegistry -n hello-world:latest
    

強制還原會以存放庫中的相同名稱覆寫現有標籤。 如果在強制還原期間啟用虛刪除原則。 會虛刪除覆寫的標籤。 您可以使用特定引數 --force, -f 進行強制還原。

  1. 依指定 MyRegistry ACR 中的標籤 latest 和摘要 sha256:abc123 強制還原 hello-world 存放庫的映像。

    az acr manifest restore -r MyRegistry -n hello-world:latest -d sha256:abc123 -f
    

重要

還原資訊清單不會以遞迴方式還原任何基礎虛刪除的資訊清單。 如果您要還原虛刪除的 ORAS 成品,則還原主體並不會以遞迴方式還原參考者鏈結。 此外,必須先還原主體,然後才允許還原參考者資訊清單。 否則,其會擲回錯誤。

啟用登錄的虛刪除原則 - 入口網站

您也可以在 Azure 入口網站中啟用登錄的虛刪除原則。

  1. 瀏覽至您的 Azure Container Registry。
  2. 在 [概觀] 索引標籤中,確認 [虛刪除] (預覽) 的狀態。
  3. 如果 [狀態] 為 [停用],請選取 [更新]

Screenshot to view the soft delete policy.

  1. 選取核取方塊以 [啟用虛刪除]
  2. 選取 090 天之間的天數,以保留虛刪除的成品。
  3. 選取儲存以儲存變更。

Screenshot to enable soft delete policy.

還原虛刪除的成品 - 入口網站

  1. 瀏覽至您的 Azure Container Registry。
  2. 在 [功能表] 區段中,選取 [服務],然後選取 [存放庫]
  3. 在 [存放庫] 中,選取您慣用的 [存放庫]
  4. 選取 [管理已刪除的成品] 以查看所有虛刪除的成品。

注意

啟用虛刪除原則並執行如解除標記資訊清單或刪除成品等動作後,您將能夠在保留天數到期之前,在受控刪除成品中找到這些標籤和成品。

Screenshot of manage deleted artifacts.

  1. 篩選您必須還原的已刪除成品。
  2. 選取成品,然後選取右側資料行中的 [還原]
  3. [還原成品] 視窗隨即快顯。

Screenshot to restore soft delete artifacts.

  1. 選取要還原的標籤,這裡有選項可供您選擇,並復原任何其他標籤。
  2. 選取 [還原]

Screenshot of restore window.

從虛刪除的存放庫中還原 - 入口網站

  1. 瀏覽至您的 Azure Container Registry。
  2. 在 [功能表] 區段中,選取 [服務]
  3. 在 [服務] 索引標籤中,選取 [存放庫]
  4. 在 [存放庫] 索引標籤中,選取 [管理已刪除的存放庫]

Screenshot of manage delete repositories.

  1. 在 [虛刪除存放庫] 中篩選已刪除的存放庫 (預覽)。

Screenshot of soft delete repositories.

  1. 選取已刪除的存放庫,從 [管理已刪除的成品] 上篩選已刪除的成品。
  2. 選取成品,然後選取右側資料行中的 [還原]
  3. [還原成品] 視窗隨即快顯。

Screenshot to restore soft delete repositories.

  1. 選取要還原的標籤,這裡有選項可供您選擇,並復原任何其他標籤。
  2. 選取 [還原]

Screenshot of restore window for soft delete repositories.

重要

已封鎖在來源和目標資源匯入虛刪除的映像。 將映像推送至虛刪除的存放庫將會還原虛刪除的存放庫。 不允許推送與虛刪除映像共用相同資訊清單摘要的映像。 請改為還原虛刪除的映像。

下一步