Başarılı dağıtım için hatanın geri alınması

Bir dağıtım başarısız olduğunda, dağıtım geçmişinizden daha önceki ve başarılı bir dağıtımı otomatik olarak yeniden dağıtabilirsiniz. Altyapı dağıtımınız için bilinen iyi bir durumunuz varsa ve bu duruma geri dönmek istiyorsanız bu işlevsellik yararlı olur. Belirli bir önceki dağıtımı veya son başarılı dağıtımı belirtebilirsiniz.

Önemli

Bu özellik, önceki bir dağıtımı yeniden dağıtarak başarısız bir dağıtımı geri alır. Bu sonuç, başarısız dağıtımı geri almaktan beklediğinizden farklı olabilir. Önceki dağıtımın nasıl yeniden dağıtıldığından emin olun.

Yeniden dağıtma ile ilgili dikkat edilmesi gerekenler

Bu özelliği kullanmadan önce, yeniden dağıtım işleminin nasıl işlenme şekliyle ilgili şu ayrıntıları göz önünde bulundurun:

  • Önceki dağıtım, önceki dağıtım sırasında artımlı mod kullansanız bile tam mod kullanılarak çalıştırılır. Tam modda yeniden dağıtım, önceki dağıtım artımlı olarak kullanıldığında beklenmeyen sonuçlara neden olabilir. Tam mod, önceki dağıtıma dahil olmayan tüm kaynakların silindiği anlamına gelir. Kaynak grubunda var olmasını istediğiniz tüm kaynakları ve bunların durumlarını temsil eden önceki bir dağıtımı belirtin. Daha fazla bilgi için bkz. dağıtım modları.
  • Yeniden dağıtım, daha önce aynı parametrelerle çalıştırıldığı gibi tam olarak çalıştırılır. Parametreleri değiştiremezsiniz.
  • Yeniden dağıtım yalnızca kaynakları etkiler, veri değişiklikleri etkilenmez.
  • Bu özelliği yalnızca kaynak grubu dağıtımlarıyla kullanabilirsiniz. Abonelik, yönetim grubu veya kiracı düzeyinde dağıtımları desteklemez. Abonelik düzeyi dağıtımı hakkında daha fazla bilgi için bkz. Abonelik düzeyinde kaynak grupları ve kaynaklar oluşturma.
  • Bu seçeneği yalnızca kök düzeyi dağıtımlarda kullanabilirsiniz. İç içe bir şablondan dağıtımlar yeniden dağıtım için kullanılamaz.

Bu seçeneği kullanmak için dağıtımlarınızın dağıtım geçmişinde benzersiz adlara sahip olması gerekir. Yalnızca belirli bir dağıtımın tanımlanabileceği benzersiz adlarla kullanılır. Benzersiz adlarınız yoksa, başarısız bir dağıtım geçmişte başarılı bir dağıtımın üzerine yazabilir.

Dağıtım geçmişinde mevcut olmayan önceki bir dağıtımı belirtirseniz geri alma işlemi bir hata döndürür.

PowerShell

Son başarılı dağıtımı yeniden dağıtmak için parametresini -RollbackToLastDeployment bayrak olarak ekleyin.

New-AzResourceGroupDeployment -Name ExampleDeployment02 `
  -ResourceGroupName $resourceGroupName `
  -TemplateFile c:\MyTemplates\azuredeploy.json `
  -RollbackToLastDeployment

Belirli bir dağıtımı yeniden dağıtmak için parametresini -RollBackDeploymentName kullanın ve dağıtımın adını belirtin. Belirtilen dağıtım başarılı olmalıdır.

New-AzResourceGroupDeployment -Name ExampleDeployment02 `
  -ResourceGroupName $resourceGroupName `
  -TemplateFile c:\MyTemplates\azuredeploy.json `
  -RollBackDeploymentName ExampleDeployment01

Azure CLI

Son başarılı dağıtımı yeniden dağıtmak için parametresini --rollback-on-error bayrak olarak ekleyin.

az deployment group create \
  --name ExampleDeployment \
  --resource-group ExampleGroup \
  --template-file storage.json \
  --parameters storageAccountType=Standard_GRS \
  --rollback-on-error

Belirli bir dağıtımı yeniden dağıtmak için parametresini --rollback-on-error kullanın ve dağıtımın adını belirtin. Belirtilen dağıtım başarılı olmalıdır.

az deployment group create \
  --name ExampleDeployment02 \
  --resource-group ExampleGroup \
  --template-file storage.json \
  --parameters storageAccountType=Standard_GRS \
  --rollback-on-error ExampleDeployment01

REST API

Geçerli dağıtım başarısız olursa son başarılı dağıtımı yeniden dağıtmak için şunu kullanın:

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

Geçerli dağıtım başarısız olursa belirli bir dağıtımı yeniden dağıtmak için şunu kullanın:

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

Belirtilen dağıtım başarılı olmalıdır.

Sonraki adımlar