Reverter o erro para uma implementação com êxito
Quando uma implementação falha, pode reimplementar automaticamente uma implementação com êxito anterior a partir do histórico de implementações. Esta funcionalidade é útil se tiver um bom estado conhecido para a implementação da infraestrutura e quiser reverter para este estado. Pode especificar uma implementação anterior específica ou a última implementação com êxito.
Importante
Esta funcionalidade reverte uma implementação falhada ao reimplementar uma implementação anterior. Este resultado pode ser diferente do que seria de esperar ao anular a implementação falhada. Certifique-se de que compreende como a implementação anterior foi reimplementada.
Considerações para reimplementar
Antes de utilizar esta funcionalidade, considere estes detalhes sobre como a reimplementação é processada:
- A implementação anterior é executada com o modo completo, mesmo que tenha utilizado o modo incremental durante a implementação anterior. A reimplementação no modo completo pode produzir resultados inesperados quando a implementação anterior utilizou incrementalmente. O modo completo significa que todos os recursos não incluídos na implementação anterior são eliminados. Especifique uma implementação anterior que represente todos os recursos e os respetivos estados que pretende que existam no grupo de recursos. Para obter mais informações, veja Modos de implementação.
- A reimplementação é executada exatamente como foi executada anteriormente com os mesmos parâmetros. Não pode alterar os parâmetros.
- A reimplementação afeta apenas os recursos, não são afetadas quaisquer alterações de dados.
- Só pode utilizar esta funcionalidade com implementações de grupos de recursos. Não suporta implementações ao nível da subscrição, do grupo de gestão ou do inquilino. Para obter mais informações sobre a implementação ao nível da subscrição, veja Criar grupos de recursos e recursos ao nível da subscrição.
- Só pode utilizar esta opção com implementações ao nível da raiz. As implementações de um modelo aninhado não estão disponíveis para reimplementação.
Para utilizar esta opção, as suas implementações têm de ter nomes exclusivos no histórico de implementações. É apenas com nomes exclusivos que uma implementação específica pode ser identificada. Se não tiver nomes exclusivos, uma implementação falhada poderá substituir uma implementação com êxito no histórico.
Se especificar uma implementação anterior que não existe no histórico de implementações, a reversão devolve um erro.
PowerShell
Para reimplementar a última implementação com êxito, adicione o -RollbackToLastDeployment
parâmetro como um sinalizador.
New-AzResourceGroupDeployment -Name ExampleDeployment02 `
-ResourceGroupName $resourceGroupName `
-TemplateFile c:\MyTemplates\azuredeploy.json `
-RollbackToLastDeployment
Para reimplementar uma implementação específica, utilize o -RollBackDeploymentName
parâmetro e indique o nome da implementação. A implementação especificada tem de ter sido efetuada com êxito.
New-AzResourceGroupDeployment -Name ExampleDeployment02 `
-ResourceGroupName $resourceGroupName `
-TemplateFile c:\MyTemplates\azuredeploy.json `
-RollBackDeploymentName ExampleDeployment01
CLI do Azure
Para reimplementar a última implementação com êxito, adicione o --rollback-on-error
parâmetro como um sinalizador.
az deployment group create \
--name ExampleDeployment \
--resource-group ExampleGroup \
--template-file storage.json \
--parameters storageAccountType=Standard_GRS \
--rollback-on-error
Para reimplementar uma implementação específica, utilize o --rollback-on-error
parâmetro e indique o nome da implementação. A implementação especificada tem de ter sido efetuada com êxito.
az deployment group create \
--name ExampleDeployment02 \
--resource-group ExampleGroup \
--template-file storage.json \
--parameters storageAccountType=Standard_GRS \
--rollback-on-error ExampleDeployment01
API REST
Para reimplementar a última implementação com êxito se a implementação atual falhar, utilize:
{
"properties": {
"templateLink": {
"uri": "http://mystorageaccount.blob.core.windows.net/templates/template.json",
"contentVersion": "1.0.0.0"
},
"mode": "Incremental",
"parametersLink": {
"uri": "http://mystorageaccount.blob.core.windows.net/templates/parameters.json",
"contentVersion": "1.0.0.0"
},
"onErrorDeployment": {
"type": "LastSuccessful",
}
}
}
Para reimplementar uma implementação específica se a implementação atual falhar, utilize:
{
"properties": {
"templateLink": {
"uri": "http://mystorageaccount.blob.core.windows.net/templates/template.json",
"contentVersion": "1.0.0.0"
},
"mode": "Incremental",
"parametersLink": {
"uri": "http://mystorageaccount.blob.core.windows.net/templates/parameters.json",
"contentVersion": "1.0.0.0"
},
"onErrorDeployment": {
"type": "SpecificDeployment",
"deploymentName": "<deploymentname>"
}
}
}
A implementação especificada tem de ter sido efetuada com êxito.
Passos seguintes
- Para compreender os modos completos e incrementais, veja Modos de implementação do Azure Resource Manager.
- Para compreender como definir parâmetros no seu modelo, veja Compreender a estrutura e a sintaxe dos modelos do Azure Resource Manager.