Exercício - Usar variáveis do Azure Resource Manager para armazenar expressões

Concluído

Neste exercício, você armazena sua expressão de nome de conta de armazenamento do Azure em uma variável de modelo do Azure Resource Manager (ARM). Em seguida, use essa variável para especificar o nome da conta de armazenamento a ser criada.

Neste exercício, usamos o Azure Resource Manager Tools for Visual Studio Code. Certifique-se de instalar essa extensão no Visual Studio Code.

Adicionar uma variável

Adicione uma variável para armazenar a expressão do nome da conta de armazenamento em um só lugar no modelo.

  1. No Visual Studio Code, no arquivo azuredeploy.json, coloque o cursor entre as chaves no bloco de variáveis "variables":{} e pressione Enter.

  2. Digite var dentro das chaves. Você verá uma lista de trechos relacionados. Selecione variável de braço:

    Captura de tela do Visual Studio Code que mostra os trechos para variáveis de modelo do Azure Resource Manager.

  3. Sua seção de variáveis se parece com este código:

    "variables": {"variable1": "value"},
    
  4. Altere o nome da variável para uniqueStorageNamee altere o valor para "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]". Sua seção de variáveis se parece com este código:

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

    Observe que você está usando o parâmetro storagePrefix na expressão em vez de uma cadeia de caracteres literal. Caso contrário, esta expressão é a mesma que você aprendeu na unidade anterior.

  5. Use a variável na seção de recursos. Altere os valores dos atributos name: e displayName para "[variables('uniqueStorageName')]"

  6. O arquivo inteiro se parece com este exemplo:

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

Opcionalmente, implante o modelo

O modelo atualizado não tem alterações no recurso que você implantou, portanto, implantar esse modelo não faz alterações em seu ambiente do Azure.

Se você quiser implantar o modelo para que ele seja bem-sucedido, use os seguintes comandos da CLI do Azure. Certifique-se de usar o mesmo valor de parâmetro storagePrefix que você usou na última implantação.

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

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

Se você quiser implantar o modelo para vê-lo bem-sucedido, use os seguintes comandos do Azure PowerShell. Certifique-se de usar o mesmo valor de parâmetro storagePrefix que você usou na última implantação.

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