Självstudie: Lägga till mallfunktioner i ARM-mallen
I den här självstudien får du lära dig hur du lägger till mallfunktioner i din Azure Resource Manager-mall (ARM-mall). Du använder funktioner för att dynamiskt konstruera värden. Förutom de här mallfunktionerna som tillhandahålls av systemet kan du även skapa användardefinierade funktioner. Den här självstudien tar 7 minuter att slutföra.
Förutsättningar
Vi rekommenderar att du slutför självstudien om parametrar, men det krävs inte.
Du måste ha Visual Studio Code installerat och arbeta med Azure Resource Manager Tools-tillägget och antingen Azure PowerShell eller Azure CLI. Mer information finns i mallverktyg.
Granska mall
I slutet av den föregående självstudien hade mallen följande JSON-fil:
{
"$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
}
}
]
}
Anta att du hårdkodade platsen för Azure Storage-kontottill eastus, men du måste distribuera det till en annan region. Du måste lägga till en parameter för att lägga till flexibilitet i mallen och tillåta att den har en annan plats.
Använd funktion
Om du har slutfört självstudien parametrar använde du en funktion. När du lade till "[parameters('storageName')]"
använde du parameterfunktionen . Hakparenteserna anger att syntaxen inom hakparenteserna är ett malluttryck. Resource Manager löser syntaxen i stället för att behandla den som ett literalvärde.
Funktioner ger din mall flexibilitet genom att dynamiskt hämta värden under distributionen. I den här självstudien använder du en funktion för att hämta resursgruppens distributionsplats.
I följande exempel visas ändringarna för att lägga till en parameter med namnet location
. Parameterns standardvärde anropar funktionen resourceGroup . Den här funktionen returnerar ett objekt med information om den distribuerade resursgruppen. En av objektegenskaperna är en platsegenskap. När du använder standardvärdet har lagringskontot och resursgruppen samma plats. Resurserna i en grupp har olika platser.
Kopiera hela filen och ersätt mallen med dess innehåll.
{
"$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
}
}
]
}
Distribuera mallen
I de föregående självstudierna skapade du ett lagringskonto i USA, östra, men resursgruppen skapas i USA, centrala. I den här självstudien skapar du ett lagringskonto i samma region som resursgruppen. Använd standardvärdet för plats, så du behöver inte ange det parametervärdet. Du måste ange ett nytt namn för lagringskontot eftersom du skapar ett lagringskonto på en annan plats. Använd till exempel Store2 som prefix i stället för store1.
Om du inte har skapat resursgruppen kan du läsa Skapa resursgrupp. Exemplet förutsätter att du har angett variabeln templateFile
till sökvägen till mallfilen, som du ser i den första självstudien.
New-AzResourceGroupDeployment `
-Name addlocationparameter `
-ResourceGroupName myResourceGroup `
-TemplateFile $templateFile `
-storageName "{new-unique-name}"
Anteckning
Om distributionen misslyckas använder du växeln verbose
för att hämta information om de resurser som skapas. Använd växeln debug
för att få mer information om felsökning.
Verifiera distributionen
Du kan verifiera distributionen genom att utforska resursgruppen från Azure Portal.
- Logga in på Azure-portalen.
- Välj Resursgrupper på den vänstra menyn.
- Markera kryssrutan till vänster om myResourceGroup och välj myResourceGroup.
- Välj den resursgrupp som du skapade. Standardnamnet är myResourceGroup.
- Observera att ditt distribuerade lagringskonto och resursgruppen har samma plats.
Rensa resurser
Om du går vidare till nästa självstudie behöver du inte ta bort resursgruppen.
Om du stoppar nu kanske du vill ta bort resursgruppen.
- I Azure Portal väljer du Resursgrupper på den vänstra menyn.
- Ange resursgruppens namn i fältet Filter för alla fält... textfält.
- Markera kryssrutan bredvid myResourceGroup och välj myResourceGroup eller resursgruppens namn.
- Välj Ta bort resursgrupp på den översta menyn.
Nästa steg
I den här självstudien använder du en funktion för att definiera standardvärdet för en parameter. I den här självstudieserien fortsätter du att använda funktioner. I slutet av serien lägger du till funktioner i varje mallavsnitt.