Oefening: Azure Resource Manager-variabelen gebruiken om expressies op te slaan

Voltooid

In deze oefening slaat u de expressie voor de Azure Storage-accountnaam op in een sjabloonvariabele van Azure Resource Manager (ARM). Vervolgens gebruikt u die variabele om de naam op te geven van het opslagaccount dat u wilt maken.

In deze oefening gebruiken we de Azure Resource Manager Tools voor Visual Studio Code. Zorg ervoor dat u deze extensie installeert in Visual Studio Code.

Een variabele toevoegen

Voeg een variabele toe om de expressie voor de naam van uw opslagaccount op één plaats in de sjabloon op te slaan.

  1. Plaats in Visual Studio Code in het bestand azuredeploy.json de cursor tussen de accolades in het variabelenblok "variables":{} en druk op Enter.

  2. Typ var- binnen de haken. U ziet een lijst met verwante fragmenten. Kies arm-variable:

    Screenshot of Visual Studio Code that shows the snippets for Azure Resource Manager template variables.

  3. De sectie variabelen ziet er als volgt uit:

    "variables": {"variable1": "value"},
    
  4. Wijzig de naam van de variabele in uniqueStorageName en wijzig de waarde in [toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)]'. De sectie variabelen ziet er als volgt uit:

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

    U ziet dat u de parameter storagePrefix in de expressie gebruikt in plaats van een letterlijke tekenreeks. Dit is verder dezelfde expressie die u in de vorige les hebt geleerd.

  5. Gebruik de variabele in de sectie resources. Wijzig de waarden van de kenmerken name: en displayName in '[variables('uniqueStorageName')]'

  6. Het hele bestand ziet er als volgt uit:

    {
        "$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"
                ]
            }
       },
        "functions": [],
        "variables": {
        "uniqueStorageName": "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]"
      },
        "resources": [{
            "name": "[variables('uniqueStorageName')]",
            "type": "Microsoft.Storage/storageAccounts",
            "apiVersion": "2019-06-01",
            "tags": {
                "displayName": "[variables('uniqueStorageName')]"
            },
            "location": "[resourceGroup().location]",
            "kind": "StorageV2",
            "sku": {
             "name": "[parameters('storageSKU')]"
           }
        }],
        "outputs": {}
    }
    

U kunt vervolgens de sjabloon implementeren

De bijgewerkte sjabloon bevat geen wijzigingen in de resource die u hebt geïmplementeerd, dus als u deze sjabloon implementeert, worden er geen wijzigingen aangebracht in uw Azure-omgeving.

Als u deze sjabloon echter wilt implementeren om deze te bekijken, gebruikt u de volgende Azure CLI-opdrachten. Zorg ervoor dat u dezelfde parameterwaarde storagePrefix gebruikt die u in de laatste implementatie hebt gebruikt.

templateFile="azuredeploy.json"
today=$(date +"%d-%b-%Y")
DeploymentName="addVariable-"$today

az deployment group create \
  --name $DeploymentName \
  --template-file $templateFile \
  --parameters storagePrefix={your-Prefix}

Als u deze sjabloon echter wilt implementeren om deze te bekijken, gebruikt u de volgende Azure PowerShell-opdrachten. Zorg ervoor dat u dezelfde parameterwaarde storagePrefix gebruikt die u in de laatste implementatie hebt gebruikt.

$templateFile = "azuredeploy.json"
$today=Get-Date -Format "MM-dd-yyyy"
$deploymentName="addVariable-"+"$today"
New-AzResourceGroupDeployment `
  -Name $deploymentName `
  -TemplateFile $templateFile `
  -storagePrefix {your-Prefix}