Reutilizar expressões usando variáveis de modelo do Azure Resource Manager
No cenário anterior, você decidiu usar uma expressão composta por várias funções de modelo do ARM (Azure Resource Manager) para criar um nome exclusivo para a conta de armazenamento do Azure. Essa flexibilidade garante que todos os seus clientes possam usar o modelo do ARM para suas implantações. Mas você percebe que adicionar essa expressão em vários locais é um problema para manter o modelo. Você decide usar uma variável para a expressão de nome da conta de armazenamento para definir a expressão em um só lugar e reutilizá-la em todo o modelo.
O que é uma variável de modelo do ARM?
Uma variável de modelo arm é um constructo que contém um valor para uso posterior. As variáveis são mais usadas quando um valor precisa ser especificado em vários lugares em um modelo. Onde quer que a variável seja usada no modelo, o Resource Manager 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 onde quer que um local seja necessário.
Vantagens de usar variáveis de modelo do 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 posso usar variáveis de modelo do ARM?
As variáveis de modelo arm são definidas na variables: {} seção 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 da storageName variável.
"variables": {
"storageName": "[concat(toLower(parameters('storageNamePrefix')), uniqueString(resourceGroup().id))]"
},
Em seguida, você usa a variável no modelo onde quer que precise do nome da conta de armazenamento:
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"name": "[variables('storageName')]",
...
}
]
Recomendações para variáveis de modelo do ARM
As variáveis de modelo são especificadas em minúsculas concatenadas. Eles são mais usados para valores que você precisa especificar mais de uma vez, especialmente se esse valor for uma expressão complexa.
Não use a reference função na seção 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 é interpretado. 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, você não pode alterar a versão sem alterar as propriedades do recurso.