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

Bu hızlı başlangıçta, bir şablon Azure Resource Manager (ARM şablonu) şablon özelliklerine nasıl paketleyebilirsiniz? Ardından, bu şablon özellimlerini dağıtırsınız. Şablon özellikleriniz, depolama hesabı dağıtan bir ARM şablonu içerir.

Önkoşullar

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

Not

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

Şablon oluşturma

Yerel bir şablondan şablon özellikleri oluşturursanız. Aşağıdaki şablonu kopyalayın ve yerel olarak azuredeploy.json adlı bir dosyaya kaydedin. Bu hızlı başlangıçta, bir c:\Templates\azuredeploy.json yoluna kaydedilmiş olduğu varsayıldı 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.4.1008.15138",
      "templateHash": "104821603399126558"
    }
  },
  "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": "Location for all resources."
      }
    },
    "storageAccountName": {
      "type": "string",
      "defaultValue": "[format('store{0}', uniqueString(resourceGroup().id))]",
      "metadata": {
        "description": "The name of the Storage Account"
      }
    }
  },
  "functions": [],
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-04-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 özellikleri oluşturma

Şablon özellikleri adlı bir kaynak t t t Microsoft.Resources/templateSpecs verisidir. Şablon özellikleri oluşturmak için PowerShell, Azure CLI, portal veya ARM şablonu kullanın.

  1. Şablon özellikleri içeren yeni bir kaynak grubu oluşturun.

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

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

Şablon özellikleri dağıtma

Şablon özellikleri dağıtmak için, şablon dağıtmak için kullanabileceğiniz dağıtım komutlarını kullanın. Dağıt dağıtmak için şablon spec'in kaynak kimliğini girin.

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

    New-AzResourceGroup `
      -Name storageRG `
      -Location westus2
    
  2. Şablon teknik özelliklerine göre kaynak kimliğini elde etme.

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

    New-AzResourceGroupDeployment `
      -TemplateSpecId $id `
      -ResourceGroupName storageRG
    
  4. Parametreleri ARM şablonunda olduğu gibi sağlarsınız. Şablon belirteçlerini depolama hesabı türü için bir parametreyle yeniden oluşturun.

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

Erişim verme

Kuruluşta diğer kullanıcıların şablon özelliklerinizi dağıtmasına izin vermek için onlara okuma erişimi vermeniz gerekir. Okuyucu rolünü, paylaşmak istediğiniz şablon özellikleri içeren kaynak grubu için bir Azure AD grubuna atabilirsiniz. Daha fazla bilgi için bkz. Öğretici: Azure PowerShellkullanarak Azure kaynaklarına Azure PowerShell.

Şablonu güncelleştirme

Şablon özelliklerinde şablonda yapmak istediğiniz bir değişiklik olduğunu varsayalım. Aşağıdaki şablon, depolama hesabı adı için bir ön ek ekleme 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 özellikleri sürümünü güncelleştirme

Düzeltilen şablon için yeni bir şablon özellikleri oluşturmak yerine, mevcut şablon özelliklerine adlı yeni bir sürüm ekleyin. Kullanıcılar dağıtmak için 2.0 iki sürümden birini 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 sürümün kaynak KIMLIĞINI alın 2.0 .

    $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 belirtin.

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