Återanvända uttryck med hjälp av Azure Resource Manager-mallvariabler
I föregående scenario bestämde du dig för att använda ett uttryck som består av flera AZURE Resource Manager-mallfunktioner (ARM) för att skapa ett unikt namn för Azure-lagringskontot. Den här flexibiliteten säkerställer att alla dina kunder kan använda ARM-mallen för sina distributioner. Men du märker att det är ett problem att lägga till det här uttrycket på flera platser för att underhålla mallen. Du bestämmer dig för att använda en variabel för lagringskontots namnuttryck så att du kan definiera uttrycket på ett ställe och återanvända det i hela mallen.
Vad är en ARM-mallvariabel?
En ARM-mallvariabel är en konstruktion som innehåller ett värde för senare användning. Variabler används bäst när ett värde måste anges på flera platser i en mall. Oavsett var variabeln används i mallen ersätter Resource Manager den med det lösta värdet.
Du har till exempel ett uttryck som definierar ett värde för en resursplats. Flera av de resurser som du definierade i mallen kräver en plats. Du kan skapa en variabel för att lagra platsuttrycket och sedan använda variabeln där en plats krävs.
Fördelar med att använda ARM-mallvariabler
Med ARM-mallvariabler kan du skriva ett uttryck en gång och sedan använda det på flera platser. Dessutom sker underhållet av uttrycket på ett ställe, och mallen är mer läsbar.
Hur använder jag ARM-mallvariabler?
ARM-mallvariabler definieras i avsnittet variables: {} i en mall. Här är till exempel uttrycket för det lagringskontonamn som du definierade i den senaste lektionen. Nu definierar den värdet för variabeln storageName.
"variables": {
"storageName": "[concat(toLower(parameters('storageNamePrefix')), uniqueString(resourceGroup().id))]"
},
Sedan använder du variabeln i mallen där du behöver lagringskontots namn:
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"name": "[variables('storageName')]",
...
}
]
Rekommendationer för ARM-mallvariabler
Mallvariabler anges i kamelfall. De används bäst för värden som du behöver ange mer än en gång, särskilt om det värdet är ett komplext uttryck.
Använd inte funktionen reference i avsnittet variabler i en mall. Funktionen reference löses vid körning och variabler löses när mallen gängas. Använd inte heller variabler för apiVersion på en resurs. API-versionen avgör schemat för resursen och ofta kan du inte ändra versionen utan att ändra egenskaperna för resursen.