Udostępnij za pośrednictwem


Wycofywanie po błędzie do 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 nieudanego wdrożenia. 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 wdrażania:

  • Poprzednie wdrożenie jest uruchamiane przy użyciu trybu pełnego, nawet jeśli podczas wcześniejszego wdrożenia użyto trybu przyrostowego. Ponowne wdrożenie w trybie pełnym może spowodować nieoczekiwane wyniki, gdy wcześniej używane wdrożenie 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, które reprezentuje 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, a zmiany danych nie mają wpływu.
  • Tej funkcji można używać tylko z wdrożeniami grup zasobów. Nie obsługuje 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 szablonu zagnieżdżonego 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ć określonego wdrożenia. 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 wdrażania, 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 polecenia:

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

  • Aby zrozumieć pełne i przyrostowe tryby, zobacz Tryby wdrażania usługi Azure Resource Manager.
  • Aby dowiedzieć się, jak definiować parametry w szablonie, zobacz Omówienie struktury i składni szablonów usługi Azure Resource Manager.