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
- Tam ve artımlı modları anlamak için bkz. Azure Resource Manager dağıtım modları.
- Şablonunuzda parametreleri tanımlamayı anlamak için bkz. Azure Resource Manager şablonlarının yapısını ve söz dizimini anlama.