Kurz: Nasazení specifikace šablony jako propojené šablony

Zjistěte, jak nasadit existující specifikaci šablony pomocí propojeného nasazení. Specifikace šablon se používají ke sdílení šablon ARM s ostatními uživateli ve vaší organizaci. Po vytvoření specifikace šablony můžete tuto specifikaci šablony nasadit pomocí Azure PowerShell nebo Azure CLI. Můžete také nasadit specifikaci šablony jako součást řešení pomocí propojené šablony.

Požadavky

Účet Azure s aktivním předplatným. Vytvořte si zdarma účet.

Poznámka

Pokud chcete použít specifikaci šablony s Azure PowerShell, musíte nainstalovat verzi 5.0.0 nebo novější. Pokud ho chcete použít s Azure CLI, použijte verzi 2.14.2 nebo novější.

Vytvoření specifikace šablony

Postupujte podle pokynů v tématu Rychlý start: Vytvoření a nasazení specifikace šablony a vytvořte specifikaci šablony pro nasazení účtu úložiště. V další části budete potřebovat název skupiny prostředků pro specifikaci šablony, název specifikace šablony a verzi specifikace šablony.

Vytvoření hlavní šablony

Pokud chcete nasadit specifikaci šablony v šabloně ARM, přidejte do hlavní šablony prostředek nasazení . templateLink Ve vlastnosti zadejte ID prostředku specifikace šablony. Vytvořte šablonu s následujícím kódem JSON s názvem azuredeploy.json. Tento kurz předpokládá, že jste uložili cestu c:\Templates\deployTS\azuredeploy.json , ale můžete použít libovolnou cestu.

{
  "$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'))]"
    }
  }
}

ID specifikace šablony se generuje pomocí resourceID() funkce . Argument skupiny prostředků ve funkci resourceID() je volitelný, pokud je parametr templateSpec ve stejné skupině prostředků aktuálního nasazení. Jako parametr můžete také přímo předat ID prostředku. K získání ID použijte:

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

Syntaxe pro předávání parametrů do specifikace šablony je:

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

Poznámka

ApiVersion musí Microsoft.Resources/deployments být 2020-06-01 nebo novější.

Nasazení šablony

Když nasadíte propojenou šablonu, nasadí webovou aplikaci i účet úložiště. Nasazení je stejné jako nasazení jiných šablon ARM.

New-AzResourceGroup `
  -Name webRG `
  -Location westus2

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

Další kroky

Informace o vytvoření specifikace šablony, která obsahuje propojené šablony, najdete v tématu Vytvoření specifikace šablony propojené šablony.