Expressies opnieuw gebruiken met behulp van Azure Resource Manager-sjabloonvariabelen

Voltooid

In het vorige scenario hebt u besloten om een expressie te gebruiken die bestaat uit verschillende ARM-sjabloonfuncties (Azure Resource Manager) om een unieke naam te maken voor het Azure-opslagaccount. Deze flexibiliteit zorgt ervoor dat al uw klanten de ARM-sjabloon voor hun implementaties kunnen gebruiken. Maar u ziet dat het toevoegen van deze expressie op verschillende plaatsen een probleem is voor het onderhouden van de sjabloon. U besluit om een variabele te gebruiken voor de expressie voor de naam van het opslagaccount, zodat u de expressie op één plaats kunt definiëren en opnieuw kunt gebruiken in de sjabloon.

Wat is een ARM-sjabloonvariabele?

Een ARM-sjabloonvariabele is een constructie die een waarde bevat voor later gebruik. Variabelen kunnen het beste worden gebruikt wanneer een waarde moet worden opgegeven op verschillende plaatsen in een sjabloon. Waar de variabele ook in de sjabloon wordt gebruikt, vervangt Resource Manager deze door de opgeloste waarde.

U hebt bijvoorbeeld een expressie waarmee een waarde voor een resourcelocatie wordt gedefinieerd. Voor verschillende resources die u in uw sjabloon hebt gedefinieerd, is een locatie vereist. U kunt een variabele maken voor het opslaan van de locatie-expressie en vervolgens de variabele gebruiken waar een locatie is vereist.

Voordelen van het gebruik van ARM-sjabloonvariabelen

Met ARM-sjabloonvariabelen kunt u eenmaal een expressie schrijven en deze vervolgens op verschillende plaatsen gebruiken. Het onderhoud van de expressie bevindt zich ook op één plaats en de sjabloon is beter leesbaar.

Hoe gebruik ik ARM-sjabloonvariabelen?

ARM-sjabloonvariabelen worden gedefinieerd in de sectie variables: {} van een sjabloon. Hier volgt bijvoorbeeld de expressie voor de naam van het opslagaccount dat u in de laatste eenheid hebt gedefinieerd. De waarde voor de variabele storageName wordt nu gedefinieerd.

"variables": {
  "storageName": "[concat(toLower(parameters('storageNamePrefix')), uniqueString(resourceGroup().id))]"
},

Vervolgens gebruikt u de variabele in de sjabloon waar u de naam van het opslagaccount nodig hebt:

"resources": [
  {
    "type": "Microsoft.Storage/storageAccounts",
    "name": "[variables('storageName')]",
    ...
  }
]

Aanbevelingen voor ARM-sjabloonvariabelen

Sjabloonvariabelen worden opgegeven in camel case. Ze worden het beste gebruikt voor waarden die u meer dan één keer moet opgeven, met name als die waarde een complexe expressie is.

Gebruik de functie reference niet in de sectie variabelen van een sjabloon. De reference-functie wordt tijdens runtime opgelost en variabelen worden opgelost wanneer de sjabloon wordt geparseerd. Gebruik ook geen variabelen voor apiVersion op een resource. De API-versie bepaalt het schema van de resource en vaak kunt u de versie niet wijzigen zonder de eigenschappen voor de resource te wijzigen.