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.