Expressies opnieuw gebruiken met behulp van Azure Resource Manager-sjabloonvariabelen

Voltooid

In het vorige scenario hebt u besloten een expressie te gebruiken die bestaat uit verschillende sjabloonfuncties van Azure Resource Manager (ARM) voor het maken van een unieke naam voor het Azure Storage-account. 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 plek 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 worden het beste gebruikt wanneer een waarde moet worden opgegeven op verschillende plaatsen in een sjabloon. Wanneer de variabele wordt gebruikt in de sjabloon, wordt deze door de Resource Manager vervangen door de omgezette 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 de ARM-sjabloonvariabelen kunt u een expressie eenmaal schrijven en deze vervolgens op verschillende plaatsen gebruiken. Het onderhoud van de expressie bevindt zich bovendien op één plek en de sjabloon is beter leesbaar.

Hoe kan ik ARM-sjabloonvariabelen gebruiken?

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

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

Vervolgens gebruikt u deze variabele in de sjabloon overal 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 camelcase. Ze zijn het best 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 functie reference wordt tijdens runtime opgelost en variabelen worden omgezet wanneer de sjabloon wordt geparseerd. Gebruik bovendien geen variabelen voor het apiVersion van een resource. De API-versie bepaalt het schema van de resource en het is vaak niet mogelijk om de versie te wijzigen zonder de eigenschappen van de resource te wijzigen.