Share 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.

Fooi

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 hebt opgeslagen naar het pad 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. U moet de parameters opgeven op precies dezelfde manier 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 wilt dat andere gebruikers in uw organisatie uw sjabloonspecificatie implementeren, moet u hen leestoegang verlenen. U kunt de rol Lezer toewijzen aan een Microsoft Entra-groep voor de resourcegroep die 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

Stel dat u een wijziging hebt geïdentificeerd die u in de sjabloonspecificatie wilt aanbrengen. De volgende sjabloon is vergelijkbaar met de eerdere sjabloon, behalve dat er een voorvoegsel wordt toegevoegd voor de naam van het opslagaccount. Kopieer de volgende sjabloon, en werk het bestand azuredeploy.json 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 van 2.0 de bestaande sjabloonspecificatie. Gebruikers kunnen 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.