Ćwiczenie — używanie zmiennych usługi Azure Resource Manager do przechowywania wyrażeń
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 do utworzenia.
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ą do przechowywania wyrażenia nazwy konta magazynu w jednym miejscu w szablonie.
W programie Visual Studio Code w pliku azuredeploy.json umieść kursor między nawiasami klamrowymi w bloku
"variables":{}
zmiennych i naciśnij klawisz Enter.W nawiasach klamrowych wpisz var. Zostanie wyświetlona lista powiązanych fragmentów kodu. Wybierz pozycję arm-variable:
Sekcja zmiennych wygląda następująco:
"variables": {"variable1": "value"},
Zmień nazwę zmiennej na uniqueStorageName i zmień wartość na "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id))]". Sekcja zmiennych wygląda następująco:
"variables": { "uniqueStorageName": "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]" },
Zauważ, że w wyrażeniu zamiast ciągu literału jest używany parametr
storagePrefix
. Poza tym wyrażenie jest takie samo jak to, które omówiliśmy w ramach poprzedniej lekcji.Użyj zmiennej w sekcji zasobów. Zmień wartości atrybutów
name:
idisplayName
na "[variables('uniqueStorageName')]"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": {} }
Opcjonalne wdrożenie szablonu
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ć ten szablon, aby przekonać się, że można to zrobić pomyślnie, użyj następujących poleceń interfejsu wiersza polecenia platformy Azure. Pamiętaj, aby użyć tej samej wartości parametru storagePrefix
, która została użyta 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ć ten szablon, aby przekonać się, że można to zrobić pomyślnie, użyj następujących poleceń programu Azure PowerShell. Pamiętaj, aby użyć tej samej wartości parametru storagePrefix
, która została użyta 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}