Öğretici: Bağlantılı şablonlarla şablon özellikleri oluşturma

Bir ana şablon ve bağlı şablon ile şablon özellikleri oluşturma hakkında bilgi. ARM şablonlarını, kuruluşta diğer kullanıcılarla paylaşmak için şablon özellikleri kullanırsınız. Bu makalede, dağıtım kaynağının özelliğini kullanarak bir ana şablonu ve bağlı şablonlarını paketleye bir relativePath şablon özellikleri oluşturma işlemi açıklanmıştır.

Önkoşullar

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

Not

Şablon özellikleri ile birlikte kullanmak Azure PowerShell 5.0.0veya sonraki 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.

Bağlı şablonlar oluşturma

Ana şablonu ve bağlı şablonu oluşturun.

Bir şablonun bağlantısını oluşturmak için ana şablonunuz için bir dağıtım kaynağı ekleyin. templateLinközelliğinde, bağlı şablonun göreli yolunu üst şablonun yoluna uygun olarak belirtin.

Bağlantılı şablon üzerinde linkedTemplate.jsolarak çağrılır ve ana şablonun depolandığı yolda yapıtlar adlı bir alt klasöre depolanır. relativePath için aşağıdaki değerlerden birini kullanabilirsiniz:

  • ./artifacts/linkedTemplate.json
  • /artifacts/linkedTemplate.json
  • artifacts/linkedTemplate.json

özelliği her zaman bildirilen şablon dosyasına göredir, bu nedenle linkedTemplate.js'dan çağrılır ve linkedTemplate2.jsüzerinde başka bir linkedTemplate2.jsvarsa aynı yapıtlar alt klasörüne depolanır, üzerinde linkedTemplate.js'de belirtilen relativePath relativePath relativePath yalnızca linkedTemplate2.json olur.

  1. Ana şablonu aşağıdaki JSON ile oluşturun. Ana şablonu yerel azuredeploy.jsolarak kaydedin. Bu öğreticide, üzerinde bir yolac:\Templates\linkedTS\azuredeploy.js ancak herhangi bir yolu kullanabilirsiniz.

    {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
        "location": {
          "type": "string",
          "defaultValue": "westus2",
          "metadata":{
            "description": "Specify the location for the resources."
          }
        },
        "storageAccountType": {
          "type": "string",
          "defaultValue": "Standard_LRS",
          "metadata":{
            "description": "Specify the storage account type."
          }
        }
      },
      "variables": {
        "appServicePlanName": "[concat('plan', uniquestring(resourceGroup().id))]"
      },
      "resources": [
        {
          "type": "Microsoft.Web/serverfarms",
          "apiVersion": "2016-09-01",
          "name": "[variables('appServicePlanName')]",
          "location": "[parameters('location')]",
          "sku": {
            "name": "B1",
            "tier": "Basic",
            "size": "B1",
            "family": "B",
            "capacity": 1
          },
          "kind": "linux",
          "properties": {
            "perSiteScaling": false,
            "reserved": true,
            "targetWorkerCount": 0,
            "targetWorkerSizeId": 0
          }
        },
        {
          "type": "Microsoft.Resources/deployments",
          "apiVersion": "2020-10-01",
          "name": "createStorage",
          "properties": {
            "mode": "Incremental",
            "templateLink": {
              "relativePath": "artifacts/linkedTemplate.json"
            },
            "parameters": {
              "storageAccountType": {
                "value": "[parameters('storageAccountType')]"
              }
            }
          }
        }
      ]
    }
    

    Not

    apiVersion Microsoft.Resources/deployments 2020-06-01 veya sonraki bir sürümde olması gerekir.

  2. Ana şablonun kayded olduğu klasörde artifacts adlı bir dizin oluşturun.

  3. Aşağıdaki JSON ile bağlantılı şablonu oluşturun:

    {
      "$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."
          }
        }
      },
      "variables": {
        "storageAccountName": "[concat('store', uniquestring(resourceGroup().id))]"
      },
      "resources": [
        {
          "type": "Microsoft.Storage/storageAccounts",
          "apiVersion": "2019-04-01",
          "name": "[variables('storageAccountName')]",
          "location": "[parameters('location')]",
          "sku": {
            "name": "[parameters('storageAccountType')]"
          },
          "kind": "StorageV2",
          "properties": {}
        }
      ],
      "outputs": {
        "storageAccountName": {
          "type": "string",
          "value": "[variables('storageAccountName')]"
        }
      }
    }
    
  4. Şablonu artifacts klasörünelinkedTemplate.js olarak kaydedin.

Şablon özellikleri oluşturma

Şablon özellikleri kaynak Gruplarında depolanır. Bir kaynak grubu oluşturun ve ardından aşağıdaki betikle bir şablon özellikleri oluşturun. Şablon özellik adı webSpec'tir.

New-AzResourceGroup `
  -Name templateSpecRG `
  -Location westus2

New-AzTemplateSpec `
  -Name webSpec `
  -Version "1.0.0.0" `
  -ResourceGroupName templateSpecRG `
  -Location westus2 `
  -TemplateFile "c:\Templates\linkedTS\azuredeploy.json"

Bitirerek şablon teknik görünümünü Azure portal aşağıdaki cmdlet'i kullanarak görüntüebilirsiniz:

Get-AzTemplateSpec -ResourceGroupName templatespecRG -Name webSpec

Şablon özellikleri dağıtma

Artık şablon özellikleri dağıtabilirsiniz. Şablon spec'ini dağıtmak, içerdiği şablonu dağıtmaya benzer, ancak şablonun özellik kaynak kimliğini iletirsiniz. Aynı dağıtım komutlarını kullanırsınız ve gerekirse şablon özellikleri için parametre değerlerini iletirsiniz.

New-AzResourceGroup `
  -Name webRG `
  -Location westus2

$id = (Get-AzTemplateSpec -ResourceGroupName templateSpecRG -Name webSpec -Version "1.0.0.0").Versions.Id

New-AzResourceGroupDeployment `
  -TemplateSpecId $id `
  -ResourceGroupName webRG

Sonraki adımlar

Şablon özelimimlerini bağlantılı şablon olarak dağıtma hakkında bilgi edinmek için bkz. Öğretici: Şablon özelliklerine bağlı şablon olarak dağıtma.