Reverter em caso de erro para uma implantação bem-sucedida
Quando uma implantação falha, é possível reimplantar automaticamente uma implantação anterior bem-sucedida com base em seu histórico de implantações. Essa funcionalidade será útil se a implantação de infraestrutura estiver em um estado válido reconhecido e você quiser reverter para esse estado. Você pode especificar uma determinada implantação anterior ou a última implantação bem-sucedida.
Importante
Esse recurso reverte uma implantação com falha reimplantando uma implantação anterior. Esse resultado pode ser diferente do que você esperaria se desfizesse a implantação com falha. Entenda como a implantação anterior é reimplantada.
Considerações para reimplantação
Antes de usar esse recurso, considere estes detalhes sobre como a reimplantação é tratada:
- A implantação anterior é executada usando o modo completo, mesmo que você tenha usado o modo incremental durante a implantação anterior. A reimplantação no modo completo pode produzir resultados inesperados, quando a implantação anterior era incremental. O modo completo significa que todos os recursos não incluídos na implantação anterior serão excluídos. Especifique uma implantação anterior que represente todos os recursos e seus estados que você deseja que existam no grupo de recursos. Para saber mais, veja Modos de implantação.
- A reimplantação é executada exatamente como foi executada anteriormente com os mesmos parâmetros. Não é possível alterar os parâmetros.
- A reimplantação afeta apenas os recursos, as alterações de dados não são afetadas.
- Você pode usar esse recurso somente com implantações do grupo de recursos. Ele não dá suporte a assinaturas, grupos de gerenciamento ou implantações em nível de locatário. Para saber mais sobre as implantações de nível de assinatura, veja Criar grupos de recursos e recursos no nível da assinatura.
- Você só pode usar essa opção com implantações de nível raiz. Implantações de um modelo aninhado não estão disponíveis para reimplantação.
Para usar essa opção, as implantações devem ter nomes exclusivos no histórico de implantação. Uma implantação específica pode ser identificada apenas com nomes exclusivos. Se você não tiver nomes exclusivos, a implantação que continha falha poderá substituir uma implantação bem-sucedida no histórico.
Se você especificar uma implantação anterior que não existe no histórico de implantação, a reversão retornará um erro.
PowerShell
Para reimplementar a última implantação bem-sucedida, adicione o parâmetro -RollbackToLastDeployment
como um sinalizador.
New-AzResourceGroupDeployment -Name ExampleDeployment02 `
-ResourceGroupName $resourceGroupName `
-TemplateFile c:\MyTemplates\azuredeploy.json `
-RollbackToLastDeployment
Para reimplantar uma implantação específica, use o -RollBackDeploymentName
parâmetro e forneça o nome da implantação. A implantação especificada deve ter êxito.
New-AzResourceGroupDeployment -Name ExampleDeployment02 `
-ResourceGroupName $resourceGroupName `
-TemplateFile c:\MyTemplates\azuredeploy.json `
-RollBackDeploymentName ExampleDeployment01
CLI do Azure
Para reimplementar a última implantação bem-sucedida, adicione o parâmetro --rollback-on-error
como um sinalizador.
az deployment group create \
--name ExampleDeployment \
--resource-group ExampleGroup \
--template-file storage.json \
--parameters storageAccountType=Standard_GRS \
--rollback-on-error
Para reimplantar uma implantação específica, use o --rollback-on-error
parâmetro e forneça o nome da implantação. A implantação especificada deve ter ê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 reimplantar a última implantação bem-sucedida se a implantação atual falhar, use:
{
"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 reimplantar uma implantação específica se a implantação atual falhar, use:
{
"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 implantação especificada deve ter êxito.
Próximas etapas
- Para entender os modos completo e incremental, veja Modos de implantação do Azure Resource Manager.
- Para entender como definir parâmetros em seu modelo, confira Noções básicas de estrutura e sintaxe dos modelos do Azure Resource Manager.