Återställning av fel till lyckad distributionRollback on error to successful deployment

Om en distribution misslyckas kan du automatiskt distribuera om en tidigare, lyckad distribution från distributionshistoriken.When a deployment fails, you can automatically redeploy an earlier, successful deployment from your deployment history. Den här funktionen är användbar om du har ett känt bra tillstånd för din infrastrukturdistribution och vill återgå till det här tillståndet.This functionality is useful if you've got a known good state for your infrastructure deployment and want to revert to this state. Du kan ange antingen en viss tidigare distribution eller den senaste lyckade distributionen.You can specify either a particular earlier deployment or the last successful deployment.

Viktigt

Den här funktionen återställer en misslyckad distribution genom att omdistribuera en tidigare distribution.This feature rollbacks a failed deployment by redeploying an earlier deployment. Det här resultatet kan vara annorlunda än vad du förväntar dig när du ångrade den misslyckade distributionen.This result may be different than what you would expect from undoing the failed deployment. Se till att du förstår hur den tidigare distributionen omdistribueras.Make sure you understand how the earlier deployment is redeployed.

Att tänka på vid omdistributionConsiderations for redeploying

Innan du använder den här funktionen bör du tänka igenom hur omdistributionen hanteras:Before using this feature, consider these details about how the redeployment is handled:

  • Den tidigare distributionen körs i fullständigt läge , ävenom du använde inkrementellt läge under den tidigare distributionen.The previous deployment is run using the complete mode, even if you used incremental mode during the earlier deployment. Omdistribution i fullständigt läge kan ge oväntade resultat när den tidigare distributionen använde inkrementell.Redeploying in complete mode could produce unexpected results when the earlier deployment used incremental. Fullständigt läge innebär att alla resurser som inte ingår i den tidigare distributionen tas bort.The complete mode means that any resources not included in the previous deployment are deleted. Ange en tidigare distribution som representerar alla resurser och deras tillstånd som du vill ska finnas i resursgruppen.Specify an earlier deployment that represents all of the resources and their states that you want to exist in the resource group. Mer information finns i distributionslägen.For more information, see deployment modes.
  • Omdistributionen körs exakt som den tidigare har körts med samma parametrar.The redeployment is run exactly as it was run previously with the same parameters. Du kan inte ändra parametrarna.You can't change the parameters.
  • Omdistributionen påverkar bara resurserna, eventuella dataändringar påverkas inte.The redeployment only affects the resources, any data changes aren't affected.
  • Du kan bara använda den här funktionen med resursgruppsdistributioner.You can use this feature only with resource group deployments. Den stöder inte distributioner på prenumerations-, hanteringsgrupps- eller klientnivå.It doesn't support subscription, management group, or tenant level deployments. Mer information om distribution på prenumerationsnivå finns i Skapa resursgrupper och resurser på prenumerationsnivå.For more information about subscription level deployment, see Create resource groups and resources at the subscription level.
  • Du kan bara använda det här alternativet med distributioner på rotnivå.You can only use this option with root level deployments. Distributioner från en kapslad mall är inte tillgängliga för omdistribution.Deployments from a nested template aren't available for redeployment.

Om du vill använda det här alternativet måste dina distributioner ha unika namn i distributionshistoriken.To use this option, your deployments must have unique names in the deployment history. Det är bara med unika namn som en specifik distribution kan identifieras.It's only with unique names that a specific deployment can be identified. Om du inte har unika namn kan en misslyckad distribution skriva över en lyckad distribution i historiken.If you don't have unique names, a failed deployment might overwrite a successful deployment in the history.

Om du anger en tidigare distribution som inte finns i distributionshistoriken returnerar återställningen ett fel.If you specify an earlier deployment that doesn't exist in the deployment history, the rollback returns an error.

PowerShellPowerShell

Om du vill distribuera om den senaste lyckade distributionen lägger du till -RollbackToLastDeployment parametern som en flagga.To redeploy the last successful deployment, add the -RollbackToLastDeployment parameter as a flag.

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

Om du vill distribuera om en specifik distribution använder du -RollBackDeploymentName parametern och anger namnet på distributionen.To redeploy a specific deployment, use the -RollBackDeploymentName parameter and provide the name of the deployment. Den angivna distributionen måste ha lyckats.The specified deployment must have succeeded.

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

Azure CLIAzure CLI

Om du vill distribuera om den senaste lyckade distributionen lägger du till --rollback-on-error parametern som en flagga.To redeploy the last successful deployment, add the --rollback-on-error parameter as a flag.

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

Om du vill distribuera om en specifik distribution använder du --rollback-on-error parametern och anger namnet på distributionen.To redeploy a specific deployment, use the --rollback-on-error parameter and provide the name of the deployment. Den angivna distributionen måste ha lyckats.The specified deployment must have succeeded.

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

REST-APIREST API

Om du vill distribuera om den senaste lyckade distributionen om den aktuella distributionen misslyckas använder du:To redeploy the last successful deployment if the current deployment fails, 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",
    }
  }
}

Om du vill distribuera om en specifik distribution om den aktuella distributionen misslyckas använder du:To redeploy a specific deployment if the current deployment fails, 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>"
    }
  }
}

Den angivna distributionen måste ha lyckats.The specified deployment must have succeeded.

Nästa stegNext steps