Rychlý start: Vytvoření a nasazení specifikace šablony

V tomto rychlém startu se dozvíte, jak zabalit šablonu Azure Resource Manageru (šablonu ARM) do specifikace šablony. Pak tuto specifikaci šablony nasadíte. Specifikace šablony obsahuje šablonu ARM, která nasadí účet úložiště.

Tip

Doporučujeme Bicep, protože nabízí stejné možnosti jako šablony ARM a syntaxe se snadněji používá. Další informace najdete v tématu Rychlý start: Vytvoření a nasazení specifikace šablony pomocí Bicep.

Požadavky

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

Poznámka:

Pokud chcete použít specifikaci šablony s Azure PowerShellem, 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í šablony

Vytvoříte specifikaci šablony z místní šablony. Zkopírujte následující šablonu a uložte ji místně do souboru s názvem azuredeploy.json. V tomto rychlém startu se předpokládá, že jste uložili cestu c:\Templates\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",
  "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'))]"
    }
  }
}

Vytvoření specifikace šablony

Specifikace šablony je typ prostředku s názvem Microsoft.Resources/templateSpecs. Pokud chcete vytvořit specifikaci šablony, použijte PowerShell, Azure CLI, portál nebo šablonu ARM.

  1. Vytvořte novou skupinu prostředků, která bude obsahovat specifikaci šablony.

    New-AzResourceGroup `
      -Name templateSpecRG `
      -Location westus2
    
  2. Vytvořte specifikaci šablony v této skupině prostředků. Zadejte novou specifikaci šablony název storageSpec.

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

Nasazení specifikace šablony

Pokud chcete nasadit specifikaci šablony, použijte stejné příkazy nasazení, jaké byste použili k nasazení šablony. Předejte ID prostředku specifikace šablony pro nasazení.

  1. Vytvořte skupinu prostředků, která bude obsahovat nový účet úložiště.

    New-AzResourceGroup `
      -Name storageRG `
      -Location westus2
    
  2. Získejte ID prostředku specifikace šablony.

    $id = (Get-AzTemplateSpec -ResourceGroupName templateSpecRG -Name storageSpec -Version "1.0").Versions.Id
    
  3. Nasaďte specifikaci šablony.

    New-AzResourceGroupDeployment `
      -TemplateSpecId $id `
      -ResourceGroupName storageRG
    
  4. Parametry zadáte přesně tak, jak byste zadali pro šablonu ARM. Znovu nasaďte specifikaci šablony s parametrem pro typ účtu úložiště.

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

Udělení přístupu

Pokud chcete umožnit ostatním uživatelům ve vaší organizaci nasadit specifikaci šablony, musíte jim udělit přístup pro čtení. Roli Čtenář můžete přiřadit ke skupině prostředků Microsoft Entra, která obsahuje specifikace šablony, které chcete sdílet. Další informace najdete v tématu Kurz: Udělení přístupu ke skupinám k prostředkům Azure pomocí Azure PowerShellu.

Aktualizace šablony

Předpokládejme, že jste identifikovali změnu, kterou chcete v šabloně provést ve specifikaci šablony. Následující šablona se podobá předchozí šabloně s tím rozdílem, že přidá předponu pro název účtu úložiště. Zkopírujte následující šablonu a aktualizujte soubor azuredeploy.json.

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

Aktualizace verze specifikace šablony

Místo vytvoření nové specifikace šablony pro revidovanou šablonu přidejte novou verzi pojmenovanou 2.0 ke stávající specifikaci šablony. Uživatelé můžou zvolit, která verze se má nasadit.

  1. Vytvořte novou verzi specifikace šablony.

    New-AzTemplateSpec `
      -Name storageSpec `
      -Version "2.0" `
      -ResourceGroupName templateSpecRG `
      -Location westus2 `
      -TemplateFile "c:\Templates\azuredeploy.json"
    
  2. Pokud chcete nasadit novou verzi, získejte ID prostředku pro verzi 2.0 .

    $id = (Get-AzTemplateSpec -ResourceGroupName templateSpecRG -Name storageSpec -Version "2.0").Versions.Id
    
  3. Nasaďte tu verzi. Zadejte předponu pro název účtu úložiště.

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

Vyčištění prostředků

Pokud chcete vyčistit prostředek, který jste nasadili v tomto rychlém startu, odstraňte obě skupiny prostředků, které jste vytvořili.

  1. Na webu Azure Portal vyberte v nabídce nalevo Skupina prostředků.

  2. Do pole Filtrovat podle názvu zadejte název skupiny prostředků (templateSpecRG a storageRG).

  3. Vyberte název skupiny prostředků.

  4. V horní nabídce vyberte Odstranit skupinu prostředků.

Další kroky

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