Aracılığıyla paylaş


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

Önemli

Arm şablonlarını veya Bicep dosyalarını kullanırken kaynak silme işlemlerini gerçekleştirmek için dağıtım yığınlarını kullanın, tam mod aşamalı olarak kullanım dışı bırakılacaktır.

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ıdır.

Artım modu

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

Artımlı mod, önerilen dağıtım modudur. Bicep dosyasının veya ARM JSON şablonunun bir parçası olarak kaynakları silmeniz gerekiyorsa dağıtım yığınlarını kullanın.

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ştirilmediğini düşünmektir. Belirli özellikleri belirtmezseniz, Resource Manager dağıtımı bu değerlerin üzerine yazmak 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. Var olan bir kaynağın kısmi güncellemesini temsil edemez.

Uyarı

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

Alt ağlar için subnets kaynağındaki özelliği aracılığıyla değerleri 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ğladığınızda alt kaynak türü güncelleştirilir.

Tamamlama modu

Uyarı

Tam mod önerilmez. Bicep veya ARM şablon dağıtımlarıyla silme işlemleri gerçekleştirmek istiyorsanız Dağıtım yığınlarını kullanın.

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

Uyarı

Şablonu tam modda dağıtmadan önce her zaman varsayım işlemini kullanın. "What-if, hangi kaynakların oluşturulacağını, silineceğini veya değiştirileceğini gösterir." Kaynakları istemeden silmekten kaçınmak için "what-if" ö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. Kök kaynaklar, tam modda çalışan bir şablonda olmadığında otomatik olarak silinir. Bazı alt kaynaklar şablonda yer almadığında otomatik olarak silinmez. Üst kaynak silinirse, bu alt kaynaklar da 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 modla dağıtım yaparsanız ve DNS bölgesini şablonunuz içine eklemezseniz, DNS bölgesi ve CNAME kaydı silinir. DNS bölgesini şablonunuzla birlikte ancak CNAME kaydını dahil etmediyseniz, 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.

Uyarı

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

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

Portal şu anda tam modu desteklemiyor.

Örnek sonuç

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

Kaynak Grubu şu içeriği içerir:

  • Kaynak A
  • Kaynak B
  • Kaynak C

Şablon şu içeriği 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

Tam modda dağıtıldığında Kaynak C silinir. Kaynak grubunda aşağıdakiler vardır:

  • 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": "2025-04-01",
    "name": "linkedTemplate",
    "properties": {
      "mode": "Incremental",
          <nested-template-or-external-template>
    }
  }
]

Sonraki adımlar