Öğretici: ARM şablonlarında koşul kullanma
Azure Resource Manager şablonundaki (ARM şablonu) koşullara göre Azure kaynaklarını dağıtmayı öğrenin.
Kaynak dağıtım sırasını ayarlama öğreticisinde bir sanal makine, bir sanal ağ ve bir depolama hesabı dahil olmak üzere ek birkaç bağımlı kaynak oluşturmuştunuz. Her defasında yeni depolama hesabı oluşturmak yerine kullanıcıların yeni depolama hesabı oluşturma veya var olan depolama hesabını kullanma arasında seçim yapmasını sağlayacaksınız. Bu hedefe ulaşmak için ek bir parametre tanımlamanız gerekir. Parametresinin değeri yeniyse, yeni bir depolama hesabı oluşturulur. Aksi takdirde, sağlanan ada sahip mevcut bir depolama hesabı kullanılır.
Bu öğretici aşağıdaki görevleri kapsar:
- Hızlı başlangıç şablonunu açma
- Şablonu değiştirme
- Şablonu dağıtma
- Kaynakları temizleme
Bu öğretici yalnızca koşulların kullanımıyla ilgili temel bir senaryoyu kapsar. Daha fazla bilgi için bkz.
- Şablon dosyası yapısı: Koşul.
- ARM şablonunda bir kaynağı koşullu olarak dağıtma.
- Şablon işlevi: If.
- ARM şablonları için karşılaştırma işlevleri
Koşulları kapsayan bir Learn modülü için bkz. Gelişmiş ARM şablonu özelliklerini kullanarak karmaşık bulut dağıtımlarını yönetme.
Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
Önkoşullar
Bu makaleyi tamamlamak için gerekenler:
Visual Studio Code ve Resource Manager Araçları uzantısı. Bkz. Hızlı Başlangıç: Visual Studio Code ile ARM şablonları oluşturma.
Güvenliği artırmak istiyorsanız sanal makine yönetici hesabı için oluşturulmuş bir parola kullanın. PowerShell veya Bash'te aşağıdaki komutu çalıştırmak için Azure Cloud Shell kullanabilirsiniz:
openssl rand -base64 32
Daha fazla bilgi edinmek için komutunu çalıştırarak
man openssl rand
el ile sayfayı açın.Azure Key Vault şifreleme anahtarları ve diğer gizli dizileri korumak üzere tasarlanmıştır. Daha fazla bilgi için bkz. Öğretici: ARM şablonu dağıtımında Azure Key Vault tümleştirme. Ayrıca parolanızı üç ayda bir güncelleştirmenizi öneririz.
Hızlı başlangıç şablonunu açma
Azure Hızlı Başlangıç Şablonları ARM şablonları için bir depodur. Sıfırdan bir şablon oluşturmak yerine örnek bir şablon bulabilir ve bunu özelleştirebilirsiniz. Bu öğreticide kullanılan şablonun adı: Deploy a simple Windows VM (Basit bir Windows sanal makinesi dağıtma).
Visual Studio Code Dosya>Aç'ı seçin.
Dosya adı’na şu URL’yi yapıştırın:
https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-windows/azuredeploy.json
Dosyayı açmak için Aç’ı seçin.
Şablon tarafından tanımlanan altı kaynak vardır:
- Microsoft.Storage/storageAccounts.
- Microsoft.Network/publicIPAddresses.
- Microsoft.Network/networkSecurityGroups.
- Microsoft.Network/virtualNetworks.
- Microsoft.Network/networkInterfaces.
- Microsoft.Compute/virtualMachines.
Şablonu özelleştirmeden önce şablon başvuruyu gözden geçirmek yararlı olur.
Dosyanın bir kopyasını yerel bilgisayarınıza azuredeploy.json adıyla kaydetmek için Dosya>Farklı Kaydet'i seçin.
Şablonu değiştirme
Var olan şablonda iki değişiklik yapın:
- Depolama hesabı ad parametresi ekleyin. Kullanıcılar ya yeni bir depolama hesabı adını ya da var olan bir depolama hesabı adını belirleyebilir.
- adlı
newOrExisting
yeni bir parametre ekleyin. Dağıtım, yeni bir depolama hesabı mı oluşturulacağını yoksa var olan bir depolama hesabını mı kullanacağınızı belirlemek için bu parametreyi kullanır.
Değişiklik yapmak için aşağıdaki adımları izleyin:
azuredeploy.json dosyasını Visual Studio Code ile açın.
Üç
variables('storageAccountName')
değerini şablonun tamamında ileparameters('storageAccountName')
değiştirin.Aşağıdaki değişken tanımını kaldırın:
Parametreler bölümünün başına aşağıdaki iki parametreyi ekleyin:
"storageAccountName": { "type": "string" }, "newOrExisting": { "type": "string", "allowedValues": [ "new", "existing" ] },
Şablonu Visual Studio Code biçimlendirmek için Alt+Shift+F tuşlarına basın.
Güncelleştirilmiş parametre tanımı şu şekilde görünür:
Depolama hesabı tanımının başına aşağıdaki satırı ekleyin.
"condition": "[equals(parameters('newOrExisting'),'new')]",
koşul parametresinin
newOrExisting
değerini denetler. Parametre değeri new ise dağıtım, depolama hesabını oluşturur.Güncelleştirilmiş depolama hesabı tanımı şu şekilde görünür:
storageUri
Sanal makine kaynak tanımının özelliğini aşağıdaki değerle güncelleştirin:"storageUri": "[format('https://{0}.blob.core.windows.net', parameters('storageAccountName'))]"
Farklı bir kaynak grubu altındaki var olan bir depolama hesabını kullandığınızda bu değişiklik gereklidir.
Değişiklikleri kaydedin.
Şablonu dağıtma
Cloud Shell oturum açın.
Sol üst köşedeki PowerShell veya Bash 'i (CLI için) seçerek tercih ettiğiniz ortamı seçin. Geçiş yaptığınızda kabuğun yeniden başlatılması gerekir.
Dosyaları karşıya yükle/indir'i seçin ve sonra da Karşıya Yükle'yi seçin. Önceki ekran görüntüsüne bakın. Önceki bölümde kaydettiğiniz dosyayı seçin. Dosyayı karşıya yükledikten sonra, dosyanın başarıyla karşıya yüklendiğini doğrulamak için komutunu ve
cat
komutunu kullanabilirsinizls
.Şablonu dağıtmak için aşağıdaki PowerShell betiğini çalıştırın.
Önemli
Depolama hesabı adının Azure’da benzersiz olması gerekir. Adın yalnızca küçük harf veya sayı içermesi gerekir. 24 karakterden uzun olamaz. Depolama hesabı adı, deponun eklendiği proje adıdır. Proje adının ve oluşturulan depolama hesabı adının depolama hesabı adı gereksinimlerini karşıladığından emin olun.
$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 ..."
Not
Dağıtım yeniyse
newOrExisting
başarısız olur, ancak belirtilen depolama hesabı adına sahip depolama hesabı zaten var.
Varolarak ayarlanmış başka bir dağıtım newOrExisting
yapmayı deneyin ve var olan bir depolama hesabını belirtin. Depolama hesabını önceden oluşturmak için bkz. Depolama hesabı oluşturma.
Kaynakları temizleme
Artık Azure kaynakları gerekli değilse, kaynak grubunu silerek dağıttığınız kaynakları temizleyin. Kaynak grubunu silmek için Deneyin'i seçerek Cloud Shell açın. PowerShell betiğini yapıştırmak için kabuk bölmesine sağ tıklayın ve yapıştır'ı seçin.
$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 ..."
Sonraki adımlar
Bu öğreticide kullanıcılara yeni depolama hesabı oluşturma ve var olan depolama hesabını kullanma arasında seçim yapma imkanı sunan bir şablon geliştirdiniz. Azure Key Vault'tan gizli dizi alma ve gizli dizileri şablon dağıtımı sırasında parola olarak kullanma hakkında bilgi için bkz.: