Tutorial: Adicionar variáveis ao seu modelo do ARM
Neste tutorial, você aprenderá a adicionar uma variável ao modelo do ARM (modelo do Azure Resource Manager). As variáveis simplificam seus modelos. Elas permitem gravar uma expressão uma vez e reutilizá-la em todo o modelo. Este tutorial leva 7 minutos para ser concluído.
Pré-requisitos
Recomendamos que você conclua o tutorial sobre as funções, mas isso não é obrigatório.
É necessário ter o Visual Studio Code instalado e funcionando com a extensão das Ferramentas do Azure Resource Manager e o Azure PowerShell ou a CLI do Azure. Para obter mais informações, confira Ferramentas de modelo.
Examinar modelo
No final do tutorial anterior, o modelo tinha o seguinte arquivo JSON:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageName": {
"type": "string",
"minLength": 3,
"maxLength": 24
},
"storageSKU": {
"type": "string",
"defaultValue": "Standard_LRS",
"allowedValues": [
"Standard_LRS",
"Standard_GRS",
"Standard_RAGRS",
"Standard_ZRS",
"Premium_LRS",
"Premium_ZRS",
"Standard_GZRS",
"Standard_RAGZRS"
]
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-09-01",
"name": "[parameters('storageName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('storageSKU')]"
},
"kind": "StorageV2",
"properties": {
"supportsHttpsTrafficOnly": true
}
}
]
}
O nome da conta de armazenamento do Azure precisa ser exclusivo para continuar a criar facilmente o modelo do ARM. Se você concluiu os tutoriais anteriores nesta série, está cansado de criar um nome exclusivo. Você resolve esse problema adicionando uma variável que cria um nome exclusivo para sua conta de armazenamento.
Usar uma variável
O exemplo a seguir realça as alterações para adicionar uma variável ao modelo que cria um nome exclusivo de conta de armazenamento. Copie o arquivo inteiro e substitua o modelo pelo conteúdo.
{
"$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"
]
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"variables": {
"uniqueStorageName": "[concat(parameters('storagePrefix'), uniqueString(resourceGroup().id))]"
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-09-01",
"name": "[variables('uniqueStorageName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('storageSKU')]"
},
"kind": "StorageV2",
"properties": {
"supportsHttpsTrafficOnly": true
}
}
]
}
Observe que ele inclui uma variável chamada uniqueStorageName
. Essa variável usa quatro funções para criar um valor de cadeia de caracteres.
Você já está familiarizado com a função parameters, portanto, não a examinaremos.
Você também está familiarizado com a função resourceGroup. Nesse caso, você obtém a propriedade id
em vez da propriedade location
, conforme mostrado no tutorial anterior. A propriedade id
retorna o identificador completo do grupo de recursos, incluindo a ID da assinatura e o nome do grupo de recursos.
A função uniqueString cria um valor de hash de 13 caracteres. Os parâmetros aprovados determinam o valor retornado. Para este tutorial, você usa a ID do grupo de recursos como a entrada para o valor de hash. Isso significa que você pode implantar esse modelo em grupos de recursos diferentes e obter um valor de cadeia de caracteres exclusivo diferente. Você obterá o mesmo valor, no entanto, se implantar para o mesmo grupo de recursos.
A função concat usa valores e os combina. Para essa variável, ela usa a cadeia de caracteres do parâmetro e a da função uniqueString
, e as combina em uma cadeia de caracteres.
O parâmetro storagePrefix
permite passar um prefixo que ajuda a identificar contas de armazenamento. Você pode criar sua própria convenção de nomenclatura que facilite a identificação das contas de armazenamento após a implantação de uma extensa lista de recursos.
Por fim, observe que o nome da conta de armazenamento agora está definido como a variável em vez de um parâmetro.
Implantar modelo
Vamos implantar o modelo. A implantação desse modelo é mais fácil do que a dos modelos anteriores, pois você fornece apenas o prefixo para o nome da conta de armazenamento.
Caso você não tenha criado o grupo de recursos, confira Criar grupo de recursos. O exemplo pressupõe que você tenha definido a variável templateFile
como o caminho para o arquivo de modelo, conforme mostrado no primeiro tutorial.
New-AzResourceGroupDeployment `
-Name addnamevariable `
-ResourceGroupName myResourceGroup `
-TemplateFile $templateFile `
-storagePrefix "store" `
-storageSKU Standard_LRS
Observação
Se a implantação falhar, use a opção verbose
para obter informações sobre os recursos que estão sendo criados. Use a opção debug
para obter mais informações de depuração.
Verificar implantação
Você pode verificar a implantação explorando o grupo de recursos no portal do Azure.
- Entre no portal do Azure.
- No menu à esquerda, selecione Grupos de recursos.
- Selecione o grupo de recursos.
- Observe que o nome da conta de armazenamento implantado é store, além de uma cadeia de caracteres aleatórios.
Limpar os recursos
Se você estiver passando para o próximo tutorial, não será necessário excluir o grupo de recursos.
Se estiver parando agora, talvez você queira excluir o grupo de recursos.
- No portal do Azure, selecione Grupos de recursos no menu à esquerda.
- Digite o nome do grupo de recursos no campo de texto Filtro para qualquer campo....
- Marque a caixa ao lado de myResourceGroup e selecione myResourceGroup ou o nome do seu grupo de recursos.
- Escolha Excluir grupo de recursos no menu superior.
Próximas etapas
Neste tutorial, você adiciona uma variável que cria um nome de conta de armazenamento exclusivo. No próximo tutorial, você retorna um valor da conta de armazenamento implantada.