Exercício – Utilizar variáveis do Azure Resource Manager para armazenar expressões

Concluído

Neste exercício, você irá armazenar a sua expressão de nome de conta de armazenamento Azure numa variável de modelo Azure Resource Manager (ARM). Usará essa variável para especificar o nome da conta de armazenamento para criar.

Neste exercício, irá utilizar a extensão Azure Resource Manager Tools for Visual Studio Code. Certifique-se de que instala esta extensão no Visual Studio Code.

Adicionar uma variável

Agora, vai adicionar uma variável para armazenar a sua expressão de nome de conta de armazenamento num local do modelo.

  1. No Código do Estúdio Visual, no ficheiro azuredeploy.json , coloque o cursor entre os aparelhos no bloco "variables":{}de variáveis . Prima a tecla Enter.

  2. Escreva var entre as chavetas. Verá uma lista de fragmentos relacionados. Selecione arm-variable:

    Captura de ecrã do Visual Studio Code a mostrar os fragmentos de variáveis de modelos do Azure Resource Manager.

  3. A sua secção de variáveis terá este aspeto:

    "variables": {"variable1": "value"},
    
  4. Altere o nome da variável para unímo-cremeName e altere o valor para "[toLower(parâmetros('storagePrefix'), uniqueString (resourceGroup().id))". A sua secção de variáveis terá este aspeto:

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

    Repare que está a utilizar o parâmetro storagePrefix na expressão em vez de uma cadeia literal. De resto, esta é a mesma expressão que aprendeu na unidade anterior.

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

  6. Todo o ficheiro terá o seguinte aspeto:

    {
        "$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, implementar o modelo

O modelo atualizado não tem alterações face ao recurso que implementou, pelo que implementar este modelo não fará alterações ao seu ambiente do Azure.

Se quiser implementar este modelo com êxito, utilize os comandos da CLI do Azure abaixo. Certifique-se de que utiliza o mesmo valor de parâmetro storagePrefix que utilizou na última implementaçã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 quiser implementar este modelo com êxito, utilize os comandos do Azure PowerShell abaixo. Certifique-se de que utiliza o mesmo valor de parâmetro storagePrefix que utilizou na última implementação.

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