Reutilizar expressões ao utilizar as variáveis do modelo do Azure Resource Manager
No cenário anterior, decidiu utilizar uma expressão composta por várias funções de modelos do 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. Decide utilizar uma variável para a expressão de nome da conta de armazenamento para que possa definir a expressão num local e reutilizá-la em todo o modelo.
O que é uma variável de modelo do Resource Manager?
Uma variável do modelo ARM é uma construção que contém um valor para utilização posterior. A melhor altura para utilizar variáveis é quando um valor precisa de ser especificado em vários locais num modelo. Onde quer que a variável seja utilizada no modelo, o Resource Manager substitui-a pelo valor resolvido.
Por exemplo, tem uma expressão que define um valor para a localização de um 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 na utilização das variáveis do modelo ARM
As variáveis de modelos do Resource Manager permitem-lhe escrever uma expressão uma vez e, em seguida, utilizá-la em vários locais. Além disso, a manutenção da expressão está num único local e o modelo é mais legível.
Como posso utilizar as variáveis de modelos do Resource Manager?
As variáveis de modelos do Resource Manager são definidas na secção variables: {}
do modelo. Por exemplo, eis a expressão para o nome da conta de armazenamento definido na unidade anterior. Agora, está a definir o valor da variável storageName
.
"variables": {
"storageName": "[concat(toLower(parameters('storageNamePrefix')), uniqueString(resourceGroup().id))]"
},
Em seguida, utilize 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 as variáveis de modelos do Resource Manager
As variáveis de modelos são especificadas em CamelCase. São recomendadas para valores que precisa de especificar mais do que uma vez, especialmente se esse valor for uma expressão complexa.
Não utilize a função reference
na secção de variáveis de um modelo. A função reference
é resolvida em runtime e as variáveis são resolvidas quando o modelo é analisado. Além disso, não utilize variáveis para apiVersion
num recurso. A versão da API determina o esquema do recurso e, muitas vezes, não pode alterar a versão sem alterar as propriedades do recurso.