배포에 실패하면 배포 기록에서 이전의 성공적인 배포를 자동으로 다시 배포할 수 있습니다. 이 기능은 인프라 배포의 안정적인 상태를 알고 있고, 그 상태로 되돌리려 할 때 유용합니다. 특정 이전 배포 또는 마지막으로 성공한 배포를 지정할 수 있습니다.
중요합니다
이 기능은 이전 배포를 다시 배포하여 실패한 배포를 롤백합니다. 이 결과는 실패한 배포를 실행 취소할 때 예상한 것과 다를 수 있습니다. 이전 배포를 다시 배포하는 방법을 이해해야 합니다.
재배포 시 고려 사항
이 기능을 사용하기 전에 재배포가 처리되는 방법에 대한 다음 세부 정보를 고려합니다.
- 이전 배포는 이전 배포 중에 증분 모드를 사용한 경우에도 전체 모드를 사용하여 실행됩니다. 전체 모드에서 다시 배포하면 이전 배포가 증분 방식으로 사용될 때 예기치 않은 결과가 발생할 수 있습니다. 전체 모드는 이전 배포에 포함되지 않은 모든 리소스가 삭제됨을 의미합니다. 리소스 그룹에 존재하려는 모든 리소스 및 해당 상태를 나타내는 이전 배포를 지정합니다. 자세한 내용은 배포 모드를 참조하세요.
- 다시 배포는 동일한 매개 변수를 사용하여 이전에 실행된 것과 정확히 일치합니다. 매개 변수는 변경할 수 없습니다.
- 재배포는 리소스에만 영향을 줍니다. 데이터 변경 내용은 영향을 받지 않습니다.
- 리소스 그룹 배포에서만 이 기능을 사용할 수 있습니다. 구독, 관리 그룹 또는 테넌트 수준 배포를 지원하지 않습니다. 구독 수준 배포에 대한 자세한 내용은 구독 수준에서 리소스 그룹 및 리소스 만들기를 참조하세요.
- 루트 수준 배포에서만 이 옵션을 사용할 수 있습니다. 중첩된 템플릿의 배포는 다시 배포할 수 없습니다.
이 옵션을 사용하려면 배포 기록에 고유한 이름이 있어야 합니다. 고유한 이름이 있어야 특정 배포를 식별할 수 있습니다. 고유한 이름이 없는 경우 실패한 배포는 기록에서 성공적인 배포를 덮어쓸 수 있습니다.
배포 기록에 없는 이전 배포를 지정하면 롤백에서 오류가 반환됩니다.
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 (REST 애플리케이션 프로그래밍 인터페이스)
현재 배포가 실패하는 경우 마지막으로 성공한 배포를 다시 배포하려면 다음을 사용합니다.
{
"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 템플릿의 구조 및 구문 이해를 참조하세요.