從部署歷程記錄中自動刪除

每次部署範本時,部署的相關資訊都會寫入部署歷程記錄。 在部署歷程記錄中,每個 Azure 資源群組最多可有 800 個部署。

Azure Resource Manager 會您接近限制時,自動從您的歷程記錄中刪除部署。 自動刪除是過去行為的變更。 先前,您必須從部署歷程記錄中手動刪除部署,以避免發生錯誤。 已在 2020 年 8 月 6 日實作此變更。

資源群組和訂用帳戶部署支援自動刪除。 目前,歷程記錄中管理群組租用戶的部署不會遭到自動刪除。

注意

從歷程記錄中刪除部署,並不會對已經部署的任何資源造成影響。

刪除部署時

當您超過 700 個部署時,系統會從歷程記錄中刪除部署。 Azure Resource Manager 會持續刪除部署,直到歷程記錄中的部署降至 600 個。 一律先刪除最舊的部署。

Diagram of deployment history deletion.

重要

如果您的資源群組已達 800 限制,則下一個部署將會失敗並出現錯誤。 自動刪除流程會立即開始。 您可以稍待一會並再次嘗試部署。

除了部署之外,您也會在執行 what-if 作業或驗證部署時,觸發刪除作業。

當提供部署與歷程記錄中某個部署相同的名稱時,您會重設其在歷程記錄中的位置。 此部署會移至歷程記錄中最新的位置。 當您在發生錯誤後復原至該部署時,也會重設部署的位置。

移除封鎖刪除作業的鎖定

如果資源群組上具有 CanNotDelete 鎖定,則無法刪除該資源群組的部署。 您必須移除該鎖定,才能利用部署歷程記錄中的自動刪除。

若要使用 PowerShell 來刪除鎖定,請執行下列命令:

$lockId = (Get-AzResourceLock -ResourceGroupName lockedRG).LockId
Remove-AzResourceLock -LockId $lockId

若要使用 Azure CLI 來刪除鎖定,請執行下列命令:

lockid=$(az lock show --resource-group lockedRG --name deleteLock --output tsv --query id)
az lock delete --ids $lockid

所需的權限

系統會在已部署範本的使用者身分識別下要求刪除作業。 若要刪除部署,則使用者必須具有 Microsoft.Resources/deployments/delete 動作的存取權。 如果使用者不具有所需權限,則系統不會從歷程記錄中刪除部署。

如果目前的使用者不具有所需權限,則系統會在下一次部署期間再次嘗試自動刪除。

選擇退出自動刪除

您可以從歷程記錄中選擇退出自動刪除。 僅當您想自行管理部署歷程記錄時,才可使用此選項。 系統仍會強制執行歷程記錄中 800 個部署的限制。 如果超過 800 個部署,您的部署會失敗並收到錯誤。

若要停用自動刪除,請註冊 Microsoft.Resources/DisableDeploymentGrooming 功能旗標。 註冊功能旗標時,您可選擇退出整個 Azure 訂用帳戶的自動刪除。 您無法只選擇退出特定的資源群組。 若要重新啟用自動刪除,請取消註冊功能旗標。

針對 PowerShell,請使用 Register-AzProviderFeature

Register-AzProviderFeature -ProviderNamespace Microsoft.Resources -FeatureName DisableDeploymentGrooming

若要查看訂用帳戶的目前狀態,請使用:

Get-AzProviderFeature -ProviderNamespace Microsoft.Resources -FeatureName DisableDeploymentGrooming

若要重新啟用自動刪除,請使用 Azure REST API 或 Azure CLI。

下一步