Hızlı Başlangıç: Şablon oluşturma ve dağıtma belirtimi

Bu hızlı başlangıçta bir Azure Resource Manager şablonunu (ARM şablonu) şablon belirtimine nasıl paketlediğiniz gösterilmektedir. Ardından bu şablon belirtimlerini dağıtırsınız. Şablon belirtiminiz, depolama hesabı dağıtan bir ARM şablonu içerir.

Bahşiş

ARM şablonlarıyla aynı özellikleri sunduğundan ve söz diziminin kullanımı daha kolay olduğundan Bicep'i öneririz. Daha fazla bilgi edinmek için bkz . Hızlı Başlangıç: Bicep ile şablon belirtimi oluşturma ve dağıtma.

Ön koşullar

Etkin aboneliği olan bir Azure hesabı. Ücretsiz hesap oluşturun.

Dekont

Şablon belirtimlerini Azure PowerShell ile kullanmak için 5.0.0 veya sonraki bir sürümü yüklemeniz gerekir. Azure CLI ile kullanmak için 2.14.2 veya sonraki bir sürümü kullanın.

Şablon oluşturma

Yerel bir şablondan şablon belirtimi oluşturursunuz. Aşağıdaki şablonu kopyalayın ve yerel olarak azuredeploy.json adlı bir dosyaya kaydedin. Bu hızlı başlangıçta c:\Templates\azuredeploy.json yoluna kaydettiğiniz varsayılır, ancak herhangi bir yolu kullanabilirsiniz.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.13.1.58284",
      "templateHash": "13120038605368246703"
    }
  },
  "parameters": {
    "storageAccountType": {
      "type": "string",
      "defaultValue": "Standard_LRS",
      "allowedValues": [
        "Premium_LRS",
        "Premium_ZRS",
        "Standard_GRS",
        "Standard_GZRS",
        "Standard_LRS",
        "Standard_RAGRS",
        "Standard_RAGZRS",
        "Standard_ZRS"
      ],
      "metadata": {
        "description": "Storage Account type"
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "The storage account location."
      }
    },
    "storageAccountName": {
      "type": "string",
      "defaultValue": "[format('store{0}', uniqueString(resourceGroup().id))]",
      "metadata": {
        "description": "The name of the storage account"
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2022-09-01",
      "name": "[parameters('storageAccountName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageAccountType')]"
      },
      "kind": "StorageV2",
      "properties": {}
    }
  ],
  "outputs": {
    "storageAccountName": {
      "type": "string",
      "value": "[parameters('storageAccountName')]"
    },
    "storageAccountId": {
      "type": "string",
      "value": "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName'))]"
    }
  }
}

Şablon belirtimi oluşturma

Şablon belirtimi adlı Microsoft.Resources/templateSpecsbir kaynak türüdür. Şablon belirtimi oluşturmak için PowerShell, Azure CLI, portal veya ARM şablonu kullanın.

  1. Şablon belirtimini içerecek yeni bir kaynak grubu oluşturun.

    New-AzResourceGroup `
      -Name templateSpecRG `
      -Location westus2
    
  2. Bu kaynak grubunda şablon belirtimini oluşturun. Yeni şablona storageSpec adını verin.

    New-AzTemplateSpec `
      -Name storageSpec `
      -Version "1.0" `
      -ResourceGroupName templateSpecRG `
      -Location westus2 `
      -TemplateFile "c:\Templates\azuredeploy.json"
    

Şablon belirtimlerini dağıtma

Şablon belirtimini dağıtmak için, şablon dağıtmak için kullandığınız dağıtım komutlarının aynısını kullanın. Dağıtılacak şablon belirtiminin kaynak kimliğini geçirin.

  1. Yeni depolama hesabını içerecek bir kaynak grubu oluşturun.

    New-AzResourceGroup `
      -Name storageRG `
      -Location westus2
    
  2. Şablon belirtiminin kaynak kimliğini alın.

    $id = (Get-AzTemplateSpec -ResourceGroupName templateSpecRG -Name storageSpec -Version "1.0").Versions.Id
    
  3. Şablon belirtimini dağıtın.

    New-AzResourceGroupDeployment `
      -TemplateSpecId $id `
      -ResourceGroupName storageRG
    
  4. Parametreleri bir ARM şablonu için yaptığınız gibi sağlarsınız. Şablon belirtimini depolama hesabı türü için bir parametreyle yeniden dağıtın.

    New-AzResourceGroupDeployment `
      -TemplateSpecId $id `
      -ResourceGroupName storageRG `
      -storageAccountType Standard_GRS
    

Erişim verme

Kuruluşunuzdaki diğer kullanıcıların şablon belirtiminizi dağıtmasına izin vermek istiyorsanız, onlara okuma erişimi vermeniz gerekir. Okuyucu rolünü, paylaşmak istediğiniz şablon belirtimlerini içeren kaynak grubu için bir Microsoft Entra grubuna atayabilirsiniz. Daha fazla bilgi için bkz . Öğretici: Azure PowerShell kullanarak Azure kaynaklarına grup erişimi verme.

Şablonu güncelleştirme

Şablon belirtiminizde şablonda yapmak istediğiniz bir değişikliği tanımladığınız varsayalım. Aşağıdaki şablon, depolama hesabı adı için bir ön ek eklemesi dışında önceki şablonunuzla benzerdir. Aşağıdaki şablonu kopyalayın ve azuredeploy.json dosyanızı güncelleştirin.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageAccountType": {
      "type": "string",
      "defaultValue": "Standard_LRS",
      "allowedValues": [
        "Standard_LRS",
        "Standard_GRS",
        "Standard_ZRS",
        "Premium_LRS"
      ],
      "metadata": {
        "description": "Storage Account type"
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location for all resources."
      }
    },
    "namePrefix": {
      "type": "string",
      "maxLength": 11,
      "defaultValue": "store",
      "metadata": {
        "description": "Prefix for storage account name"
      }
    }
  },
  "variables": {
    "storageAccountName": "[concat(parameters('namePrefix'), uniquestring(resourceGroup().id))]"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-04-01",
      "name": "[variables('storageAccountName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageAccountType')]"
      },
      "kind": "StorageV2",
      "properties": {}
    }
  ],
  "outputs": {
    "storageAccountName": {
      "type": "string",
      "value": "[variables('storageAccountName')]"
    }
  }
}

Şablon belirtim sürümünü güncelleştirme

Düzeltilen şablon için yeni bir şablon belirtimi oluşturmak yerine, var olan şablon belirtimine adlı 2.0 yeni bir sürüm ekleyin. Kullanıcılar dağıtılacak iki sürümü de seçebilir.

  1. Şablon belirtimi için yeni bir sürüm oluşturun.

    New-AzTemplateSpec `
      -Name storageSpec `
      -Version "2.0" `
      -ResourceGroupName templateSpecRG `
      -Location westus2 `
      -TemplateFile "c:\Templates\azuredeploy.json"
    
  2. Yeni sürümü dağıtmak için 2.0 sürümün kaynak kimliğini alın.

    $id = (Get-AzTemplateSpec -ResourceGroupName templateSpecRG -Name storageSpec -Version "2.0").Versions.Id
    
  3. Bu sürümü dağıtın. Depolama hesabı adı için bir ön ek sağlayın.

    New-AzResourceGroupDeployment `
      -TemplateSpecId $id `
      -ResourceGroupName storageRG `
      -namePrefix "demoaccount"
    

Kaynakları temizleme

Bu hızlı başlangıçta dağıttığınız kaynağı temizlemek için oluşturduğunuz her iki kaynak grubunu da silin.

  1. Azure portalında sol menüden Kaynak grubu’nu seçin.

  2. Ada göre filtrele alanına kaynak grubu adını (templateSpecRG ve storageRG) girin.

  3. Kaynak grubu adını seçin.

  4. Üstteki menüden Kaynak grubunu sil’i seçin.

Sonraki adımlar

Bağlantılı şablonlar içeren bir şablon belirtimi oluşturma hakkında bilgi edinmek için bkz . Bağlantılı şablonun şablon belirtimini oluşturma.