Pelatihan
Modul
Pratinjau perubahan penyebaran Azure dengan menggunakan bagaimana-jika - Training
Gunakan perintah "what-if" untuk melihat efek penyebaran sebelum diterapkan.
Browser ini sudah tidak didukung.
Mutakhirkan ke Microsoft Edge untuk memanfaatkan fitur, pembaruan keamanan, dan dukungan teknis terkini.
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.
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 tipe sumber daya yang ada, penyebaran akan gagal dengan kesalahan. Sebagai gantinya, sebarkan sumber daya baru dengan lokasi atau jenis yang Anda butuhkan.
Mode defaultnya adalah bertahap.
Dalam mode lengkap, Resource Manager menghapus sumber daya yang ada di grup sumber daya, tetapi tidak ditentukan dalam templat.
Catatan
Selalu gunakan operasi what-if sebelum menyebarkan templat dalam mode lengkap. Operasi what-if memperlihatkan sumber daya mana yang akan dibuat, dihapus, atau diubah. Gunakan bagaimana-jika untuk menghindari menghapus sumber daya secara tidak sengaja.
Jika templat Anda menyertakan sumber daya yang tidak disebarkan karena kondisi mengevaluasi ke salah, 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.
Hati-hati menggunakan mode lengkap dengan salin loop. Sumber daya apa pun yang tidak ditentukan dalam templat setelah menyelesaikan salin loop akan dihapus.
Jika Anda menyebarkan 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 berada dalam templat yang disebarkan dalam mode lengkap. Beberapa sumber daya anak tidak dihapus secara otomatis saat tidak ada di templat. Namun, sumber daya turunan ini akan 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 dalam templat Anda, zona DNS dan data CNAME akan dihapus. Jika Anda menyertakan zona DNS dalam templat Anda tapi tidak menyertakan data CNAME, CNAME tidak dihapus.
Untuk daftar bagaimana 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.
Catatan
Hanya templat tingkat dasar yang mendukung mode penyebaran lengkap. Untuk templat yang berlapis atau ditautkan, Anda harus menggunakan mode bertahap.
Penyebaran tingkat langganan tidak mendukung mode lengkap.
Saat ini, portal tidak mendukung mode lengkap.
Dalam mode bertahap, Resource Manager tidak mengubah sumber daya yang ada di grup sumber daya, tetapi tidak ditentukan dalam templat. Sumber daya dalam templat ditambahkan ke grup sumber daya.
Penting
Saat melakukan penyebaran ulang sumber daya yang ada dalam mode bertahap, semua properti diterapkan kembali. Properti tidak ditambahkan secara bertahap. Kesalahpahaman umum yang ada terjadi adalah properti yang tidak ditentukan dalam templat dibiarkan tidak berubah. Jika Anda tidak menentukan properti tertentu, Resource Manager menginterpretasikan penyebaran sebagai menimpa nilai-nilai tersebut. Properti yang tidak disertakan dalam templat direset ke nilai default. Tentukan semua nilai non-default untuk sumber daya, bukan hanya yang sedang 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 baik pada sumber daya maupun salah satu sumber daya anak perusahaan. Dua contoh umum adalah subnet di jaringan virtual dan nilai konfigurasi situs untuk aplikasi web. Dalam kasus ini, Anda harus menangani pembaruan bertahap dengan cermat.
Untuk subnet, tentukan nilai melalui subnets
properti di sumber daya Microsoft.Network/virtualNetworks. Jangan tetapkan nilai melalui sumber daya turunan Microsoft.Network/virtualNetworks/subnets. Selama subnet ditetapkan pada jaringan virtual, Anda dapat memberi warna kembali jaringan virtual dan tidak kehilangan subnet.
Untuk nilai konfigurasi situs, nilainya diterapkan pada tipe sumber daya turunan Microsoft.Web/sites/config
. Jika Anda melakukan penyebaran ulang aplikasi web dan menentukan objek kosong untuk nilai konfigurasi situs, sumber daya turunan tidak diperbarui. Namun, jika Anda menyediakan nilai konfigurasi situs baru, jenis sumber daya turunan diperbarui.
Untuk mengilustrasikan perbedaan antara mode bertahap dan lengkap, pertimbangkan skenario berikut.
Grup Sumber Daya berisi:
Templat berisi:
Saat disebarkan dalam mode bertahap, grup sumber daya memiliki:
Saat disebarkan dalam mode lengkap, Sumber Daya C akan dihapus. Grup sumber daya memiliki:
Untuk mengatur mode penyebaran saat menyebarkan dengan PowerShell, gunakan parameter Mode
.
New-AzResourceGroupDeployment `
-Mode Complete `
-Name ExampleDeployment `
-ResourceGroupName ExampleResourceGroup `
-TemplateFile c:\MyTemplates\storage.json
Untuk mengatur mode penyebaran saat menyebarkan dengan Azure CLI, gunakan parameter mode
.
az deployment group create \
--mode Complete \
--name ExampleDeployment \
--resource-group ExampleResourceGroup \
--template-file storage.json
Contoh berikut ini memperlihatkan templat tertaut yang diatur ke mode penerapan bertahap:
"resources": [
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2020-10-01",
"name": "linkedTemplate",
"properties": {
"mode": "Incremental",
<nested-template-or-external-template>
}
}
]
Pelatihan
Modul
Pratinjau perubahan penyebaran Azure dengan menggunakan bagaimana-jika - Training
Gunakan perintah "what-if" untuk melihat efek penyebaran sebelum diterapkan.
Dokumentasi
Penyebaran templat bagaimana-jika - Azure Resource Manager
Tentukan perubahan apa yang akan terjadi pada sumber daya Anda sebelum menyebarkan templat Azure Resource Manager.
Struktur dan sintaks templat - Azure Resource Manager
Menjelaskan struktur dan properti templat Azure Resource Manager (templat ARM) menggunakan sintaks JSON deklaratif.
Membuat file parameter - Azure Resource Manager
Membuat file parameter untuk meneruskan nilai selama penyebaran templat Azure Resource Manager