Partilhar via


Tutorial: Adicionar saídas ao seu modelo do ARM

Neste tutorial, vai aprender a devolver um valor do modelo do Azure Resource Manager (modelo do ARM). Utiliza saídas quando precisa de um valor para um recurso que implementa. Este tutorial demora 7 minutos a concluir.

Pré-requisitos

Recomendamos que conclua o tutorial sobre variáveis, mas não é necessário.

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

Rever modelo

No final do tutorial anterior, o 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": "2021-09-01",
      "name": "[variables('uniqueStorageName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    }
  ]
}

Implementa uma conta de armazenamento, mas não devolve informações sobre a mesma. Poderá ter de capturar propriedades do novo recurso para que fiquem disponíveis mais tarde para referência.

Adicionar saídas

Pode utilizar saídas para devolver valores do modelo. Pode ser útil, por exemplo, obter os pontos finais da sua nova conta de armazenamento.

O exemplo seguinte realça a alteração ao modelo para adicionar um valor de saída. 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
      }
    }
  ],
  "outputs": {
    "storageEndpoint": {
      "type": "object",
      "value": "[reference(variables('uniqueStorageName')).primaryEndpoints]"
    }
  }
}

Existem alguns itens importantes a ter em conta sobre o valor de saída que adicionou.

O tipo de valor devolvido está definido como object, o que significa que devolve um objeto JSON.

Utiliza 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, transmita o nome ou ID de um recurso. Neste caso, vai utilizar a mesma variável que utilizou para criar o nome da conta de armazenamento.

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

Implementar o modelo

Está pronto para implementar o modelo e ver o valor devolvido.

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

Na saída do comando de implementação, verá um objeto semelhante ao exemplo seguinte apenas se o resultado 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/"
}

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.

Rever o seu trabalho

Fez muito nos últimos seis tutoriais. Vamos analisar o que fez. Criou um modelo com parâmetros fáceis de fornecer. O modelo é reutilizável em diferentes ambientes porque permite a personalização e cria dinamicamente os valores necessários. Também devolve informações sobre a conta de armazenamento que pode utilizar no script.

Agora, vamos ver o grupo de recursos e o histórico de implementações.

  1. Inicie sessão no portal do Azure.

  2. No menu esquerdo, selecione Grupos de recursos.

  3. Selecione o grupo de recursos no qual implementou.

  4. Consoante os passos que efetuou, deve ter pelo menos uma e talvez várias contas de armazenamento no grupo de recursos.

  5. Também deve ter várias implementações bem-sucedidas listadas no histórico. Selecione essa ligação.

    Captura de ecrã do portal do Azure a mostrar a ligação implementações.

  6. Verá todas as suas implementações no histórico. Selecione a implementação denominada addoutputs.

    Captura de ecrã do portal do Azure a mostrar o histórico de implementações.

  7. Pode rever as entradas.

    Captura de ecrã do portal do Azure a mostrar as entradas de implementação.

  8. Pode rever os resultados.

    Captura de ecrã do portal do Azure a mostrar as saídas de implementação.

  9. Pode rever o modelo.

    Captura de ecrã do portal do Azure a mostrar o modelo de implementação.

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. No portal do Azure, selecione Grupos de recursos no menu esquerdo.
  2. Escreva o nome do grupo de recursos no campo de texto Filtro para 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, adicionou um valor devolvido ao modelo. No próximo tutorial, irá aprender a exportar um modelo e a utilizar partes desse modelo exportado no seu modelo.