Wycofywanie po błędzie w celu pomyślnego wdrożenia

Gdy wdrożenie zakończy się niepowodzeniem, można automatycznie ponownie wdrożyć wcześniejsze, pomyślne wdrożenie z historii wdrożenia. Ta funkcja jest przydatna, jeśli masz znany dobry stan wdrożenia infrastruktury i chcesz przywrócić ten stan. Można określić określone wcześniejsze wdrożenie lub ostatnie pomyślne wdrożenie.

Ważne

Ta funkcja powoduje wycofanie nieudanego wdrożenia przez ponowne wdrożenie wcześniejszego wdrożenia. Ten wynik może różnić się od tego, czego można oczekiwać od cofnięcia wdrożenia, które zakończyło się niepowodzeniem. Upewnij się, że rozumiesz sposób ponownego wdrożenia wcześniejszego wdrożenia.

Zagadnienia dotyczące ponownego wdrażania

Przed użyciem tej funkcji należy wziąć pod uwagę następujące szczegóły dotyczące sposobu obsługi ponownego wdrożenia:

  • Poprzednie wdrożenie jest uruchamiane przy użyciu trybu pełnego, nawet jeśli podczas wcześniejszego wdrożenia użyto trybu przyrostowego . Ponowne wdrażanie w trybie pełnym może spowodować nieoczekiwane wyniki, gdy wcześniejsze wdrożenie zostało użyte przyrostowe. Tryb ukończenia oznacza, że wszystkie zasoby, które nie zostały uwzględnione w poprzednim wdrożeniu, zostaną usunięte. Określ wcześniejsze wdrożenie reprezentujące wszystkie zasoby i ich stany, które mają istnieć w grupie zasobów. Aby uzyskać więcej informacji, zobacz Tryby wdrażania.
  • Ponowne wdrożenie jest uruchamiane dokładnie tak, jak zostało uruchomione wcześniej z tymi samymi parametrami. Nie można zmienić parametrów.
  • Ponowne wdrożenie wpływa tylko na zasoby, żadne zmiany danych nie mają wpływu.
  • Tej funkcji można używać tylko z wdrożeniami grup zasobów. Nie obsługuje ona wdrożeń na poziomie subskrypcji, grupy zarządzania ani dzierżawy. Aby uzyskać więcej informacji na temat wdrażania na poziomie subskrypcji, zobacz Tworzenie grup zasobów i zasobów na poziomie subskrypcji.
  • Tej opcji można używać tylko z wdrożeniami na poziomie głównym. Wdrożenia z zagnieżdżonego szablonu nie są dostępne do ponownego wdrożenia.

Aby użyć tej opcji, wdrożenia muszą mieć unikatowe nazwy w historii wdrożenia. Jest to tylko z unikatowymi nazwami, które można zidentyfikować w określonym wdrożeniu. Jeśli nie masz unikatowych nazw, wdrożenie zakończone niepowodzeniem może zastąpić pomyślne wdrożenie w historii.

Jeśli określisz wcześniejsze wdrożenie, które nie istnieje w historii wdrożenia, wycofanie zwróci błąd.

PowerShell

Aby ponownie wdrożyć ostatnie pomyślne wdrożenie, dodaj -RollbackToLastDeployment parametr jako flagę.

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

Aby ponownie wdrożyć określone wdrożenie, użyj parametru -RollBackDeploymentName i podaj nazwę wdrożenia. Określone wdrożenie musi się powiodło.

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

Interfejs wiersza polecenia platformy Azure

Aby ponownie wdrożyć ostatnie pomyślne wdrożenie, dodaj --rollback-on-error parametr jako flagę.

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

Aby ponownie wdrożyć określone wdrożenie, użyj parametru --rollback-on-error i podaj nazwę wdrożenia. Określone wdrożenie musi się powiodło.

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

Interfejs API REST

Aby ponownie wdrożyć ostatnie pomyślne wdrożenie, jeśli bieżące wdrożenie zakończy się niepowodzeniem, użyj:

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

Aby ponownie wdrożyć określone wdrożenie, jeśli bieżące wdrożenie zakończy się niepowodzeniem, użyj:

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

Określone wdrożenie musi się powiodło.

Następne kroki