Share via


Zelfstudie: Sjabloonfuncties toevoegen aan uw ARM-sjabloon

In deze zelfstudie leert u hoe u sjabloonfuncties aan uw ARM-sjabloon (Azure Resource Manager) kunt toevoegen. U gebruikt functies om waarden dynamisch samen te stellen. Naast deze systeemsjabloonfuncties kunt u ook door de gebruiker gedefinieerde functies maken. Deze zelfstudie neemt ongeveer 7 minuten in beslag.

Vereisten

U wordt aangeraden om eerst de zelfstudie over parameters te voltooien, maar dit is niet verplicht.

Visual Studio Code moet zijn geïnstalleerd en werken met de extensie Azure Resource Manager Tools en Azure PowerShell of Azure CLI. Zie Hulpprogramma's voor sjablonen voor meer informatie.

Sjabloon controleren

Aan het einde van de vorige zelfstudie had uw sjabloon het volgende JSON-bestand:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageName": {
      "type": "string",
      "minLength": 3,
      "maxLength": 24
    },
    "storageSKU": {
      "type": "string",
      "defaultValue": "Standard_LRS",
      "allowedValues": [
        "Standard_LRS",
        "Standard_GRS",
        "Standard_RAGRS",
        "Standard_ZRS",
        "Premium_LRS",
        "Premium_ZRS",
        "Standard_GZRS",
        "Standard_RAGZRS"
      ]
    }
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-09-01",
      "name": "[parameters('storageName')]",
      "location": "eastus",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    }
  ]
}

Stel dat u de locatie van het Azure-opslagaccount hebt vastgelegd in eastus, maar dat u deze in een andere regio moet implementeren. U moet een parameter toevoegen om flexibiliteit toe te voegen aan uw sjabloon en toe te staan dat deze een andere locatie heeft.

Functie gebruiken

Als u de zelfstudie parameters hebt voltooid, hebt u een functie gebruikt. Toen u "[parameters('storageName')]" toevoegde, hebt u de functie parameters gebruikt. De vierkante haken geven aan dat de syntaxis tussen de haken een sjabloonexpressie is. Resource Manager wordt de syntaxis omgezet in plaats van deze te behandelen als een letterlijke waarde.

Met functies kunt u flexibiliteit aan uw sjabloon toevoegen door dynamische waarden op te halen tijdens de implementatie. In deze zelfstudie gebruikt u een functie om de implementatielocatie van de resourcegroep op te halen.

In het volgende voorbeeld ziet u de benodigde wijzigingen voor het toevoegen van een parameter met de naam location. De standaardwaarde van de parameter roept de functie resourceGroup aan. Deze functie retourneert een -object met informatie over de geïmplementeerde resourcegroep. Een van de objecteigenschappen is een locatie-eigenschap. Wanneer u de standaardwaarde gebruikt, hebben het opslagaccount en de resourcegroep dezelfde locatie. De resources in een groep hebben verschillende locaties.

Kopieer het hele bestand en vervang uw sjabloon door de inhoud ervan.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageName": {
      "type": "string",
      "minLength": 3,
      "maxLength": 24
    },
    "storageSKU": {
      "type": "string",
      "defaultValue": "Standard_LRS",
      "allowedValues": [
        "Standard_LRS",
        "Standard_GRS",
        "Standard_RAGRS",
        "Standard_ZRS",
        "Premium_LRS",
        "Premium_ZRS",
        "Standard_GZRS",
        "Standard_RAGZRS"
      ]
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    }
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-09-01",
      "name": "[parameters('storageName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    }
  ]
}

Sjabloon implementeren

In de vorige zelfstudies hebt u een opslagaccount gemaakt in VS - oost, maar uw resourcegroep wordt gemaakt in VS - centraal. Voor deze zelfstudie maakt u een opslagaccount in dezelfde regio als de resourcegroep. Gebruik de standaardwaarde voor de locatie, zodat u deze parameterwaarde niet hoeft op te geven. U moet een nieuwe naam opgeven voor het opslagaccount omdat u een opslagaccount op een andere locatie maakt. Gebruik bijvoorbeeld store2 als voorvoegsel in plaats van store1.

Zie Resourcegroep maken als u de resourcegroep nog niet hebt gemaakt. In het voorbeeld wordt ervan uitgegaan dat u de variabele templateFile hebt ingesteld op het pad naar het sjabloonbestand, zoals weergegeven in de eerste zelfstudie.

New-AzResourceGroupDeployment `
  -Name addlocationparameter `
  -ResourceGroupName myResourceGroup `
  -TemplateFile $templateFile `
  -storageName "{new-unique-name}"

Notitie

Als de implementatie mislukt, gebruikt u de verbose schakeloptie om informatie op te halen over de resources die worden gemaakt. Gebruik de schakeloptie debug voor meer informatie over foutopsporing.

Implementatie verifiëren

U kunt de implementatie controleren door de resourcegroep te bekijken vanuit de Azure Portal.

  1. Meld u aan bij de Azure-portal.
  2. Selecteer Resourcegroepen in het linkermenu.
  3. Schakel het selectievakje links van myResourceGroup in en selecteer myResourceGroup.
  4. Selecteer de resourcegroep die u hebt gemaakt. De standaardnaam is myResourceGroup.
  5. U ziet dat uw geïmplementeerde opslagaccount en uw resourcegroep dezelfde locatie hebben.

Resources opschonen

Als u verdergaat met de volgende zelfstudie, hoeft u de resourcegroep niet te verwijderen.

Als u nu stopt, wilt u de resourcegroep mogelijk verwijderen.

  1. Selecteer in het Azure Portal Resourcegroepen in het menu links.
  2. Typ de naam van de resourcegroep in het tekstveld Filteren op een veld...
  3. Schakel het selectievakje naast myResourceGroup in en selecteer myResourceGroup of de naam van uw resourcegroep.
  4. Selecteer Resourcegroep verwijderen in het bovenste menu.

Volgende stappen

In deze zelfstudie gebruikt u een functie om de standaardwaarde voor een parameter te definiëren. In deze reeks zelfstudies blijft u functies gebruiken. Aan het einde van de reeks voegt u functies toe aan elke sjabloonsectie.