Delen via


Quickstart: Sjabloonspecificatie maken en implementeren

In deze quickstart ziet u hoe u een Azure Resource Manager-sjabloon (ARM-sjabloon) in een sjabloonspecificatie inpakt. Vervolgens implementeert u die sjabloonspecificatie. De sjabloonspecificatie bevat een ARM-sjabloon waarmee een opslagaccount wordt geïmplementeerd.

Tip

We raden Bicep aan omdat het dezelfde mogelijkheden biedt als ARM-sjablonen en de syntaxis gemakkelijker te gebruiken is. Zie quickstart: Een sjabloonspecificatie maken en implementeren met Bicep voor meer informatie.

Vereisten

Een Azure-account met een actief abonnement. Gratis een account maken

Notitie

Als u sjabloonspecificatie wilt gebruiken met Azure PowerShell, moet u versie 5.0.0 of hoger installeren. Voor gebruik met Azure CLI hebt u versie 2.14.2 of hoger nodig.

Sjabloon maken

U maakt een sjabloonspecificatie met behulp van een lokaal sjabloon. Kopieer de volgende sjabloon en sla deze lokaal op in een bestand met de naam azuredeploy.json. In deze quickstart wordt ervan uitgegaan dat u het bestand hebt opgeslagen in c:\Templates\azuredeploy.json , maar u kunt elk pad gebruiken.

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

Sjabloonspecificatie maken

De sjabloonspecificatie is een resourcetype met de naam Microsoft.Resources/templateSpecs. Gebruik PowerShell, Azure CLI, de portal of een ARM-sjabloon om een sjabloonspecificatie te maken.

  1. Maak een nieuwe resourcegroep voor de sjabloonspecificatie.

    New-AzResourceGroup `
      -Name templateSpecRG `
      -Location westus2
    
  2. Maak de sjabloonspecificatie in deze resourcegroep. Geef de nieuwe sjabloonspecificatie de naam storageSpec.

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

Sjabloonspecificatie implementeren

Als u een sjabloonspecificatie wilt implementeren, gebruikt u dezelfde implementatieopdrachten die u gebruikt voor het implementeren van een sjabloon. Geef de resource-id van de sjabloonspecificatie door om te implementeren.

  1. Eerst maakt u een resourcegroep die het nieuwe opslagaccount bevat.

    New-AzResourceGroup `
      -Name storageRG `
      -Location westus2
    
  2. Haal de resource-id op van de sjabloonspecificatie.

    $id = (Get-AzTemplateSpec -ResourceGroupName templateSpecRG -Name storageSpec -Version "1.0").Versions.Id
    
  3. Implementeer de sjabloonspecificatie.

    New-AzResourceGroupDeployment `
      -TemplateSpecId $id `
      -ResourceGroupName storageRG
    
  4. Geef precies dezelfde parameters op als voor een ARM-sjabloon. Implementeer de sjabloonspecificatie opnieuw met een parameter voor het type opslagaccount.

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

Toegang verlenen

Als u andere gebruikers in uw organisatie de sjabloonspecificatie wilt laten implementeren, verleent u hen leestoegang. Wijs de rol Lezer toe aan een Microsoft Entra-groep voor de resourcegroep die de sjabloonspecificaties bevat die u wilt delen. Zie Zelfstudie: Een groep toegang verlenen tot Azure-resources met behulp van Azure PowerShell voor meer informatie.

Sjabloon bijwerken

Als u een wijziging wilt aanbrengen in de sjabloonspecificatie, gebruikt u de volgende sjabloon. Deze sjabloon is vergelijkbaar met de eerdere sjabloon, behalve dat deze een voorvoegsel voor de naam van het opslagaccount toevoegt. Kopieer de volgende sjabloon en werk het azuredeploy.json bestand bij.

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

Versie van sjabloonspecificatie bijwerken

In plaats van een nieuwe sjabloonspecificatie te maken voor de herziene sjabloon, voegt u een nieuwe versie toe met de naam aan 2.0 de bestaande sjabloonspecificatie. U kunt kiezen welke versie u wilt implementeren.

  1. Maak een nieuwe versie voor de sjabloonspecificatie.

    New-AzTemplateSpec `
      -Name storageSpec `
      -Version "2.0" `
      -ResourceGroupName templateSpecRG `
      -Location westus2 `
      -TemplateFile "c:\Templates\azuredeploy.json"
    
  2. Als u de nieuwe versie wilt implementeren, haalt u de resource-id op voor de 2.0-versie.

    $id = (Get-AzTemplateSpec -ResourceGroupName templateSpecRG -Name storageSpec -Version "2.0").Versions.Id
    
  3. Implementeer deze versie. Geef een voorvoegsel op voor de opslagaccountnaam.

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

Resources opschonen

Als u de resource wilt opschonen die u in deze quickstart hebt geïmplementeerd, verwijdert u beide resourcegroepen die u hebt gemaakt.

  1. Selecteer Resourcegroep in het linkermenu van Azure Portal.

  2. Voer in het veld Filteren op naam de naam van de resourcegroep (templateSpecRG en storageRG) in.

  3. Selecteer de naam van de resourcegroep.

  4. Selecteer Resourcegroep verwijderen in het bovenste menu.

Volgende stappen

Zie Een sjabloonspecificatie van een gekoppelde sjabloon maken voor meer informatie over het maken van een sjabloonspecificatie die gekoppelde sjablonen bevat.