Aracılığıyla paylaş


Öğretici: ARM şablonlarında koşulu 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 depolama hesabı da dahil olmak üzere diğer bağımlı kaynaklar oluşturursunuz. Her seferinde yeni bir depolama hesabı oluşturmak yerine, kişilerin yeni depolama hesabı oluşturma ve mevcut depolama hesabını kullanma arasında seçim yapmalarını sağlarsınız. Bu hedefe ulaşmak için ek bir parametre tanımlarsınız. Parametresinin değeri yeniyse yeni bir depolama hesabı oluşturulur. Aksi takdirde, verilen adla 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ıç şablonu açma
  • Şablonu değiştirme
  • Şablonu dağıt
  • Kaynakları temizle

Bu öğreticide yalnızca koşulların kullanımıyla ilgili temel bir senaryo ele alınır. Daha fazla bilgi için bakınız:

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 şunlar gerekir:

  • Visual Studio Code.

  • Güvenliği artırmak için sanal makine yönetici hesabı için oluşturulan bir parola kullanın. Azure Cloud Shell'i kullanarak PowerShell veya Bash'te aşağıdaki komutu çalıştırabilirsiniz:

    openssl rand -base64 32
    

    Daha fazla bilgi edinmek için man openssl rand komutunu çalıştırarak kılavuz sayfasını açın.

    Azure Key Vault, şifreleme anahtarlarını ve diğer gizli dizileri korumak için tasarlanmıştır. Daha fazla bilgi için Öğretici: Azure Key Vault'ı ARM şablonu dağıtımında tümleştirme bölümüne bakın. Ayrıca parolanızı her üç ayda bir güncelleştirmenizi öneririz.

Hızlı Başlangıç şablonu açma

Azure Hızlı Başlangıç Şablonları, ARM şablonları için bir depodur. Sıfırdan şablon oluşturmak yerine örnek bir şablon bulabilir ve şablonu özelleştirebilirsiniz. Bu öğreticide kullanılan şablona Basit bir Windows VM dağıtma adı verilir.

  1. Visual Studio Code'da Dosya> seçin.

  2. Dosya adı alanına aşağıdaki 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 Aç'ı 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ı azuredeploy.jsonadlı yerel bilgisayarınıza kaydetmek için >Farklı Kaydet'i seçin.

Şablonu değiştirme

Mevcut şablonda iki değişiklik yapın:

  • Depolama hesabı adı parametresi ekleyin. Kullanıcılar yeni bir depolama hesabı adı veya mevcut bir depolama hesabı adı belirtebilir.
  • adlı newOrExistingyeni bir parametre ekleyin. Dağıtım, yeni bir depolama hesabı mı oluşturulacağını yoksa mevcut bir depolama hesabının mı kullanılacağını belirlemek için bu parametreyi kullanır.

Değişiklikleri yapma yordamı aşağıdadır:

  1. Visual Studio Code'da azuredeploy.json açın.

  2. Şablonun tamamında üç variables('storageAccountName') öğesini parameters('storageAccountName') olarak 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"
      ]
    },
    

    Visual Studio Code'da şablonu biçimlendirmek için Alt+Shift+F tuşlarına basın.

    Güncelleştirilmiş parametre tanımı şöyle 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 yeniyse, dağıtım depolama hesabını oluşturur.

    Güncelleştirilmiş depolama hesabı tanımı şöyle 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'))]"
    

    Bu değişiklik, farklı bir kaynak grubu altında mevcut bir depolama hesabını kullandığınızda gereklidir.

  7. Değişiklikleri kaydedin.

Şablonu dağıt

  1. Cloud Shell'de oturum açın.

  2. Sol üst köşedeki PowerShell'i 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.

    Azure portal Cloud Shell dosya yükleme

  3. Dosyaları karşıya yükle/indir'i ve ardından 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 ls komutunu ve cat komutunu kullanabilirsiniz.

  4. Şablonu dağıtmak için aşağıdaki PowerShell betiğini çalıştırın.

    Önemli

    Depolama hesabı adı Azure genelinde benzersiz olmalıdır. 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 ..."
    

    Uyarı

    Yeniyse newOrExistingdağıtım başarısız olur, ancak belirtilen depolama hesabı adına sahip depolama hesabı zaten var.

Mevcut olarak ayarlanmış başka bir dağıtım newOrExisting yapmayı deneyin ve var olan bir depolama hesabını belirtin. Önceden bir depolama hesabı oluşturmak için bkz. Depolama hesabı oluşturma.

Kaynakları temizle

Azure kaynaklarına artık gerek kalmadığında, kaynak grubunu silerek dağıttığınız kaynakları temizleyin. Kaynak grubunu silmek için Cloud Shell'i açmak için Deneyin'i seçin. 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ıların yeni bir depolama hesabı oluşturma ve mevcut depolama hesabını kullanma arasında seçim yapmasına olanak tanıyan bir şablon geliştirdiniz. Azure Key Vault'tan gizli dizileri almayı ve gizli dizileri şablon dağıtımında parola olarak kullanmayı öğrenmek için bkz: