Ćwiczenie — przechowywanie wyrażeń przy użyciu zmiennych usługi Azure Resource Manager

Ukończone

W tym ćwiczeniu zapiszesz wyrażenie nazwy konta usługi Azure Storage w zmiennej szablonu usługi Azure Resource Manager (ARM). Następnie użyjesz tej zmiennej, aby określić nazwę konta magazynu, które chcesz utworzyć.

W tym ćwiczeniu użyjemy Narzędzi usługi Azure Resource Manager dla programu Visual Studio Code. Pamiętaj, aby zainstalować to rozszerzenie w programie Visual Studio Code.

Dodawanie zmiennej

Dodaj zmienną, aby przechowywać nazwę konta pamięci masowej w jednym miejscu w szablonie.

  1. W programie Visual Studio Code w pliku azuredeploy.json umieść kursor między nawiasami klamrowymi w bloku zmiennych "variables":{} i naciśnij Enter.

  2. Wpisz var wewnątrz nawiasów klamrowych. Zostanie wyświetlona lista powiązanych fragmentów kodu. Wybierz zmienną ramienia :

    Zrzut ekranu programu Visual Studio Code przedstawiający fragmenty kodu dla zmiennych szablonu usługi Azure Resource Manager.

  3. Sekcja zmiennych wygląda jak ten fragment kodu:

    "variables": {"variable1": "value"},
    
  4. Zmień nazwę zmiennej na uniqueStorageName, a następnie zmień wartość na "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]". Sekcja zmiennych wygląda następująco w kodzie:

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

    Zwróć uwagę, że używasz parametru storagePrefix w wyrażeniu zamiast ciągu literału. W przeciwnym razie to wyrażenie jest takie samo jak w poprzedniej lekcji.

  5. Użyj zmiennej w sekcji zasobów. Zmień wartości atrybutów name: i displayName na "[variables('uniqueStorageName')]"

  6. Cały plik wygląda następująco:

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

Opcjonalnie wdróż szablon

Zaktualizowany szablon nie zawiera żadnych zmian w wdrożonym zasobie, dlatego wdrożenie tego szablonu nie powoduje wprowadzania żadnych zmian w środowisku platformy Azure.

Jeśli chcesz wdrożyć szablon, aby zobaczyć, jak się powiedzie, użyj następujących poleceń interfejsu wiersza polecenia platformy Azure. Pamiętaj, aby użyć tej samej wartości parametru storagePrefix, która była używana w ostatnim wdrożeniu.

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

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

Jeśli chcesz wdrożyć szablon, aby zobaczyć, jak się powiedzie, użyj następujących poleceń programu Azure PowerShell. Pamiętaj, aby użyć tej samej wartości parametru storagePrefix, która była używana w ostatnim wdrożeniu.

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