Partilhar via


Tutorial: Adicionar variáveis ao seu modelo do ARM

Neste tutorial, vai aprender a adicionar uma variável ao modelo do Azure Resource Manager (modelo arm). As variáveis simplificam os seus modelos. Permitem-lhe escrever uma expressão uma vez e reutilizá-la em todo o modelo. Este tutorial demora 7 minutos a ser concluído.

Pré-requisitos

Recomendamos que conclua o tutorial sobre funções, mas não é necessário.

Tem de ter o Visual Studio Code instalado e a trabalhar com a extensão Azure Resource Manager Tools e Azure PowerShell ou a CLI do Azure. Para obter mais informações, veja ferramentas de modelo.

Rever modelo

No final do tutorial anterior, o modelo tinha o seguinte ficheiro 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 tem de ser exclusivo para continuar facilmente a criar o modelo do ARM. Se concluiu os tutoriais anteriores desta série, está cansado de criar um nome exclusivo. Pode resolver este problema ao adicionar uma variável que cria um nome exclusivo para a sua conta de armazenamento.

Utilizar variável

O exemplo seguinte realça as alterações para adicionar uma variável ao modelo que cria um nome de conta de armazenamento exclusivo. Copie todo o ficheiro e substitua o modelo pelo respetivo 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
      }
    }
  ]
}

Repare que inclui uma variável chamada uniqueStorageName. Esta variável utiliza quatro funções para criar um valor de cadeia.

Já está familiarizado com a função parameters , pelo que não vamos examiná-la.

Também está familiarizado com a função resourceGroup . Neste caso, obtém a id propriedade em vez da location propriedade, conforme mostrado no tutorial anterior. A id propriedade devolve o identificador completo do grupo de recursos, incluindo o ID da subscrição e o nome do grupo de recursos.

A função uniqueString cria um valor hash de 13 carateres. Os parâmetros transmitidos determinam o valor devolvido. Para este tutorial, utilize o ID do grupo de recursos como entrada do valor hash. Isto significa que pode implementar este modelo em diferentes grupos de recursos e obter um valor de cadeia exclusivo diferente. No entanto, obtém o mesmo valor se implementar no mesmo grupo de recursos.

A função concat utiliza valores e combina-os. Para esta variável, utiliza a cadeia do parâmetro e a cadeia da uniqueString função e combina-as numa única cadeia.

O storagePrefix parâmetro permite-lhe transmitir um prefixo que o ajuda a identificar contas de armazenamento. Pode criar a sua própria convenção de nomenclatura que facilita a identificação de contas de armazenamento após a implementação a partir de uma extensa lista de recursos.

Por fim, repare que o nome da conta de armazenamento está agora definido como a variável em vez de um parâmetro.

Implementar o modelo

Vamos implementar o modelo. Implementar este modelo é mais fácil do que os modelos anteriores porque fornece apenas o prefixo para o nome da conta de armazenamento.

Se ainda não criou o grupo de recursos, veja Criar grupo de recursos. O exemplo pressupõe que definiu a templateFile variável para o caminho para o ficheiro de modelo, conforme mostrado no primeiro tutorial.

New-AzResourceGroupDeployment `
  -Name addnamevariable `
  -ResourceGroupName myResourceGroup `
  -TemplateFile $templateFile `
  -storagePrefix "store" `
  -storageSKU Standard_LRS

Nota

Se a implementação falhar, utilize o verbose comutador para obter informações sobre os recursos que estão a ser criados. Utilize o debug comutador para obter mais informações sobre a depuração.

Verificar a implementação

Pode verificar a implementação ao explorar o grupo de recursos a partir do portal do Azure.

  1. Inicie sessão no portal do Azure.
  2. No menu esquerdo, selecione Grupos de recursos.
  3. Selecione o seu grupo de recursos.
  4. Repare que o nome da conta de armazenamento implementada é armazenado, além de uma cadeia de carateres aleatórios.

Limpar os recursos

Se estiver a avançar para o próximo tutorial, não precisa de eliminar o grupo de recursos.

Se estiver a parar agora, poderá querer eliminar o grupo de recursos.

  1. Na portal do Azure, selecione Grupos de recursos no menu esquerdo.
  2. Escreva o nome do grupo de recursos no campo de texto Filtrar por qualquer campo...
  3. Selecione a caixa junto a myResourceGroup e selecione myResourceGroup ou o nome do grupo de recursos.
  4. Selecione Eliminar grupo de recursos no menu superior.

Passos seguintes

Neste tutorial, vai adicionar uma variável que cria um nome de conta de armazenamento exclusivo. No próximo tutorial, irá devolver um valor da conta de armazenamento implementada.