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

Tento rychlý start ukazuje, jak zabalit šablonu Azure Resource Manager (šablonu ARM) do specifikace šablony. Pak nasadíte specifikace této šablony. Specifikace šablony obsahuje šablonu ARM, která nasadí účet úložiště.

Požadavky

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

Poznámka

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

Vytvoření šablony

Specifikace šablony se vytváří z místní šablony. Zkopírujte následující šablonu a uložte ji místně do souboru s názvem azuredeploy.json. Tento rychlý start předpokládá, že jste uložili do cesty 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.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'))]"
    }
  }
}

Vytvoření specifikace šablony

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

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

    New-AzResourceGroup `
      -Name templateSpecRG `
      -Location westus2
    
  2. V této skupině prostředků vytvořte specifikace šablony. Zadejte novou specifikace šablony s názvem storageSpec.

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

Specifikace šablony nasazení

Pokud chcete nasadit specifikace šablony, použijte stejné příkazy nasazení, jako byste k nasazení šablony použít. Předejte ID prostředku specifikace šablony, kterou chcete nasadit.

  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 specifikace šablony.

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

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

Udělení přístupu

Pokud chcete ostatním uživatelům ve vaší organizaci nechat nasazovat specifikace šablony, musíte jim udělit přístup pro čtení. Roli Čtenář můžete přiřadit skupině Azure AD pro skupinu prostředků, která obsahuje specifikace šablon, které chcete sdílet. Další informace najdete v tématu Kurz: Udělení skupinovéhopřístupu k prostředkům Azure pomocí Azure PowerShell .

Aktualizace šablony

Předpokládejme, že jste ve specifikací šablony identifikovali změnu, kterou chcete v šabloně provést. Následující šablona je podobná vaší 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 vytváření nové specifikace šablony pro upravenou šablonu přidejte novou verzi s názvem do specifikace existující šablony. Uživatelé mohou zvolit kterou z verzí k 2.0 nasazení.

  1. Vytvořte novou verzi pro specifikaci šablony.

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

    $id = (Get-AzTemplateSpec -ResourceGroupName templateSpecRG -Name storageSpec -Version "2.0").Versions.Id
    
  3. Nasaďte tuto verzi. Zadejte předponu názvu úč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 rámci tohoto rychlého 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í šablony specifikace propojené šablony.