Azure Resource Manager dağıtım modları

Kaynaklarınızı dağıtırken, dağıtımın artımlı bir güncelleştirme veya tam bir güncelleştirme olduğunu belirtirsiniz. Bu iki mod arasındaki fark, Resource Manager kaynak grubunda yer alan mevcut kaynakları nasıl işleyebilirsiniz?

Her iki mod Resource Manager şablonda belirtilen tüm kaynakları oluşturma denemesi yapın. Kaynak zaten kaynak grubunda mevcutsa ve ayarları değişmemişse, bu kaynak için hiçbir işlem alınmaz. Bir kaynağın özellik değerlerini değiştirirsiniz, kaynak bu yeni değerlerle güncelleştirilir. Var olan bir kaynağın konumunu veya türünü güncelleştirmeyi denersanız dağıtım bir hatayla başarısız olur. Bunun yerine, ihtiyacınız olan konum veya tür ile yeni bir kaynak dağıtın.

Varsayılan mod artımlıdır.

Tamamlama modu

Tam modda Resource Manager kaynak grubunda var olan ancak şablonda belirtilmemiş olan kaynakları siler.

Not

Şablonu tamamlama modunda dağıtmadan önce her zaman what-if işlemini kullanın. What-if size oluşturulacak, silinecek veya değiştirilecek kaynakları gösterir. Kaynakları gereksiz bir şekilde silmekten kaçınmak için what-if kullanın.

Koşulun false olarak değerlendirilip dağıtılamayacak bir kaynak varsa, sonuç şablonu dağıtmak REST API hangi sürüme bağlı olarak değişir. 2019-05-10'dan önceki bir sürümü kullanırsanız kaynak silinmez. 2019-05-10 veya sonraki bir ile kaynak silinir. Azure PowerShell ve Azure CLI'nin en son sürümleri kaynağı siler.

kopyalama döngüleriyle tamamlama modunu kullanırken dikkatli olun. Kopyalama döngüsü çözümledikten sonra şablonda belirtilmemiş tüm kaynaklar silinir.

Bir şablonda birden fazla kaynak grubuna dağıtırsanız,dağıtım işlemi sırasında belirtilen kaynak grubunda yer alan kaynaklar silinebilir. İkincil kaynak gruplarında kaynaklar silinmez.

Kaynak türlerinin tamamlama modu silme işlemlerini işlemesinde bazı farklar vardır. Üst kaynaklar, tam modda dağıtılan bir şablonda değilken otomatik olarak silinir. Bazı alt kaynaklar şablonda değilken otomatik olarak silinmez. Ancak üst kaynak silinirse bu alt kaynaklar silinir.

Örneğin, kaynak grubunuz bir DNS bölgesi (kaynak türü) ve bir CNAME kaydı ( kaynak türü) içeriyorsa, DNS bölgesi Microsoft.Network/dnsZones Microsoft.Network/dnsZones/CNAME CNAME kaydının üst kaynağıdır. Tam modda dağıtırsanız ve ŞABLONUNUZA DNS bölgesi dahil değil, DNS bölgesi ve CNAME kaydı da silinir. DNS bölgenizi şablonunuza dahil ediyorsanız ancak CNAME kaydını dahil ediyorsanız CNAME silinmez.

Kaynak türlerinin silme işlemini nasıl işleyenin listesi için bkz. Tam mod dağıtımları için Azure kaynaklarını silme.

Kaynak grubu kilitliyse,tamamlama modu kaynakları silemez.

Not

Yalnızca kök düzeyindeki şablonlar tam dağıtım modunu destekler. Bağlantılı veya iç içe geçmiş şablonlar içinartımlı modu kullansanız gerekir.

Abonelik düzeyinde dağıtımlar tamamlama modunu desteklemez.

Şu anda portal tamamlama modunu desteklemez.

Artımlı mod

Artımlı modda Resource Manager kaynak grubunda var olan ancak şablonda belirtilmemiş olan kaynakları değiştirmeden bırakır. Şablonda kaynaklar kaynak grubuna eklenir.

Not

Mevcut bir kaynağı artımlı modda yeniden dağıtımda tüm özellikler yeniden kullanılır. Özellikler artımlı olarak eklenmez. Yaygın bir yanlış anlama, şablonda belirtilmemiş olan özelliklerin değişmeden bırakıla birlikte bırakılastırmadır. Belirli özellikleri belirtmezseniz, Resource Manager bu değerlerin üzerine yazarak dağıtımı yorumlar. Şablona dahil olmayan özellikler varsayılan değerlere sıfırlanır. Yalnızca güncelleştirenler için değil, kaynak için tüm varsayılan olmayan değerleri belirtin. Şablonda kaynak tanımı her zaman kaynağın son durumunu içerir. Mevcut bir kaynakta kısmi bir güncelleştirmeyi temsil edilemez.

Nadir durumlarda, bir kaynak için belirttiğiniz özellikler aslında bir alt kaynak olarak uygulanır. Örneğin, bir web uygulaması için site yapılandırma değerleri sağlarsanız, bu değerler alt kaynak türünde Microsoft.Web/sites/config uygulanır. Web uygulamasını yeniden yayımlar ve site yapılandırma değerleri için boş bir nesne belirtirsiniz, alt kaynak güncelleştirilmez. Ancak, yeni site yapılandırma değerleri sağlarsanız alt kaynak türü güncelleştirilir.

Örnek sonuç

Artımlı ve tam modlar arasındaki farkı göstermek için aşağıdaki senaryoyu göz önünde bulundurabilirsiniz.

Kaynak Grubu şunları içerir:

  • Kaynak A
  • Kaynak B
  • Kaynak C

Şablon şunları içerir:

  • Kaynak A
  • Kaynak B
  • Kaynak D

Artımlı modda dağıtıldığında kaynak grubu şunları sağlar:

  • Kaynak A
  • Kaynak B
  • Kaynak C
  • Kaynak D

Tamamlama modunda dağıtıldığında Kaynak C silinir. Kaynak grubunun şunları var:

  • Kaynak A
  • Kaynak B
  • Kaynak D

Dağıtım modunu ayarlama

PowerShell ile dağıtım sırasında dağıtım modunu ayarlamak için parametresini Mode kullanın.

New-AzResourceGroupDeployment `
  -Mode Complete `
  -Name ExampleDeployment `
  -ResourceGroupName ExampleResourceGroup `
  -TemplateFile c:\MyTemplates\storage.json

Azure CLI ile dağıtım sırasında dağıtım modunu ayarlamak için parametresini mode kullanın.

az deployment group create \
  --mode Complete \
  --name ExampleDeployment \
  --resource-group ExampleResourceGroup \
  --template-file storage.json

Aşağıdaki örnekte, artımlı dağıtım moduna ayarlanmış bağlı bir şablon gösterir:

"resources": [
  {
    "type": "Microsoft.Resources/deployments",
    "apiVersion": "2020-10-01",
    "name": "linkedTemplate",
    "properties": {
      "mode": "Incremental",
          <nested-template-or-external-template>
    }
  }
]

Sonraki adımlar