Автоматические удаления из журнала развертывания

При каждом развертывании шаблона сведения о развертывании записываются в журнал развертывания. Каждая группа ресурсов ограничена 800 развертываниями в журнале развертывания.

Azure Resource Manager автоматически удаляет развертывания из журнала, когда их количество приближается к ограничению. Автоматическое удаление — это изменение в предыдущем поведении. Ранее было необходимо вручную удалять развертывания из журнала развертывания, чтобы избежать возникновения ошибки. Это изменение реализовано 6 августа 2020 г.

Автоматическое удаление поддерживается для развертывания групп ресурсов и подписок. В настоящее время развертывания в истории для группы управления и арендатора не удаляются автоматически.

Примечание

Удаление развертывания из журнала не влияет ни на один из развернутых ресурсов.

Когда удаляются развертывания

Развертывания удаляются из журнала, когда число развертываний превышает 700. Тогда Azure Resource Manager удаляет развертывания, чтобы уменьшить их количество в журнале до 600. Самые старые развертывания всегда удаляются первыми.

Схема удаления для журнала развертываний.

Важно!

Если для вашей группы ресурсов достигнут лимит 800 развертываний, следующее развертывание завершится ошибкой. Немедленно запустится процесс автоматического удаления. После короткого периода ожидания можно повторить попытку развертывания.

Кроме того, можно активировать удаления при выполнении операции "что если" или проверке развертывания.

При присвоении развертыванию имени, совпадающего с именем в журнале, вы изменяете соответствующее расположение в журнале. Развертывание перемещается в самое последнее место в журнале. При откате к развертыванию после возникновения ошибки также изменяется соответствующее расположение развертывания.

Отключение блокировок удалений

При наличии в группе ресурсов блокировки 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.

Дальнейшие действия