다음을 통해 공유


오류 발생 시 성공적인 배포로 롤백

배포가 실패하면 배포 기록에서 이전에 성공한 배포를 자동으로 다시 배포할 수 있습니다. 이 기능은 인프라 배포에 대한 알려진 양호한 상태가 있으며 이 상태로 되돌리려는 경우에 유용합니다. 이전의 특정 배포 또는 마지막으로 성공한 배포를 지정할 수 있습니다.

Important

이 기능은 이전 배포를 다시 배포하여 실패한 배포를 롤백합니다. 이 결과는 실패한 배포를 실행 취소하는 것과 다를 수 있습니다. 이전 배포를 다시 배포하는 방법을 이해해야 합니다.

재배포 시 고려 사항

이 기능을 사용하기 전에 재배포 처리 방식에 대한 다음 정보를 고려하세요.

  • 이전 배포에서 증분 모드를 사용한 경우에도 이전 배포가 전체 모드를 사용하여 실행됩니다. 증분을 사용한 이전 배포를 전체 모드로 다시 배포하면 예기치 않은 결과가 발생할 수 있습니다. 전체 모드는 이전 배포에 포함되지 않은 모든 리소스가 삭제됨을 의미합니다. 리소스 그룹에 있는 모든 리소스 및 해당 상태를 나타내는 이전 배포를 지정하세요. 자세한 내용은 배포 모드를 참조하세요.
  • 재배포는 동일한 매개 변수를 사용하여 이전에 실행된 것과 정확히 동일하게 실행됩니다. 매개 변수를 변경할 수는 없습니다.
  • 재배포는 리소스에만 영향을 주며 데이터 변경 내용은 영향을 받지 않습니다.
  • 이 기능은 리소스 그룹 배포에만 사용할 수 있습니다. 구독, 관리 그룹 또는 테넌트 수준 배포는 지원하지 않습니다. 구독 수준 배포에 대한 자세한 내용은 구독 수준에서 리소스 그룹 및 리소스 만들기를 참조하세요.
  • 루트 수준 배포에만 이 옵션을 사용할 수 있습니다. 중첩된 템플릿의 배포는 다시 배포할 수 없습니다.

이 옵션을 사용하려면 배포 기록에 배포의 고유한 이름이 있어야 합니다. 특정 배포를 식별할 수 있는 고유한 이름이 있어야 사용할 수 있습니다. 고유한 이름이 없으면 실패한 배포가 기록에서 이전에 성공한 배포를 덮어쓸 수 있습니다.

배포 기록에 없는 이전 배포를 지정하는 경우 롤백이 오류를 반환합니다.

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

지정된 배포는 분명히 성공했을 것입니다.

다음 단계