在錯誤發生時,復原至成功的部署
當部署失敗時,您可以從部署記錄自動重新部署先前成功的部署。 如果您的基礎結構部署處於已知良好狀態,而且想要還原至此狀態,可以使用這項功能。 您可以指定先前的特定部署或最後一次成功的部署。
重要
這項功能會藉由重新部署先前的部署來復原失敗的部署。 這項結果可能與您在復原失敗的部署時所預期的不同。 請確定您了解先前的部署將會如何重新部署。
重新部署的考量事項
使用這項功能之前,請考慮下列重新部署處理的相關細節:
- 先前的部署會使用完整模式執行,即使您在先前的部署期間使用累加模式也是如此。 若先前的部署是使用累加模式,在完整模式中重新部署可能會產生非預期的結果。 完整模式表示在先前部署中未包含的任何資源都會遭到刪除。 您所指定的先前部署,需能代表您希望資源群組中存在的所有資源及其狀態。 如需詳細資訊,請參閱部署模式。
- 重新部署的執行方式和先前完全相同,使用的參數也一樣。 您無法變更參數。
- 重新部署只會影響資源,而不會影響任何資料變更。
- 這項功能只能與資源群組部署搭配使用。 不支援訂用帳戶、管理群組或租用戶層級部署。 如需訂用帳戶層級部署的詳細資訊,請參閱在訂用帳戶層級建立資源群組和資源。
- 您只可以使用此選項搭配根層級部署。 從巢狀範本部署不適用於重新部署。
若要使用此選項,您的部署在部署歷程記錄中必須有唯一的名稱。 特定部署必須具備唯一的名稱才能受到識別。 如果您沒有唯一的名稱,則失敗的部署可能會在歷程記錄中覆寫成功的部署。
如果您指定的先前部署不存在於部署歷程記錄中,則復原會傳回錯誤。
PowerShell
若要重新部署最後一個成功的部署,請新增 -RollbackToLastDeployment
參數作為旗標。
New-AzResourceGroupDeployment -Name ExampleDeployment02 `
-ResourceGroupName $resourceGroupName `
-TemplateFile c:\MyTemplates\azuredeploy.json `
-RollbackToLastDeployment
若要重新部署特定部署,請使用 -RollBackDeploymentName
參數,並提供部署的名稱。 指定的部署必須成功。
New-AzResourceGroupDeployment -Name ExampleDeployment02 `
-ResourceGroupName $resourceGroupName `
-TemplateFile c:\MyTemplates\azuredeploy.json `
-RollBackDeploymentName ExampleDeployment01
Azure CLI
若要重新部署最後一個成功的部署,請新增 --rollback-on-error
參數作為旗標。
az deployment group create \
--name ExampleDeployment \
--resource-group ExampleGroup \
--template-file storage.json \
--parameters storageAccountType=Standard_GRS \
--rollback-on-error
若要重新部署特定部署,請使用 --rollback-on-error
參數,並提供部署的名稱。 指定的部署必須成功。
az deployment group create \
--name ExampleDeployment02 \
--resource-group ExampleGroup \
--template-file storage.json \
--parameters storageAccountType=Standard_GRS \
--rollback-on-error ExampleDeployment01
REST API
如果目前的部署失敗,若要重新部署最後一個成功的部署,請使用:
{
"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",
}
}
}
如果目前的部署失敗,若要重新部署特定部署,請使用:
{
"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>"
}
}
}
指定的部署必須成功。
下一步
- 若要了解完整和累加模式,請參閱 Azure Resource Manager 部署模式。
- 若要了解如何在您的範本中定義參數,請參閱了解 Azure Resource Manager 範本的結構和語法。