Öğ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.

Resource Manager şablonu kullanım koşulu diyagramı

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.

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:

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).

  1. Visual Studio Code Dosya>Aç'ı seçin.

  2. 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
    
  3. Dosyayı açmak için ’ı seçin.

  4. Şablon tarafından tanımlanan altı kaynak vardır:

    Şablonu özelleştirmeden önce şablon başvuruyu gözden geçirmek yararlı olur.

  5. 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ı newOrExistingyeni 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:

  1. azuredeploy.json dosyasını Visual Studio Code ile açın.

  2. Üç variables('storageAccountName') değerini şablonun tamamında ile parameters('storageAccountName') değiştirin.

  3. Aşağıdaki değişken tanımını kaldırın:

    Kaldırmanız gereken değişken tanımlarını vurgulayan ekran görüntüsü.

  4. 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:

    Resource Manager kullanım koşulu

  5. Depolama hesabı tanımının başına aşağıdaki satırı ekleyin.

    "condition": "[equals(parameters('newOrExisting'),'new')]",
    

    koşul parametresinin newOrExistingdeğ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:

    Güncelleştirilmiş depolama hesabı tanımını gösteren ekran görüntüsü.

  6. 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.

  7. Değişiklikleri kaydedin.

Şablonu dağıtma

  1. Cloud Shell oturum açın.

  2. 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.

    dosyayı karşıya Azure portal Cloud Shell

  3. 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.

  4. Ş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 yeniysenewOrExisting 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.: