Manter várias implementações do Azure através de etiquetas e ficheiros de parâmetros do modelo do Azure Resource Manager

Concluído

Há dois recursos dos modelos do Azure Resource Manager (ARM) que você deseja usar ao implantar em mais de um ambiente do Azure. Estas funcionalidades são etiquetas de recursos e ficheiros de parâmetros de modelo do Resource Manager.

À medida que você adiciona mais recursos aos seus ambientes, rapidamente descobre que precisa de uma maneira de identificar a finalidade desses recursos. Os recursos têm um atributo tags: para este fim. À medida que você implanta em mais ambientes, você precisa de uma maneira eficiente de acompanhar os parâmetros de entrada. Os modelos do Resource Manager podem utilizar ficheiros de parâmetros para gerir parâmetros para cada ambiente de implementação.

O que é uma etiqueta de recurso do Azure?

Pode colocar etiquetas nos recursos para adicionar valores que o ajudam a identificar a sua utilização. Por exemplo, você pode adicionar tags que listam o ambiente e o projeto ao qual um recurso pertence. Ou, você pode adicionar tags que identificam um centro de custo ou a equipe proprietária de um recurso. Adicione todos os valores que façam sentido para a sua organização.

O valor da tag é exibido na página de visão geral do recurso do Azure e em relatórios de custo.

Como devo proceder para criar uma etiqueta de recurso do Azure?

Cada recurso tem um atributo tags:. Até agora, tem utilizado o displayName predefinido para a etiqueta da sua conta de armazenamento:

"tags": {
          "displayName": "[parameters('storageName')]"
        },

Para tornar este atributo mais útil pode definir um parâmetro que tenha mais informações e, em seguida, utilizar esse parâmetro no atributo tags:. Por exemplo, pode criar um parâmetro para conter um objeto chamado resourceTags:

"resourceTags": {
    "type": "object",
    "defaultValue": {
        "Environment": "Dev",
        "Project": "Inventory"
        }
    }

Aqui, você criou um objeto para armazenar valores para um nome de ambiente e um nome de projeto, mas pode definir o que quiser.

Em seguida, você pode usar esse parâmetro para qualquer recurso que seja para o ambiente de desenvolvimento e o projeto de inventário; por exemplo, a sua conta de armazenamento.

"resources": [{
        "name": "[variables('uniqueStorageName')]",
        "type": "Microsoft.Storage/storageAccounts",
        "apiVersion": "2019-06-01",
        "tags": "[parameters('resourceTags')]",
        ...
    }],

O que é um ficheiro de parâmetros de modelo do Resource Manager?

Um arquivo de parâmetro de modelo ARM contém valores que são passados para o modelo ARM quando o modelo é executado. Usando um arquivo de parâmetros para cada ambiente no qual um modelo ARM é implantado, você garante que os parâmetros corretos sejam definidos para esse ambiente específico. Além disso, também garante que pode controlar o histórico e a manutenção desses valores de parâmetros no controlo de código fonte.

Como posso utilizar ficheiros de parâmetros de modelo do Resource Manager?

Os ficheiros de parâmetros do modelo do Resource Manager são ficheiros JSON que contêm valores de parâmetros. Por exemplo, para os parâmetros usados no modelo ARM até agora, você pode criar um arquivo de parâmetro de modelo da seguinte maneira:

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
      "storagePrefix": {
        "value": "storage"
      },
      "storageSKU": {
        "value": "Standard_LRS"
      },
      "resourceTags": {
        "value": {
          "Environment": "Dev",
          "Project": "Learn"
        }
      }
    }
  }

Em seguida, poderia criar um ficheiro semelhante a este para cada ambiente. Por exemplo, esses arquivos podem ser chamados de azuredeploy.parameters.dev.json e azuredeploy.parameters.prod.json e manter valores diferentes para os parâmetros.

Para implantar um modelo ARM usando um arquivo de parâmetro, especifique o caminho para o arquivo de parâmetro no comando deployment. Na CLI do Azure, você usa --parameters {path to parameter file}o . No PowerShell, você usa -TemplateParameterFile {path to parameter file}o .

templateFile="{path-to-the-template-file}"
devParameterFile="{path-to-azuredeploy.parameters.dev.json}"
az group create \
  --name myResourceGroupDev \
  --location "East US"
az deployment group create \
  --name devenvironment \
  --resource-group myResourceGroupDev \
  --template-file $templateFile \
  --parameters $devParameterFile