Tutorial: Menggunakan kondisi dalam templat ARM
Pelajari cara menerapkan sumber daya Azure berdasarkan kondisi dalam templat Azure Resource Manager (templat ARM).
Dalam tutorial Mengatur urutan penerapan sumber daya, Anda membuat komputer virtual, jaringan virtual, dan beberapa sumber daya dependen lainnya termasuk akun penyimpanan. Sebagai ganti membuat akun penyimpanan baru setiap saat, Anda mengizinkan orang memilih antara membuat akun penyimpanan baru dan menggunakan akun penyimpanan yang sudah ada. Untuk mencapai tujuan ini, Anda menentukan parameter tambahan. Jika nilai parameter baru, akun penyimpanan baru akan dibuat. Jika tidak, akun penyimpanan yang ada dengan nama yang disediakan akan digunakan.
Tutorial ini mencakup tugas-tugas berikut:
- Membuka templat Mulai Cepat
- Mengubah templat
- Menerapkan templat
- Membersihkan sumber daya
Tutorial ini hanya mencakup skenario dasar penggunaan kondisi. Untuk informasi selengkapnya, lihat:
- Struktur file templat: Kondisi.
- Menerapkan sumber daya secara kondisional dalam templat ARM.
- Fungsi templat: If.
- Fungsi perbandingan untuk templat ARM
Untuk modul Microsoft Learn yang mencakup kondisi, lihat Mengelola penyebaran cloud yang kompleks dengan menggunakan fitur template ARM tingkat lanjut.
Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.
Prasyarat
Untuk menyelesaikan artikel ini, Anda perlu:
Visual Studio Code dengan ekstensi Alat Resource Manager. Lihat Mulai Cepat: Membuat templat ARM dengan Visual Studio Code.
Untuk meningkatkan keamanan, gunakan kata sandi yang dibuat untuk akun administrator komputer virtual. Anda dapat menggunakan Azure Cloud Shell untuk menjalankan perintah berikut di PowerShell atau Bash:
openssl rand -base64 32
Untuk mempelajari lebih lanjut, jalankan
man openssl rand
untuk membuka halaman manual.Azure Key Vault dirancang untuk melindungi kunci kriptografi dan rahasia lainnya. Untuk informasi selengkapnya, lihat Tutorial: Mengintegrasikan Azure Key Vault dalam penyebaran template ARM. Sebaiknya Anda perbarui kata sandi setiap tiga bulan.
Membuka templat Mulai Cepat
Templat Mulai Cepat Azure adalah repositori untuk templat ARM. Daripada membuat templat dari awal, Anda dapat menemukan sampel templat dan menyesuaikannya. Template yang digunakan dalam tutorial ini disebut Deploy a simple Windows VM.
Dari Visual Studio Code, pilih File>Buka File.
Di Nama file, tempelkan URL berikut:
https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-windows/azuredeploy.json
Pilih Buka untuk membuka file.
Ada enam sumber daya yang ditentukan oleh templat:
- Microsoft.Storage/storageAccounts.
- Microsoft.Network/publicIPAddresses.
- Microsoft.Network/networkSecurityGroups.
- Microsoft.Network/virtualNetworks.
- Microsoft.Network/networkInterfaces.
- Microsoft.Compute/virtualMachines.
Sebaiknya bacalah referensi templat sebelum menyesuaikan templat, karena hal itu akan sangat membantu.
Pilih File>Simpan Sebagai untuk menyimpan salinan file ke komputer lokal Anda dengan nama azuredeploy.json.
Mengubah templat
Membuat dua perubahan pada templat yang sudah ada:
- Tambahkan parameter nama akun penyimpanan. Pengguna dapat menentukan nama akun penyimpanan baru atau nama akun penyimpanan yang sudah ada.
- Tambahkan parameter baru bernama
newOrExisting
. Penerapan menggunakan parameter ini untuk menentukan apakah akan membuat akun penyimpanan baru atau menggunakan akun penyimpanan yang ada.
Berikut adalah prosedur untuk membuat perubahan:
Buka azuredeploy.json di Visual Studio Code.
Ganti ketiga
variables('storageAccountName')
denganparameters('storageAccountName')
di seluruh templat.Hapus definisi variabel berikut:
Tambahkan dua parameter berikut ke awal bagian parameter:
"storageAccountName": { "type": "string" }, "newOrExisting": { "type": "string", "allowedValues": [ "new", "existing" ] },
Tekan Alt+Shift+F untuk memformat templat dalam Visual Studio Code.
Definisi parameter yang diperbarui terlihat seperti:
Tambahkan baris berikut ke awal definisi akun penyimpanan.
"condition": "[equals(parameters('newOrExisting'),'new')]",
Kondisi memeriksa nilai parameter
newOrExisting
. Jika nilai parameter baru, penerapan akan membuat akun penyimpanan.Definisi akun penyimpanan yang diperbarui terlihat seperti:
Perbarui properti
storageUri
dari definisi sumber daya komputer virtual dengan nilai berikut:"storageUri": "[format('https://{0}.blob.core.windows.net', parameters('storageAccountName'))]"
Perubahan ini diperlukan saat Anda menggunakan akun penyimpanan yang ada di bawah grup sumber daya yang berbeda.
Simpan perubahan.
Menerapkan templat
Masuk ke Cloud Shell.
Pilih lingkungan pilihan Anda dengan memilih PowerShell atau Bash (untuk CLI) di sudut kiri atas. Menghidupkan ulang shell diperlukan saat Anda beralih.
Pilih Unggah/unduh file, lalu pilih Unggah. Lihat cuplikan layar sebelumnya. Pilih file yang Anda simpan di bagian sebelumnya. Setelah mengunggah file, Anda dapat menggunakan perintah
ls
dan perintahcat
untuk memverifikasi file berhasil diunggah.Jalankan skrip PowerShell berikut untuk menerapkan templat.
Penting
Nama akun penyimpanan harus unik di seluruh Azure. Nama hanya boleh menggunakan huruf kecil atau angka. Nama tidak boleh lebih dari 24 karakter. Nama akun penyimpanan adalah nama proyek dengan store ditambahkan. Pastikan nama proyek dan nama akun penyimpanan yang dihasilkan memenuhi persyaratan nama akun penyimpanan.
$projectName = Read-Host -Prompt "Enter a project name that is used to generate resource group name and resource names" $newOrExisting = Read-Host -Prompt "Create new or use existing (Enter new or existing)" $location = Read-Host -Prompt "Enter the Azure location (i.e. centralus)" $vmAdmin = Read-Host -Prompt "Enter the admin username" $vmPassword = Read-Host -Prompt "Enter the admin password" -AsSecureString $dnsLabelPrefix = Read-Host -Prompt "Enter the DNS Label prefix" $resourceGroupName = "${projectName}rg" $storageAccountName = "${projectName}store" New-AzResourceGroup -Name $resourceGroupName -Location $location New-AzResourceGroupDeployment ` -ResourceGroupName $resourceGroupName ` -adminUsername $vmAdmin ` -adminPassword $vmPassword ` -dnsLabelPrefix $dnsLabelPrefix ` -storageAccountName $storageAccountName ` -newOrExisting $newOrExisting ` -TemplateFile "$HOME/azuredeploy.json" Write-Host "Press [ENTER] to continue ..."
Catatan
Penerapan gagal jika
newOrExisting
baru, tetapi akun penyimpanan dengan nama akun penyimpanan yang ditentukan sudah ada.
Coba buat penerapan lain dengan newOrExisting
diatur ke yang sudah ada dan tentukan akun penyimpanan yang sudah ada. Untuk membuat akun penyimpanan sebelumnya, lihat Membuat akun penyimpanan.
Membersihkan sumber daya
Saat sumber daya Azure tidak lagi diperlukan, bersihkan sumber daya yang Anda terapkan dengan menghapus grup sumber daya. Untuk menghapus grup sumber daya, pilih Coba untuk membuka Cloud Shell. Untuk menempelkan skrip PowerShell, klik kanan panel shell, lalu pilih Tempel.
$projectName = Read-Host -Prompt "Enter the same project name you used in the last procedure"
$resourceGroupName = "${projectName}rg"
Remove-AzResourceGroup -Name $resourceGroupName
Write-Host "Press [ENTER] to continue ..."
Langkah berikutnya
Dalam tutorial ini, Anda mengembangkan templat yang memungkinkan pengguna memilih antara membuat akun penyimpanan baru dan menggunakan akun penyimpanan yang sudah ada. Untuk mempelajari cara mengambil rahasia dari Azure Key Vault dan menggunakan rahasia sebagai kata sandi dalam penerapan templat, lihat: