Bagikan melalui


Jenis penyebaran Azure Resource Manager

Saat menyebarkan sumber daya, Anda menentukan bahwa penyebaran adalah pembaruan bertahap atau pembaruan lengkap. Perbedaan antara kedua mode ini adalah bagaimana Resource Manager menangani sumber daya yang ada di grup sumber daya yang tidak ada dalam templat.

Penting

Gunakan deployment stacks untuk melakukan penghapusan sumber daya saat menggunakan templat ARM atau file Bicep, karena mode lengkap akan dihapuskan secara bertahap.

Untuk kedua mode, Resource Manager mencoba membuat semua sumber daya yang ditentukan dalam templat. Jika sumber daya sudah ada di grup sumber daya dan pengaturannya tidak berubah, tidak ada operasi yang diambil untuk sumber daya tersebut. Jika Anda mengubah nilai properti untuk sumber daya, sumber daya diperbarui dengan nilai baru tersebut. Jika Anda mencoba memperbarui lokasi atau jenis sumber daya yang ada, penyebaran akan menampilkan pesan kesalahan. Sebagai gantinya, sebarkan sumber daya baru dengan lokasi atau jenis yang Anda butuhkan.

Mode default adalah inkremental.

Mode bertahap

Dalam mode inkremental, Resource Manager meninggalkan sumber daya yang tidak berubah yang ada di grup sumber daya tetapi tidak ditentukan dalam templat. Sumber daya dalam templat ditambahkan ke grup sumber daya.

Penting

Mode inkremental adalah mode penyebaran yang direkomendasikan. Jika ada kebutuhan untuk menghapus sumber daya sebagai bagian dari file Bicep atau templat ARM JSON, gunakan tumpukan penyebaran.

Saat menyebarkan ulang sumber daya yang ada dalam mode bertahap, semua properti diterapkan kembali. Properti tidak ditambahkan secara bertahap. Kesalahpahaman umum adalah berpikir properti yang tidak ditentukan dalam templat dibiarkan tidak berubah. Jika Anda tidak menentukan properti tertentu, Resource Manager menafsirkan penyebaran sebagai menggantikan nilai-nilai tersebut. Properti yang tidak disertakan dalam templat diatur ulang ke nilai default. Tentukan semua nilai non-default untuk sumber daya, bukan hanya nilai yang Anda perbarui. Definisi sumber daya dalam templat selalu berisi status akhir sumber daya. Ini tidak dapat mewakili pembaruan parsial ke sumber daya yang ada.

Peringatan

Dalam kasus yang jarang terjadi, Anda dapat menentukan properti pada sumber daya atau pada salah satu sumber daya turunannya. Dua contoh umum adalah subnet pada jaringan virtual dan nilai konfigurasi situs untuk aplikasi web. Dalam kasus ini, Anda harus menangani pembaruan inkremental dengan hati-hati.

Untuk subnet, tentukan nilai melalui subnets properti pada sumber daya Microsoft.Network/virtualNetworks . Jangan tentukan nilai melalui sumber daya turunan Microsoft.Network/virtualNetworks/subnets. Selama subnet didefinisikan pada jaringan virtual, Anda dapat menyebarkan ulang jaringan virtual dan tidak kehilangan subnet.

Untuk nilai konfigurasi situs, nilai diimplementasikan dalam jenis sumber daya anak Microsoft.Web/sites/config. Jika Anda menyebarkan ulang aplikasi web dan menentukan objek kosong sebagai konfigurasi situs, sumber daya turunan tidak diperbarui. Namun, jika Anda menyediakan nilai konfigurasi situs baru, tipe sumber daya anak akan diperbarui.

Mode lengkap

Peringatan

Mode lengkap tidak disarankan. Jika Anda ingin melakukan penghapusan dengan penyebaran templat Bicep atau ARM, gunakan Tumpukan penyebaran.

Dalam mode lengkap, Resource Manager menghapus sumber daya yang ada di grup sumber daya tetapi tidak ditentukan dalam templat.

Nota

Selalu gunakan operasi bagaimana-jika sebelum menyebarkan templat dalam mode lengkap. Operasi what-if memperlihatkan sumber daya mana yang akan dibuat, dihapus, atau diubah. Gunakan what-if untuk menghindari sumber daya secara tidak sengaja dihapus.

Jika templat Anda menyertakan sumber daya yang tidak disebarkan karena kondisi mengevaluasi ke false, hasilnya bergantung pada versi REST API mana yang Anda gunakan untuk menyebarkan templat. Jika Anda menggunakan versi yang lebih lama dari 2019-05-10, sumber daya tidak dihapus. Dengan 2019-05-10 atau yang lebih baru, sumber daya dihapus. Versi terbaru Azure PowerShell dan Azure CLI menghapus sumber daya.

Berhati-hatilah menggunakan mode lengkap dengan perulangan salin. Sumber daya apa pun yang tidak ditentukan dalam templat setelah menyelesaikan perulangan salinan dihapus.

Jika Anda menyebarkan ke lebih dari satu grup sumber daya dalam templat, sumber daya dalam grup sumber daya yang ditentukan dalam operasi penyebaran memenuhi syarat untuk dihapus. Sumber daya dalam grup sumber daya sekunder tidak dihapus.

Ada beberapa perbedaan dalam cara jenis sumber daya menangani penghapusan mode lengkap. Sumber daya induk dihapus secara otomatis saat tidak dalam templat yang disebarkan dalam mode lengkap. Beberapa sumber daya anak tidak dihapus secara otomatis saat tidak ada dalam templat. Namun, sumber daya anak ini dihapus jika sumber daya induk dihapus.

Misalnya, jika grup sumber daya Anda berisi zona DNS (Microsoft.Network/dnsZones jenis sumber daya) dan data CNAME (Microsoft.Network/dnsZones/CNAME jenis sumber daya), zona DNS adalah sumber daya induk untuk data CNAME. Jika Anda menyebarkan dengan mode lengkap dan tidak menyertakan zona DNS di templat Anda, zona DNS dan catatan CNAME akan dihapus. Jika Anda menyertakan zona DNS dalam templat Anda tetapi tidak menyertakan data CNAME, CNAME tidak dihapus.

Untuk daftar cara jenis sumber daya menangani penghapusan, lihat Penghapusan sumber daya Azure untuk penyebaran mode lengkap.

Jika grup sumber daya dikunci, mode lengkap tidak menghapus sumber daya.

Nota

Hanya templat tingkat akar yang mendukung mode penyebaran lengkap. Untuk templat yang ditautkan atau berlapis, Anda harus menggunakan mode inkremental.

Penggelaran tingkat langganan tidak mendukung modus penuh.

Saat ini, portal tidak mendukung mode lengkap.

Contoh hasil:

Untuk mengilustrasikan perbedaan antara mode bertahap dan lengkap, pertimbangkan skenario berikut.

Grup Sumber Daya berisi:

  • Sumber Daya A
  • Sumber Daya B
  • Sumber Daya C

Templat berisi:

  • Sumber Daya A
  • Sumber Daya B
  • Sumber Daya D

Saat disebarkan dalam mode bertahap , grup sumber daya memiliki:

  • Sumber Daya A
  • Sumber Daya B
  • Sumber Daya C
  • Sumber Daya D

Saat disebarkan dalam mode lengkap , Sumber Daya C akan dihapus. Grup sumber daya memiliki:

  • Sumber Daya A
  • Sumber Daya B
  • Sumber Daya D

Mengatur mode penyebaran

Untuk mengatur mode penyebaran saat menyebarkan dengan PowerShell, gunakan Mode parameter .

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

Untuk mengatur mode penyebaran saat menyebarkan dengan Azure CLI, gunakan mode parameter .

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

Contoh berikut menunjukkan templat tertaut yang diatur ke mode penyebaran bertahap:

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

Langkah berikutnya