Compartilhar via


Tutorial: Adicionar saídas ao modelo do Azure Resource Manager

Neste tutorial, você aprenderá a retornar um valor do modelo do ARM (Azure Resource Manager). Você usa saídas quando precisa de um valor para um recurso implantado. Este tutorial leva 7 minutos para ser concluído.

Pré-requisitos

Recomendamos que você conclua o tutorial sobre variáveis, 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 JSON:

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

Ele implanta uma conta de armazenamento, mas não retorna nenhuma informação sobre ela. Talvez seja necessário capturar propriedades do novo recurso para que elas fiquem disponíveis posteriormente para referência.

Adicionar saídas

Você pode usar saídas para retornar valores do modelo. Pode ser útil, por exemplo, obter os endpoints para a sua nova conta de armazenamento.

O exemplo a seguir realça a alteração no modelo para adicionar um valor de saída. 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": "2025-06-01",
      "name": "[variables('uniqueStorageName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    }
  ],
  "outputs": {
    "storageEndpoint": {
      "type": "object",
      "value": "[reference(variables('uniqueStorageName')).primaryEndpoints]"
    }
  }
}

Há alguns itens importantes a serem observados sobre o valor de saída que você adicionou.

O tipo de valor retornado é definido como object, o que significa que ele retorna um objeto JSON.

Ele usa a função de referência para obter o estado de runtime da conta de armazenamento. Para obter o estado de runtime de um recurso, passe o nome ou a ID de um recurso. Nesse caso, você usa a mesma variável usada para criar o nome da conta de armazenamento.

Por fim, retorna a propriedade primaryEndpoints da conta de armazenamento.

Implantar modelo

Você está pronto para implantar o modelo e examinar o valor retornado.

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 addoutputs `
  -ResourceGroupName myResourceGroup `
  -TemplateFile $templateFile `
  -storagePrefix "store" `
  -storageSKU Standard_LRS

Na saída do comando de implantação, você verá um objeto semelhante ao exemplo a seguir somente se a saída estiver no formato JSON:

{
    "dfs": "https://storeluktbfkpjjrkm.dfs.core.windows.net/",
    "web": "https://storeluktbfkpjjrkm.z19.web.core.windows.net/",
    "blob": "https://storeluktbfkpjjrkm.blob.core.windows.net/",
    "queue": "https://storeluktbfkpjjrkm.queue.core.windows.net/",
    "table": "https://storeluktbfkpjjrkm.table.core.windows.net/",
    "file": "https://storeluktbfkpjjrkm.file.core.windows.net/"
}

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.

Examinar seu trabalho

Você fez muito nos últimos seis tutoriais. Vamos ter um momento para examinar o que você fez. Você criou um modelo com parâmetros fáceis de fornecer. O modelo é reutilizável em ambientes diferentes porque permite a personalização e cria dinamicamente os valores necessários. Ele também retorna informações sobre a conta de armazenamento que você pode usar em seu script.

Agora, vamos examinar o grupo de recursos e o histórico de implantação.

  1. Entre no portal do Azure.

  2. No menu à esquerda, selecione Grupos de recursos.

  3. Selecione o grupo de recursos no qual você implantou.

  4. Dependendo das etapas que você fez, você deve ter pelo menos uma e talvez várias contas de armazenamento no grupo de recursos.

  5. Você também deve ter várias implantações bem-sucedidas listadas no histórico. Selecione esse link.

    Captura de tela do portal do Azure mostrando o link de implantações.

  6. Você vê todas as implantações no histórico. Selecione a implantação chamada addoutputs.

    Captura de tela do portal do Azure mostrando o histórico de implantação.

  7. Você pode examinar as entradas.

    Captura de tela do portal do Azure mostrando as entradas de implantação.

  8. Você pode revisar as saídas.

    Captura de tela do portal do Azure mostrando as saídas de implantação.

  9. Você pode examinar o modelo.

    Captura de tela do portal do Azure mostrando o modelo de implantação.

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ê adicionou um valor retornado ao modelo. No próximo tutorial, você aprenderá a exportar um modelo e usar partes desse modelo exportado em seu modelo.