Återanvända uttryck med hjälp av Azure Resource Manager-mallvariabler
I föregående scenario skapade du ett unikt namn för Azure-lagringskontot genom att skapa ett uttryck som använde flera ARM-mallfunktioner (Azure Resource Manager). 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 med uttrycket för lagringskontots namn, 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 som ska användas senare. Variabler är särskilt användbara när ett värde behöver anges på flera ställen i en mall. Oavsett var variabeln används i mallen ersätter Resource Manager den med det matchade 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 variabler för ARM-mallar
Genom att använda ARM-mallvariabler behöver du bara skriva ett uttryck en gång, och kan sedan använda det på flera ställen. Det betyder också att du bara behöver underhålla uttrycket på ett ställe, samtidigt som mallen blir mer lättläst.
Hur gör jag för att använda ARM-mallvariabler?
ARM-mallvariabler definieras i avsnittet variables: {}
i en mall. Här är till exempel uttrycket för namnet på lagringskontot som du definierade i den förra lektionen. Nu definierar det värdet för variabeln storageName
.
"variables": {
"storageName": "[concat(toLower(parameters('storageNamePrefix')), uniqueString(resourceGroup().id))]"
},
Du använder sedan variabeln i mallen överallt där du behöver använda lagringskontots namn:
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"name": "[variables('storageName')]",
...
}
]
Rekommendationer för ARM-mallvariabler
Mallvariabler anges i kamelnotation. De är särskilt användbara för värden som du behöver ange flera gånger, särskilt om värdet är ett komplext uttryck.
Använd inte funktionen reference
i variables-avsnittet i en mall. Funktionen reference
matchas vid körning, och variabler när mallen parsas. Tänk också på att inte använda variabler för apiVersion
med en resurs. API-versionen avgör resursens schema och ofta kan du inte ändra versionen utan att ändra resursens egenskaper.