Übung: Verwenden von Azure Resource Manager-Variablen zum Speichern von Ausdrücken

Abgeschlossen

In dieser Übung speichern Sie Ihren Azure Storage-Kontonamensausdruck in einer Azure Resource Manager-Vorlagenvariable (ARM). Verwenden Sie dann diese Variable, um den Namen des zu erstellenden Speicherkontos anzugeben.

In dieser Übung verwenden wir die Azure Resource Manager-Tools für Visual Studio Code. Sie müssen diese Erweiterung in Visual Studio Code installieren.

Hinzufügen einer Variablen

Fügen Sie eine Variable hinzu, um den Speicherkonto-Namensausdruck zentral in der Vorlage zu speichern.

  1. Setzen Sie in Visual Studio Code in der Datei azuredeploy.json Ihren Cursor zwischen die Klammern im Variablenblock "variables":{} und drücken Sie die Eingabetaste.

  2. Geben Sie innerhalb der Klammern var ein. Es wird eine Liste verwandter Codeausschnitte angezeigt. Wählen Sie arm-variable aus:

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

  3. Ihr Variablenabschnitt sollte wie folgender Code aussehen:

    "variables": {"variable1": "value"},
    
  4. Ändern Sie den Namen der Variablen in uniqueStorageName, und ändern Sie den Wert in "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]". Ihr Variablenabschnitt sollte wie folgender Code aussehen:

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

    Beachten Sie, dass Sie den storagePrefix-Parameter im Ausdruck anstelle einer Literalzeichenfolge verwenden. Ansonsten ist dies derselbe Ausdruck, den Sie in der vorherigen Einheit kennengelernt haben.

  5. Verwenden Sie die Variable im Abschnitt „resources“. Ändern Sie die Werte der Attribute name: und displayName in "[variables('uniqueStorageName')]".

  6. Die gesamte Datei sieht wie in diesem Beispiel aus:

    {
        "$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": {}
    }
    

Optionales Bereitstellen der Vorlage

Die aktualisierte Vorlage weist keine Änderungen an der Ressource auf, die Sie bereitgestellt haben, sodass die Bereitstellung dieser Vorlage keine Änderungen an Ihrer Azure-Umgebung vornimmt.

Wenn Sie diese Vorlage jedoch bereitstellen möchten, um eine erfolgreiche Bereitstellung zu überprüfen, verwenden Sie die folgenden Azure CLI-Befehle. Achten Sie darauf, dass Sie den gleichen storagePrefix-Parameterwert verwenden, den Sie in der letzten Bereitstellung verwendet haben.

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

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

Wenn Sie diese Vorlage jedoch bereitstellen möchten, um eine erfolgreiche Bereitstellung zu überprüfen, verwenden Sie die folgenden Azure PowerShell-Befehle. Achten Sie darauf, dass Sie den gleichen storagePrefix-Parameterwert verwenden, den Sie in der letzten Bereitstellung verwendet haben.

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