Exercício – usar arquivos de parâmetro e marcas do Azure Resource Manager

Concluído

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

Este exercício usará a extensão Ferramentas do Azure Resource Manager para Visual Studio Code. É necessário que você instale essa extensão no Visual Studio Code.

Criar uma marca para acompanhar o projeto e o ambiente 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 para o parâmetro storageSKU. Adicione uma vírgula e pressione Enter.

  2. Digite par. Você verá uma lista de snippets de código relacionados.

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

    "parameter1": {
        "type": "string",
        "metadata": {
            "description": "description"
        }
    
  4. Altere parameter1 para resourceTags e altere o valor de "type": para object. Lembre-se de que os parâmetros podem ser dos tipos de dados string, secureString, int, bool, object, secureObject e array. Um link para a 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 para {"Environment": "Dev", "Project": "Tutorial"}.

    O bloco de parâmetro deve ter aparência semelhante à do seguinte 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 esse parâmetro para marcar o recurso de conta de armazenamento. Altere o atributo tags: na definição do recurso:

    "tags": "[parameters('resourceTags')]",
    
  7. O seu arquivo deve ter aparência semelhante à deste:

    {
        "$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 marcas atualizadas

  • Implante o modelo ARM atualizado no Azure. Mantenha o mesmo storagePrefix usado anteriormente.

    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. Mantenha o mesmo storagePrefix usado anteriormente.

    $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 marcas estão na implantação

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

  2. Observe o Ambiente : Dev e Project : Tutorial:

    Screenshot of the Azure portal that shows the selected tags in the Storage account Overview page.

Usar um arquivo de parâmetro

Atualmente, há três parâmetros para preencher cada vez que você implantar esse modelo. Cada usuário, para guardar os próprios valores de parâmetro, pode criar um arquivo. Aqui, você cria um arquivo de parâmetros para usar com o seu modelo.

  1. No Visual Studio Code, crie outro arquivo. Nomeie-o azuredeploy.parameters.dev.json.

  2. Nesse arquivo, você adiciona os valores para os parâmetros de modelo que deseja inserir no modelo para o ambiente de desenvolvimento. Altere um valor de marca para ver a implantação fazer 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. Substitua {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 a ser usado.

  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 assegurar que a implantação foi bem-sucedida e que o valor da marca foi alterado:

    Screenshot of the Azure portal that shows the updated tag values in the Storage account Overview page.

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

  1. No terminal do Visual Studio Code, execute os seguintes 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 assegurar que a implantação foi bem-sucedida e que o valor da marca foi alterado:

    Screenshot of the Azure portal that shows the updated tag values in the Storage account Overview page.

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