Exercício – Utilizar as etiquetas e os ficheiros de parâmetro do Azure Resource Manager

Concluído

Neste exercício, vai adicionar etiquetas para ajudar a organizar e monitorizar os seus recursos do Microsoft Azure. Também vai utilizar um ficheiro de parâmetro de modelo do Resource Manager para diferentes configurações de parâmetro para cada implementação.

Este exercício utiliza a extensão Azure Resource Manager Tools para Visual Studio Code. Certifique-se de que instala esta extensão no Visual Studio Code.

Criar uma etiqueta para controlar o projeto e o ambiente da implementação do recurso

Comece por criar um parâmetro para utilizar como etiqueta de recurso no seu modelo.

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

  2. Escreva par. Verá uma lista de fragmentos relacionados.

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

    "parameter1": {
        "type": "string",
        "metadata": {
            "description": "description"
        }
    
  4. Altere parameter1 para resourceTags e altere o valor de "type": para object. Tenha em atenção que os parâmetros podem ter string, secureString, int, bool, object, secureObject e tipos de dados de matriz. No resumo deste módulo, irá encontrar uma ligação para sintaxe exemplificativa destes tipos de parâmetros.

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

    O bloco de parâmetros deverá ter um aspeto 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. Utilize este parâmetro para etiquetar o seu recurso da conta de armazenamento. Altere o atributo tags: na definição do recurso:

    "tags": "[parameters('resourceTags')]",
    
  7. O seu ficheiro deverá 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"
                ]
            },
            "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. Guarde o ficheiro.

Implementar o modelo ARM com as etiquetas atualizadas

  • Implemente o modelo ARM atualizado no Azure. Certifique-se de que utiliza o mesmo storagePrefix que utilizou 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
    
  • Implemente o modelo ARM atualizado no Azure. Certifique-se de que utiliza o mesmo storagePrefix que utilizou 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
    

Verificar se as novas etiquetas estão na implementaçã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 tags:

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

Utilizar um ficheiro de parâmetro

Atualmente, existem três parâmetros para preencher de cada vez que implementar este modelo. Cada utilizador do modelo pode criar um ficheiro para manter os respetivos valores de parâmetro. Aqui, pode criar um ficheiro de parâmetro para utilizar com o seu modelo.

  1. No Visual Studio Code, crie outro ficheiro. Dê-lhe o nome azuredeploy.parameters.dev.json.

  2. Neste ficheiro, pode colocar os valores dos parâmetros de modelo pretendidos no modelo para o ambiente da implementação. Mude um valor de etiqueta para verificar que a implementação faz uma alteração. Por exemplo, 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 que substitui {unique-prefix} pelo seu prefixo exclusivo.

  4. Guarde o ficheiro.

Implementar o modelo com o ficheiro de parâmetro

Nesta secção, irá implementar o modelo do Resource Manager no qual se especifica o ficheiro de parâmetro a utilizar.

  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 se certificar de que a implementação foi bem-sucedida e se o valor da etiqueta mudou:

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

  3. Em título de desafio, crie um ficheiro de parâmetro para o ambiente de produção. Altere o caminho do ficheiro do parâmetro quando executar o comando para implementar 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 se certificar de que a implementação foi bem-sucedida e se o valor da etiqueta mudou:

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

  3. Em título de desafio, crie um ficheiro de parâmetro para o ambiente de produção. Altere o caminho do ficheiro do parâmetro quando executar o comando para implementar no ambiente de produção.