Självstudie: Lägga till variabler i ARM-mallen
I den här självstudien får du lära dig hur du lägger till en variabel i din Azure Resource Manager-mall (ARM-mall). Variabler förenklar dina mallar. Du kan skriva ett uttryck en gång och återanvända det i mallen. Den här självstudien tar 7 minuter att slutföra.
Förutsättningar
Vi rekommenderar att du slutför självstudien om funktioner, 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"
]
},
"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
}
}
]
}
Namnet på ditt Azure-lagringskonto måste vara unikt för att du enkelt ska kunna fortsätta att skapa ARM-mallen. Om du har slutfört de tidigare självstudierna i den här serien är du trött på att komma med ett unikt namn. Du löser det här problemet genom att lägga till en variabel som skapar ett unikt namn för ditt lagringskonto.
Använd variabel
I följande exempel visas ändringarna för att lägga till en variabel i mallen som skapar ett unikt lagringskontonamn. 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": {
"storagePrefix": {
"type": "string",
"minLength": 3,
"maxLength": 11
},
"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]"
}
},
"variables": {
"uniqueStorageName": "[concat(parameters('storagePrefix'), uniqueString(resourceGroup().id))]"
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-09-01",
"name": "[variables('uniqueStorageName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('storageSKU')]"
},
"kind": "StorageV2",
"properties": {
"supportsHttpsTrafficOnly": true
}
}
]
}
Observera att den innehåller en variabel med namnet uniqueStorageName
. Den här variabeln använder fyra funktioner för att skapa ett strängvärde.
Du är redan bekant med parameterfunktionen , så vi kommer inte att undersöka den.
Du är också bekant med funktionen resourceGroup . I det här fallet får id
du egenskapen i stället för egenskapen location
, som du visade i föregående självstudie. Egenskapen id
returnerar den fullständiga identifieraren för resursgruppen, inklusive prenumerations-ID:t och resursgruppens namn.
Funktionen uniqueString skapar ett hashvärde på 13 tecken. De parametrar som du skickar avgör det returnerade värdet. I den här självstudien använder du resursgrupps-ID:t som indata för hash-värdet. Det innebär att du kan distribuera den här mallen till olika resursgrupper och få ett annat unikt strängvärde. Du får dock samma värde om du distribuerar till samma resursgrupp.
Funktionen concat tar värden och kombinerar dem. För den här variabeln tar den strängen från parametern och strängen uniqueString
från funktionen och kombinerar dem till en sträng.
Med parametern storagePrefix
kan du skicka in ett prefix som hjälper dig att identifiera lagringskonton. Du kan skapa en egen namngivningskonvention som gör det enklare att identifiera lagringskonton efter distributionen från en omfattande lista över resurser.
Observera slutligen att lagringskontonamnet nu är inställt på variabeln i stället för en parameter.
Distribuera mallen
Nu ska vi distribuera mallen. Det är enklare att distribuera den här mallen än de tidigare mallarna eftersom du bara anger prefixet för lagringskontots namn.
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 addnamevariable `
-ResourceGroupName myResourceGroup `
-TemplateFile $templateFile `
-storagePrefix "store" `
-storageSKU Standard_LRS
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.
- Välj din resursgrupp.
- Observera att ditt distribuerade lagringskontonamn är lagrat, plus en sträng med slumpmässiga tecken.
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 lägger du till en variabel som skapar ett unikt lagringskontonamn. I nästa självstudie returnerar du ett värde från det distribuerade lagringskontot.