Partage via


Restaurer en cas d’erreur vers un déploiement réussi

En cas d’échec d’un déploiement, vous pouvez redéployer automatiquement un déploiement antérieur, réussi à partir de votre historique de déploiement. Cette fonctionnalité est utile si vous avez un bon état connu pour votre déploiement d’infrastructure et que vous souhaitez revenir à cet état. Vous pouvez spécifier un déploiement antérieur particulier ou le dernier déploiement réussi.

Important

Cette fonctionnalité restaure un déploiement ayant échoué en redéployant un déploiement antérieur. Ce résultat peut être différent de ce que vous attendez en annulant le déploiement ayant échoué. Vérifiez que vous comprenez comment le déploiement précédent est redéployé.

Considérations relatives au redéploiement

Avant d’utiliser cette fonctionnalité, tenez compte de la façon dont le redéploiement est géré :

  • Le déploiement précédent est exécuté à l’aide du mode complet, même si vous avez utilisé le mode incrémentiel pendant le déploiement précédent. Le redéploiement en mode complet peut produire des résultats inattendus lorsque le déploiement précédent s'est fait de manière incrémentielle. Le mode complet signifie que toutes les ressources non incluses dans le déploiement précédent sont supprimées. Spécifiez un déploiement antérieur qui inclut toutes les ressources ainsi que leurs états que vous souhaitez avoir dans le groupe de ressources. Pour plus d’informations, consultez les modes de déploiement.
  • Le redéploiement est exécuté exactement comme il a été exécuté précédemment avec les mêmes paramètres. Vous ne pouvez pas modifier les paramètres.
  • Le redéploiement affecte uniquement les ressources, les modifications de données ne sont pas affectées.
  • Vous pouvez utiliser cette fonctionnalité uniquement avec les déploiements de groupes de ressources. Il ne prend pas en charge les déploiements au niveau de l’abonnement, du groupe d’administration ou du client. Pour plus d’informations sur le déploiement au niveau de l’abonnement, consultez Créer des groupes de ressources et des ressources au niveau de l’abonnement.
  • Vous ne pouvez utiliser cette option que avec des déploiements au niveau racine. Les déploiements à partir d’un modèle imbriqué ne sont pas disponibles pour le redéploiement.

Pour utiliser cette option, vos déploiements doivent avoir des noms uniques dans l’historique de déploiement. Ce n’est qu’avec des noms uniques qu’un déploiement spécifique peut être identifié. Si les noms ne sont pas uniques, un déploiement en échec peut remplacer un déploiement réussi dans l’historique.

Si vous spécifiez un déploiement antérieur qui n’existe pas dans l’historique des déploiements, la restauration retourne une erreur.

PowerShell

Pour redéployer le dernier déploiement réussi, ajoutez le -RollbackToLastDeployment paramètre en tant qu’indicateur.

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

Pour redéployer un déploiement spécifique, utilisez le -RollBackDeploymentName paramètre et indiquez le nom du déploiement. Le déploiement spécifié doit avoir réussi.

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

Azure CLI (Interface de ligne de commande Azure)

Pour redéployer le dernier déploiement réussi, ajoutez le --rollback-on-error paramètre en tant qu’indicateur.

az deployment group create \
  --name ExampleDeployment \
  --resource-group ExampleGroup \
  --template-file storage.json \
  --parameters storageAccountType=Standard_GRS \
  --rollback-on-error

Pour redéployer un déploiement spécifique, utilisez le --rollback-on-error paramètre et indiquez le nom du déploiement. Le déploiement spécifié doit avoir réussi.

az deployment group create \
  --name ExampleDeployment02 \
  --resource-group ExampleGroup \
  --template-file storage.json \
  --parameters storageAccountType=Standard_GRS \
  --rollback-on-error ExampleDeployment01

API REST

Pour redéployer le dernier déploiement réussi si le déploiement actuel échoue, utilisez :

{
  "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",
    }
  }
}

Pour redéployer un déploiement spécifique en cas d’échec du déploiement actuel, utilisez :

{
  "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>"
    }
  }
}

Le déploiement spécifié doit avoir réussi.

Étapes suivantes