部署失败时,可以从部署历史记录中自动重新部署之前成功的部署。 如果你的基础结构部署状态已知良好,并且想要还原到此状态,此功能非常有用。 可以指定特定的早期部署或上次成功部署。
重要
此功能通过重新部署较早的部署来回滚失败的部署。 此结果可能与撤消失败的部署所期望的结果不同。 请确保了解之前部署的重新部署方式。
在使用此功能之前,请考虑以下有关如何处理重新部署的详细信息:
- 即使之前部署期间使用了增量模式,以前的部署也使用完整模式运行。 如果较早的部署使用增量模式,那么,以完整模式重新部署可能会产生意外的结果。 完整模式意味着删除上一部署中不包含的任何资源。 指定一个较早的部署,该部署代表你希望包含在资源组中的所有资源及其状态。 有关详细信息,请参阅 部署模式。
- 重新部署的执行方式与之前使用相同参数的情况完全一致。 无法更改参数。
- 重新部署仅影响资源,任何数据更改都不会影响。
- 只能将此功能用于资源组部署。 它不支持订阅、管理组或租户级别部署。 有关订阅级别部署的详细信息,请参阅 在订阅级别创建资源组和资源。
- 只能对根级别部署使用此选项。 从嵌套模板进行的部署不可用于重新部署。
若要使用此选项,部署必须在部署历史记录中具有唯一名称。 必须有唯一名称才能识别特定部署。 如果没有唯一名称,失败的部署可能会覆盖历史记录中的成功部署。
如果指定的早期部署在部署历史记录中不存在,回滚操作会返回错误。
若要重新部署最后一次成功部署,请将 -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
若要重新部署最后一次成功部署,请将 --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
若要在当前部署失败时重新部署最后一个成功的部署,请使用:
{
"properties": {
"templateLink": {
"uri": "http://mystorageaccount.blob.core.chinacloudapi.cn/templates/template.json",
"contentVersion": "1.0.0.0"
},
"mode": "Incremental",
"parametersLink": {
"uri": "http://mystorageaccount.blob.core.chinacloudapi.cn/templates/parameters.json",
"contentVersion": "1.0.0.0"
},
"onErrorDeployment": {
"type": "LastSuccessful",
}
}
}
若要在当前部署失败时重新部署特定部署,请使用:
{
"properties": {
"templateLink": {
"uri": "http://mystorageaccount.blob.core.chinacloudapi.cn/templates/template.json",
"contentVersion": "1.0.0.0"
},
"mode": "Incremental",
"parametersLink": {
"uri": "http://mystorageaccount.blob.core.chinacloudapi.cn/templates/parameters.json",
"contentVersion": "1.0.0.0"
},
"onErrorDeployment": {
"type": "SpecificDeployment",
"deploymentName": "<deploymentname>"
}
}
}
指定的部署必须成功。
- 若要了解完整模式和增量模式,请参阅 Azure 资源管理器部署模式。
- 若要了解如何在模板中定义参数,请参阅 了解 Azure 资源管理器模板的结构和语法。