Exercício - Usar tags e arquivos de parâmetro do Azure Resource Manager

Concluído

Neste exercício, você adiciona tags para ajudar a organizar e controlar seus recursos do Microsoft Azure. Você também usa um arquivo de parâmetro de modelo do Azure Resource Manager (ARM) para permitir configurações de parâmetros diferentes para cada implantação.

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

Criar uma tag para acompanhar o ambiente e o projeto de implantação de recursos

Primeiro, você cria um parâmetro para usar como uma marca de recurso em seu modelo.

  1. No Visual Studio Code, no arquivo azuredeploy.json, coloque o cursor após a chave de fechamento do parâmetro storageSKU. Adicione uma vírgula e pressione Enter.

  2. Tipo par. Você verá uma lista de trechos relacionados.

  3. Selecione arm-param. Lembre-se, esta ação adiciona um parâmetro genérico ao modelo. Parece que este é o código:

    "parameter1": {
        "type": "string",
        "metadata": {
            "description": "description"
        }
    
  4. Altere parameter1 para em resourceTags e altere o valor de "type": para no objeto. Lembre-se de que os parâmetros podem ter os tipos de dados string, secureString, int, bool, object, secureObject e array. Um link para sintaxe de exemplo para esses tipos de parâmetro está no resumo deste módulo.

  5. Adicione um atributo chamado defaultValue: e defina o valor como {"Environment": "Dev", "Project": "Tutorial"}.

    O bloco de parâmetros deve ser semelhante a este código:

    "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"
            ]
        },
        "resourceTags": {
        "type": "object",
        "defaultValue": {
            "Environment": "Dev",
            "Project": "Tutorial"
            }
        }
    },
    
  6. Use este parâmetro para marcar o recurso da conta de armazenamento. Altere o atributo tags: na definição de recurso:

    "tags": "[parameters('resourceTags')]",
    
  7. O seu ficheiro deve ser semelhante a este ficheiro:

    {
        "$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"
                ]
            },
            "resourceTags": {
            "type": "object",
            "defaultValue": {
                "Environment": "Dev",
                "Project": "Tutorial"
            }
        }
       },
        "functions": [],
        "variables": {
        "uniqueStorageName": "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]"
      },
        "resources": [{
            "name": "[variables('uniqueStorageName')]",
            "type": "Microsoft.Storage/storageAccounts",
            "apiVersion": "2019-06-01",
            "tags": "[parameters('resourceTags')]",
            "location": "[resourceGroup().location]",
            "kind": "StorageV2",
            "sku": {
             "name": "[parameters('storageSKU')]"
           }
        }],
        "outputs": {}
    }
    
  8. Salve o arquivo.

Implantar o modelo ARM com tags atualizadas

  • Implante o modelo ARM atualizado no Azure. Certifique-se de usar o mesmo storagePrefix que você usava antes.

    templateFile="azuredeploy.json"
    today=$(date +"%d-%b-%Y")
    DeploymentName="updateTags-"$today
    
    az deployment group create \
        --name $DeploymentName \
        --template-file $templateFile \
        --parameters storagePrefix={your-Prefix} storageSKU=Standard_LRS
    
  • Implante o modelo ARM atualizado no Azure. Certifique-se de usar o mesmo storagePrefix que você usava antes.

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

Verifique se as novas tags estão na implantação

  1. No Azure, selecione o [nome do grupo de recursos da área restrita] grupo de recursos e, em seguida, selecione a conta de armazenamento implantada.

  2. Observe o Ambiente: Dev e o Projeto: Tutorial tags:

    Captura de ecrã do portal do Azure que mostra as etiquetas selecionadas na página Descrição Geral da Conta de Armazenamento.

Usar um arquivo de parâmetro

Atualmente, há três parâmetros a serem preenchidos cada vez que você implantar esse modelo. Cada usuário do modelo pode criar um arquivo para armazenar seus valores de parâmetro. Aqui, você cria um arquivo de parâmetros para usar com seu modelo.

  1. No Visual Studio Code, crie outro arquivo. Chame-lhe azuredeploy.parameters.dev.json.

  2. Neste ficheiro, adiciona-se os valores para os parâmetros de modelo que pretende introduzir no modelo para o ambiente de desenvolvimento. Altere um valor de tag para ver se a implantação faz uma alteração. Por exemplo, você pode alterar projectName para Learn:

    {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
        "storagePrefix": {
          "value": "{unique-prefix}"
        },
        "storageSKU": {
          "value": "Standard_LRS"
        },
        "resourceTags": {
          "value": {
            "Environment": "Dev",
            "Project": "Learn"
          }
        }
      }
    }
    
  3. Certifique-se de substituir {unique-prefix} pelo seu prefixo exclusivo.

  4. Salve o arquivo.

Implantar o modelo com o arquivo de parâmetro

Nesta seção, você implanta o modelo ARM, especificando qual arquivo de parâmetro usar.

  1. No terminal do Visual Studio Code, execute estes comandos da CLI do Azure:

    templateFile="azuredeploy.json"
    devParameterFile="azuredeploy.parameters.dev.json"
    today=$(date +"%d-%b-%Y")
    DeploymentName="addParameterFile-"$today
    
    az deployment group create \
      --name $DeploymentName \
      --template-file $templateFile \
      --parameters $devParameterFile
    
  2. Verifique o Azure para garantir que a implantação foi bem-sucedida e que o valor da tag foi alterado:

    Captura de ecrã do portal do Azure que mostra os valores de etiqueta atualizados na página Visão geral da conta de armazenamento.

  3. Como desafio, crie um arquivo de parâmetros para o ambiente de produção. Altere o caminho do arquivo de parâmetro ao executar o comando a ser implantado no ambiente de produção.

  1. No terminal do Visual Studio Code, execute estes comandos do Azure PowerShell:

    $templateFile = "azuredeploy.json"
    $parameterFile="azuredeploy.parameters.dev.json"
    $today=Get-Date -Format "MM-dd-yyyy"
    $deploymentName="addParameterFile-"+"$today"
    New-AzResourceGroupDeployment `
      -Name $deploymentName `
      -TemplateFile $templateFile `
      -TemplateParameterFile $parameterFile
    
  2. Verifique o Azure para garantir que a implantação foi bem-sucedida e que o valor da tag foi alterado:

    Captura de ecrã do portal do Azure que mostra os valores de etiqueta atualizados na página de Visão Geral da conta de armazenamento.

  3. Como desafio, crie um arquivo de parâmetros para o ambiente de produção. Altere o caminho do arquivo de parâmetro ao executar o comando a ser implantado no ambiente de produção.