Reutilizar expressões usando variáveis de modelo do Azure Resource Manager

Concluído

No cenário anterior, você decidiu usar uma expressão composta por várias funções de modelo do Azure Resource Manager (ARM) para criar um nome exclusivo para a conta de armazenamento do Azure. Essa flexibilidade garante que todos os seus clientes possam usar o modelo ARM para suas implantações. Mas você percebe que adicionar essa expressão em vários lugares é um problema para manter o modelo. Você decide usar uma variável para a expressão de nome da conta de armazenamento para poder definir a expressão em um só lugar e reutilizá-la em todo o modelo.

O que é uma variável de modelo ARM?

Uma variável de modelo ARM é uma construção que contém um valor para uso posterior. As variáveis são melhor usadas quando um valor precisa ser especificado em vários locais em um modelo. Sempre que a variável é usada no modelo, o Gerenciador de Recursos a substitui pelo valor resolvido.

Por exemplo, você tem uma expressão que define um valor para um local de recurso. Vários dos recursos que você definiu em seu modelo exigem um local. Você pode criar uma variável para manter a expressão de local e, em seguida, usar a variável sempre que um local for necessário.

Vantagens de usar variáveis de modelo ARM

As variáveis de modelo ARM permitem que você escreva uma expressão uma vez e, em seguida, use-a em vários lugares. Além disso, a manutenção da expressão está em um só lugar, e o modelo é mais legível.

Como faço para usar variáveis de modelo ARM?

As variáveis de modelo ARM são definidas na seção variables: {} de um modelo. Por exemplo, aqui está a expressão para o nome da conta de armazenamento que você definiu na última unidade. Agora está definindo o valor para a variável storageName.

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

Em seguida, use a variável no modelo sempre que precisar do nome da conta de armazenamento:

"resources": [
  {
    "type": "Microsoft.Storage/storageAccounts",
    "name": "[variables('storageName')]",
    ...
  }
]

Recomendações para variáveis de modelo ARM

As variáveis de modelo são especificadas em camel case. Eles são melhor usados para valores que você precisa especificar mais de uma vez, especialmente se esse valor for uma expressão complexa.

Não use a função reference na seção de variáveis de um modelo. A função reference é resolvida em tempo de execução e as variáveis são resolvidas quando o modelo é analisado. Além disso, não use variáveis para apiVersion em um recurso. A versão da API determina o esquema do recurso e, muitas vezes, não é possível alterar a versão sem alterar as propriedades do recurso.