Partilhar via


Reversão em caso de erro para implantação bem-sucedida

Quando uma implantação falha, você pode reimplantar automaticamente uma implantação anterior e bem-sucedida a partir do seu histórico de implantação. Esta funcionalidade é útil se se tiver um estado conhecido como bom para a sua implementação de infraestrutura e quiser reverter para esse estado. Você pode especificar uma implantação anterior específica 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 poderia esperar ao reverter a implantação falhada. Certifique-se de entender como a implantação anterior é reimplantada.

Considerações para a 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 usou o modo incremental. O modo completo significa que todos os recursos não incluídos na implantação anterior sã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 obter mais informações, consulte 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 redistribuição afeta apenas os recursos, quaisquer mudanças nos dados não são impactadas.
  • Você pode usar esse recurso somente com implantações de grupo de recursos. Ele não oferece suporte a implantações a nível de assinatura, grupo de gestão ou nível do inquilino. Para obter mais informações sobre a implantação no nível de assinatura, consulte Criar grupos de recursos e recursos no nível de assinatura.
  • Você só pode usar essa opção com implantações de nível raiz. As implantações de um modelo aninhado não estão disponíveis para reimplantação.

Para usar essa opção, suas implantações devem ter nomes exclusivos no histórico de implantação. É apenas com nomes únicos que uma implantação específica pode ser identificada. Se não dispuser de nomes exclusivos, uma implantação falhada poderá substituir uma implantação bem-sucedida no histórico.

Se for especificada uma implantação anterior que não existe no histórico de implantação, a reversão resultará em um erro.

PowerShell

Para reimplantar a última implantação bem-sucedida, adicione o -RollbackToLastDeployment parâmetro 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 sido bem-sucedida.

New-AzResourceGroupDeployment -Name ExampleDeployment02 `
  -ResourceGroupName $resourceGroupName `
  -TemplateFile c:\MyTemplates\azuredeploy.json `
  -RollBackDeploymentName ExampleDeployment01

Azure CLI (Interface de Linha de Comando da Azure)

Para reimplantar a última implantação bem-sucedida, 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 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 sido bem-sucedida.

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 sido bem-sucedida.

Próximos passos