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 şablonda olmayan kaynak grubundaki mevcut kaynakları nasıl işlediğidir.

her iki mod için de Resource Manager şablonda belirtilen tüm kaynakları oluşturmaya çalışır. Kaynak, kaynak grubunda zaten varsa ve ayarları değişmediyse, bu kaynak için hiçbir işlem yapılmaz. Bir kaynağın özellik değerlerini değiştirirseniz, kaynak bu yeni değerlerle güncelleştirilir. Mevcut bir kaynağın konumunu veya türünü güncelleştirmeye çalışırsanız dağıtım bir hatayla başarısız olur. Bunun yerine, ihtiyacınız olan konum veya türe sahip yeni bir kaynak dağıtın.

Varsayılan mod artımlı moddur.

Tamamlama modu

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

Not

Bir şablonu tam modda dağıtmadan önce her zaman durum işlemini kullanın. Durum, hangi kaynakların oluşturulacağını, silineceğini veya değiştirileceğini gösterir. Kaynakları istemeden silmekten kaçınmak için durum özelliğini kullanın.

Koşul false olarak değerlendirildiği için şablonunuz dağıtılmayan bir kaynak içeriyorsa, sonuç şablonu dağıtmak için kullandığınız REST API sürümüne bağlıdır. 2019-05-10'dan önceki bir sürümü kullanıyorsanız kaynak silinmez. 2019-05-10 veya üzeri sürümlerde kaynak silinir. Azure PowerShell ve Azure CLI'nın en son sürümleri kaynağı siler.

Kopyalama döngüleriyle tam modu kullanırken dikkatli olun. Kopyalama döngüsü çözümlendikten sonra şablonda belirtilmeyen tüm kaynaklar silinir.

Bir şablonda birden fazla kaynak grubuna dağıtım yaparsanız, dağıtım işleminde belirtilen kaynak grubundaki kaynaklar silinmeye uygundur. İkincil kaynak gruplarındaki kaynaklar silinmez.

Kaynak türlerinin tam mod silme işlemlerini işlemesinde bazı farklılıklar vardır. Üst kaynaklar, tam modda dağıtılan bir şablonda olmadığında otomatik olarak silinir. Bazı alt kaynaklar şablonda olmadığında otomatik olarak silinmez. Ancak, üst kaynak silinirse bu alt kaynaklar silinir.

Örneğin, kaynak grubunuz bir DNS bölgesi (Microsoft.Network/dnsZones kaynak türü) ve bir CNAME kaydı (Microsoft.Network/dnsZones/CNAME kaynak türü) içeriyorsa, DNS bölgesi CNAME kaydının üst kaynağıdır. Tam modda dağıtım yaparsanız ve DNS bölgesini şablonunuzda içermiyorsanız, DNS bölgesi ve CNAME kaydı silinir. DNS bölgesini şablonunuzla birlikte eklerseniz ancak CNAME kaydını dahil etmezseniz, CNAME silinmez.

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

Kaynak grubu kilitliyse, tam mod kaynakları silmez.

Not

Tam dağıtım modunu yalnızca kök düzeyindeki şablonlar destekler. Bağlantılı veya iç içe şablonlar için artımlı modu kullanmanız gerekir.

Abonelik düzeyi dağıtımları tam modu desteklemez.

Portal şu anda tam modu desteklemiyor.

Artımlı mod

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

Önemli

Mevcut bir kaynak artımlı modda yeniden dağıtılırken tüm özellikler yeniden uygulanır. Özellikler artımlı olarak eklenmez. Yaygın bir yanlış anlama, şablonda belirtilmeyen özelliklerin değişmeden bırakıldığını düşünmektir. Belirli özellikleri belirtmezseniz, Resource Manager dağıtımı bu değerlerin üzerine yazılması olarak yorumlar. Şablona dahil olmayan özellikler varsayılan değerlere sıfırlanır. Yalnızca güncelleştirdiğiniz değerleri değil, kaynak için varsayılan olmayan tüm değerleri belirtin. Şablondaki kaynak tanımı her zaman kaynağın son durumunu içerir. Mevcut bir kaynağın kısmi güncelleştirmesini temsil etmez.

Uyarı

Nadir durumlarda, bir kaynakta veya alt kaynaklarından birinde özellikleri belirtebilirsiniz. İki yaygın örnek, sanal ağlardaki alt ağlar ve web uygulamaları için site yapılandırma değerleridir. Böyle durumlarda artımlı güncelleştirmeleri dikkatli bir şekilde işlemeniz gerekir.

Alt ağlar için değerleri Microsoft.Network/virtualNetworks kaynağındaki özelliği aracılığıyla subnets belirtin. Değerleri Microsoft.Network/virtualNetworks/subnets alt kaynağı üzerinden tanımlamayın. Alt ağlar sanal ağda tanımlandığı sürece, sanal ağı yeniden dağıtabilir ve alt ağları kaybetmeyebilirsiniz.

Site yapılandırma değerleri için, değerler alt kaynak türünde Microsoft.Web/sites/configuygulanır. Web uygulamasını yeniden dağıtıp site yapılandırma değerleri için boş bir nesne belirtirseniz, 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 bulundurun.

Kaynak Grubu içeriği:

  • Kaynak A
  • Kaynak B
  • Kaynak C

Şablon içeriği:

  • 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

Tam modda dağıtıldığında C Kaynağı silinir. Kaynak grubu aşağıdakilere sahiptir:

  • Kaynak A
  • Kaynak B
  • Kaynak D

Dağıtım modunu ayarlama

PowerShell ile dağıtım yaparken 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 yaparken 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ış bir bağlantılı şablon gösterilmektedir:

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

Sonraki adımlar