Compartilhar via


Tutorial: Adicionar funções de modelo ao modelo do Azure Resource Manager

Neste tutorial, você aprenderá a adicionar funções de modelo ao modelo do ARM (Azure Resource Manager). Você usa funções para construir valores dinamicamente. Além dessas funções de modelo fornecidas pelo sistema, você também pode criar funções definidas pelo usuário. Este tutorial leva 7 minutos para ser concluído.

Pré-requisitos

Recomendamos que você conclua o tutorial sobre parâmetros, mas isso não é necessário.

Você precisa ter o Visual Studio Code e o Azure PowerShell ou a CLI do Azure. Para obter mais informações, consulte as ferramentas de modelo.

Modelo de revisão

No final do tutorial anterior, seu 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"
      ]
    }
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2025-06-01",
      "name": "[parameters('storageName')]",
      "location": "eastus",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    }
  ]
}

Suponha que você tenha codificado o local da conta de armazenamento do Azure no eastus, mas precisa implantá-lo em outra região. Você precisa adicionar um parâmetro para adicionar flexibilidade ao modelo e permitir que ele tenha um local diferente.

Usar função

Se você concluiu o tutorial de parâmetros, usou uma função. Quando você adicionou "[parameters('storageName')]", usou a função de parâmetros . Os colchetes indicam que a sintaxe dentro dos colchetes é uma expressão de modelo. O Resource Manager resolve a sintaxe em vez de tratá-la como um valor literal.

As funções adicionam flexibilidade ao modelo obtendo valores dinamicamente durante a implantação. Neste tutorial, você usará uma função para obter o local de implantação do grupo de recursos.

O exemplo a seguir realça as alterações para adicionar um parâmetro chamado location. O valor padrão do parâmetro chama a função resourceGroup . Essa função retorna um objeto com informações sobre o grupo de recursos implantado. Uma das propriedades do objeto é uma propriedade de localização. Quando você usa o valor padrão, a conta de armazenamento e o grupo de recursos têm o mesmo local. Os recursos dentro de um grupo têm locais diferentes.

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": {
    "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": "2025-06-01",
      "name": "[parameters('storageName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    }
  ]
}

Implantar modelo

Nos tutoriais anteriores, você criou uma conta de armazenamento no Leste dos EUA, mas seu grupo de recursos é criado no Centro dos EUA. Para este tutorial, você criará uma conta de armazenamento na mesma região que o grupo de recursos. Use o valor padrão para o local, portanto, você não precisa fornecer esse valor de parâmetro. Você precisa fornecer um novo nome para a conta de armazenamento porque está criando uma conta de armazenamento em um local diferente. Use store2, por exemplo, como o prefixo em vez de store1.

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

New-AzResourceGroupDeployment `
  -Name addlocationparameter `
  -ResourceGroupName myResourceGroup `
  -TemplateFile $templateFile `
  -storageName "{new-unique-name}"

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 a implantação

Você pode verificar a implantação explorando o grupo de recursos no portal do Azure.

  1. Entre no portal do Azure.
  2. No menu à esquerda, selecione Grupos de recursos.
  3. Marque a caixa à esquerda de myResourceGroup e selecione myResourceGroup.
  4. Selecione o grupo de recursos que você criou. O nome padrão é myResourceGroup.
  5. Observe que sua conta de armazenamento implantada e seu grupo de recursos têm o mesmo local.

Limpar os recursos

Se você estiver passando para o próximo tutorial, não precisará excluir o grupo de recursos.

Se você estiver parando agora, talvez queira excluir o grupo de recursos.

  1. No portal do Azure, selecione Grupos de recursos no menu à esquerda.
  2. Digite o nome do grupo de recursos no campo Filtrar para qualquer campo... texto.
  3. Marque a caixa ao lado de myResourceGroup e selecione myResourceGroup ou o nome do grupo de recursos.
  4. Escolha Excluir grupo de recursos no menu superior.

Próximas etapas

Neste tutorial, você usará uma função para definir o valor padrão de um parâmetro. Nesta série de tutoriais, você continua a usar funções. Ao final da série, você adiciona funções a cada seção de modelo.