Öğretici: Şablon belirtimlerini bağlantılı şablon olarak dağıtma

Bağlantılı dağıtım kullanarak mevcut şablon belirtimlerini dağıtmayı öğrenin. ARM şablonlarını kuruluşunuzdaki diğer kullanıcılarla paylaşmak için şablon özelliklerini kullanırsınız. Şablon belirtimini oluşturduktan sonra Azure PowerShell veya Azure CLI kullanarak şablon belirtimini dağıtabilirsiniz. Ayrıca, bağlı bir şablon kullanarak şablon belirtimini çözümünüzün bir parçası olarak dağıtabilirsiniz.

Önkoşullar

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

Not

şablon belirtimlerini Azure PowerShell 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 belirtimi oluşturma

Hızlı Başlangıç: Depolama hesabı dağıtmaya yönelik bir şablon belirtimi oluşturmak için şablon belirtimi oluşturma ve dağıtma adımlarını izleyin. Sonraki bölümde şablon belirtiminin kaynak grubu adına, şablon belirtimi adına ve şablon belirtimi sürümüne ihtiyacınız vardır.

Ana şablonu oluşturma

ARM şablonunda şablon belirtimini dağıtmak için ana şablonunuza bir dağıtım kaynağı ekleyin. özelliğinde templateLink , bir şablon belirtiminin kaynak kimliğini belirtin. Azuredeploy.json adlı aşağıdaki JSON ile bir şablon oluşturun. Bu öğreticide c:\Templates\deployTS\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",
  "parameters": {
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    },
    "tsResourceGroup":{
      "type": "string",
      "metadata": {
        "Description": "Specifies the resource group name of the template spec."
      }
    },
    "tsName": {
      "type": "string",
      "metadata": {
        "Description": "Specifies the name of the template spec."
      }
    },
    "tsVersion": {
      "type": "string",
      "defaultValue": "1.0.0.0",
      "metadata": {
        "Description": "Specifies the version the template spec."
      }
    },
    "storageAccountType": {
      "type": "string",
      "defaultValue": "Standard_LRS",
      "metadata": {
        "Description": "Specifies the storage account type required by the template spec."
      }
    }
  },
  "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": {
          "id": "[resourceId(parameters('tsResourceGroup'), 'Microsoft.Resources/templateSpecs/versions', parameters('tsName'), parameters('tsVersion'))]"
        },
        "parameters": {
          "storageAccountType": {
            "value": "[parameters('storageAccountType')]"
          }
        }
      }
    }
  ],
  "outputs": {
    "templateSpecId": {
      "type": "string",
      "value": "[resourceId(parameters('tsResourceGroup'), 'Microsoft.Resources/templateSpecs/versions', parameters('tsName'), parameters('tsVersion'))]"
    }
  }
}

Şablon belirtim kimliği işlevi kullanılarak resourceID() oluşturulur. templateSpec geçerli dağıtımın aynı kaynak grubundaysa resourceID() işlevindeki kaynak grubu bağımsız değişkeni isteğe bağlıdır. Kaynak kimliğini doğrudan parametre olarak da geçirebilirsiniz. Kimliği almak için şunu kullanın:

$id = (Get-AzTemplateSpec -ResourceGroupName $resourceGroupName -Name $templateSpecName -Version $templateSpecVersion).Versions.Id

Parametreleri şablon belirtimine geçirmek için söz dizimi şu şekildedir:

"parameters": {
  "storageAccountType": {
    "value": "[parameters('storageAccountType')]"
  }
}

Not

apiVersion değeri Microsoft.Resources/deployments 2020-06-01 veya üzeri olmalıdır.

Şablonu dağıtma

Bağlı şablonu dağıttığınızda, hem web uygulamasını hem de depolama hesabını dağıtır. Dağıtım, diğer ARM şablonlarını dağıtmakla aynıdır.

New-AzResourceGroup `
  -Name webRG `
  -Location westus2

New-AzResourceGroupDeployment `
  -ResourceGroupName webRG `
  -TemplateFile "c:\Templates\deployTS\azuredeploy.json" `
  -tsResourceGroup templateSpecRg `
  -tsName storageSpec `
  -tsVersion 1.0

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.