Exclusões automáticas do histórico de implantações

Toda vez que você implanta um modelo, as informações sobre a implantação são gravadas no histórico de implantação. Cada grupo de recursos é limitado a 800 implantações no histórico de implantação.

O Azure Resource Manager exclui automaticamente as implantações do seu histórico conforme você se aproxima do limite. A exclusão automática é uma alteração de comportamento passado. Anteriormente, era necessário excluir manualmente as implantações do histórico de implantação para evitar receber um erro. Essa alteração foi implementada em 6 de agosto de 2020.

As exclusões automáticas têm suporte para implantações de grupos de recursos e assinaturas. Atualmente, as implantações no histórico para implantações de grupos de gerenciamento e locatários não são excluídas automaticamente.

Observação

A exclusão de uma implantação do histórico não afeta nenhum dos recursos que foram implantados.

Quando as implantações são excluídas

As implantações serão excluídas do seu histórico quando excederem 700. O Azure Resource Manager exclui as implantações até que o histórico seja reduzido para 600. As implantações mais antigas são sempre excluídas primeiro.

Diagrama de exclusão do histórico de implantação.

Importante

Se o grupo de recursos já estiver no limite de 800, a próxima implantação falhará com um erro. O processo de exclusão automática é iniciado imediatamente. Você pode tentar realizar a implantação novamente após uma breve período de espera.

Além das implantações, você também dispara exclusões quando executa a operação de teste de hipóteses ou valida uma implantação.

Quando você dá o mesmo nome a uma implantação que a outra implantação no histórico, você redefine o local dela no histórico. A implantação é movida para o local mais recente no histórico. Você também redefine o local de uma implantação ao reverter para essa implantação após um erro.

Remover bloqueios que impedem exclusões

Se você tiver um bloqueio CanNotDelete em um grupo de recursos, as implantações desse grupo de recursos não poderão ser excluídas. Você precisa remover o bloqueio para aproveitar as exclusões automáticas no histórico de implantação.

Para usar o PowerShell para excluir um bloqueio, execute os seguintes comandos:

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

Para usar a CLI do Azure para excluir um bloqueio, execute os seguintes comandos:

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

Permissões necessárias

As exclusões são solicitadas na identidade do usuário que implantou o modelo. Para excluir implantações, o usuário precisa ter acesso à ação Microsoft.Resources/deployments/delete. Se o usuário não tiver as permissões necessárias, as implantações não serão excluídas do histórico.

Se o usuário atual não tiver as permissões necessárias, será realizada uma nova tentativa de exclusão automática durante a próxima implantação.

Recusar exclusões automáticas

Você pode recusar exclusões automáticas do histórico. Use essa opção somente quando quiser gerenciar o histórico de implantação por conta própria. O limite de 800 implantações no histórico ainda é imposto. Se você exceder 800 implantações, receberá um erro e a implantação falhará.

Para desabilitar as exclusões automáticas, registre o sinalizador de recurso Microsoft.Resources/DisableDeploymentGrooming. Ao registrar o sinalizador de recurso, você recusa as exclusões automáticas de toda a assinatura do Azure. Você não pode recusar apenas um determinado grupo de recursos. Para habilitar novamente as exclusões automáticas, cancele o registro do sinalizador de recurso.

No PowerShell, use Register-AzProviderFeature.

Register-AzProviderFeature -ProviderNamespace Microsoft.Resources -FeatureName DisableDeploymentGrooming

Para ver o status atual da sua assinatura, use:

Get-AzProviderFeature -ProviderNamespace Microsoft.Resources -FeatureName DisableDeploymentGrooming

Para habilitar novamente exclusões automáticas, use a API REST do Azure ou a CLI do Azure.

Próximas etapas