Artefato de definição de exibição nos Aplicativos Gerenciados do Azure

A definição de exibição é um artefato opcional nos Aplicativos Gerenciados do Azure. Ela permite que você personalize a página de visão geral e adicione mais exibições, como Métricas e Recursos personalizados.

Este artigo fornece uma visão geral do artefato de definição de exibição e recursos relacionados.

Exibir artefato de definição

O artefato da definição de exibição deve ser nomeado como viewDefinition.json e colocado no mesmo nível que createUiDefinition.json e mainTemplate.json no pacote .zip que cria uma definição de aplicativo gerenciado. Para saber como criar o pacote .zip e publicar uma definição de aplicativo gerenciado, confira Início Rápido: criar e publicar uma definição de aplicativo gerenciado do Azure

Esquema da definição de exibição

O arquivo viewDefinition.json tem apenas uma propriedade views de nível superior, que é uma matriz de exibições. Cada exibição é mostrada na interface do usuário do aplicativo gerenciado como um item de menu separado no sumário. Cada exibição tem uma propriedade kind que define o tipo da exibição. Ela deve ser definida como um dos seguintes valores: Overview, Metrics, CustomResources, Associations. Para obter mais informações, confira o atual Esquema JSON para viewDefinition.json.

Exemplo de JSON para definição de exibição:

{
  "$schema": "https://schema.management.azure.com/schemas/viewdefinition/0.0.1-preview/ViewDefinition.json#",
  "contentVersion": "0.0.0.1",
  "views": [
    {
      "kind": "Overview",
      "properties": {
        "header": "Welcome to your Azure Managed Application",
        "description": "This managed application is for demo purposes only.",
        "commands": [
          {
            "displayName": "Test Action",
            "path": "testAction"
          }
        ]
      }
    },
    {
      "kind": "Metrics",
      "properties": {
        "displayName": "This is my metrics view",
        "version": "1.0.0",
        "charts": [
          {
            "displayName": "Sample chart",
            "chartType": "Bar",
            "metrics": [
              {
                "name": "Availability",
                "aggregationType": "avg",
                "resourceTagFilter": [
                  "tag1"
                ],
                "resourceType": "Microsoft.Storage/storageAccounts",
                "namespace": "Microsoft.Storage/storageAccounts"
              }
            ]
          }
        ]
      }
    },
    {
      "kind": "CustomResources",
      "properties": {
        "displayName": "Test custom resource type",
        "version": "1.0.0",
        "resourceType": "testCustomResource",
        "createUIDefinition": {},
        "commands": [
          {
            "displayName": "Custom Context Action",
            "path": "testCustomResource/testContextAction",
            "icon": "Stop",
            "createUIDefinition": {}
          }
        ],
        "columns": [
          {
            "key": "name",
            "displayName": "Name"
          },
          {
            "key": "properties.myProperty1",
            "displayName": "Property 1"
          },
          {
            "key": "properties.myProperty2",
            "displayName": "Property 2",
            "optional": true
          }
        ]
      }
    },
    {
      "kind": "Associations",
      "properties": {
        "displayName": "Test association resource type",
        "version": "1.0.0",
        "targetResourceType": "Microsoft.Compute/virtualMachines",
        "createUIDefinition": {}
      }
    }
  ]
}

Visão geral

"kind": "Overview"

Quando você fornece essa exibição no viewDefinition.json, ela substitui a página de visão geral padrão no aplicativo gerenciado.

{
  "kind": "Overview",
  "properties": {
    "header": "Welcome to your Azure Managed Application",
    "description": "This managed application is for demo purposes only.",
    "commands": [
      {
        "displayName": "Test Action",
        "path": "testAction"
      }
    ]
  }
}
Propriedade Obrigatório Descrição
header Não O cabeçalho da página de visão geral.
description Não A descrição do seu aplicativo gerenciado.
commands Não A matriz de botões adicionais da barra de ferramentas da página de visão geral, confira comandos.

Captura de tela que mostra a visão geral de um aplicativo gerenciado com um controle de ação de teste para executar um aplicativo de demonstração.

Métricas

"kind": "Metrics"

A exibição de métricas permite coletar e agregar dados dos seus recursos de aplicativo gerenciado em Métricas do Azure Monitor.

{
  "kind": "Metrics",
  "properties": {
    "displayName": "This is my metrics view",
    "version": "1.0.0",
    "charts": [
      {
        "displayName": "Sample chart",
        "chartType": "Bar",
        "metrics": [
          {
            "name": "Availability",
            "aggregationType": "avg",
            "resourceTagFilter": [
              "tag1"
            ],
            "resourceType": "Microsoft.Storage/storageAccounts",
            "namespace": "Microsoft.Storage/storageAccounts"
          }
        ]
      }
    ]
  }
}
Propriedade Obrigatório Descrição
displayName Não O título mostrado da exibição.
version Não A versão da plataforma usada para renderizar a exibição.
charts Sim A matriz de gráficos da página de métricas.

Gráfico

Propriedade Obrigatório Descrição
displayName Sim O título mostrado do gráfico.
chartType Não A visualização a ser usada para esse gráfico. Por padrão, ela usa um gráfico de linhas. Tipos de gráfico compatíveis: Bar, Line, Area, Scatter.
metrics Sim A matriz de métricas a ser plotada nesse gráfico. Para saber mais sobre as métricas com suporte no portal do Azure, confira Métricas com suporte do Azure Monitor.

Metric

Propriedade Obrigatório Descrição
name Sim O nome da métrica.
aggregationType Sim O tipo de agregação a ser usado para essa métrica. Tipos de agregação com suporte: none, sum, min, max, avg, unique, percentile, count
namespace Não Informações adicionais a serem usadas ao determinar o provedor de métricas correto.
resourceTagFilter Não A matriz de marcas de recurso é separada por uma palavra or para a qual as métricas seriam exibidas. Aplica-se na parte superior do filtro de tipo de recurso.
resourceType Sim O tipo de recurso para o qual as métricas seriam exibidas.

Captura de tela que mostra uma página de monitoramento chamada Essa é a minha exibição de métricas para um aplicativo gerenciado.

Recursos personalizados

"kind": "CustomResources"

Você pode definir várias exibições desse tipo. Cada exibição representa um tipo de recurso personalizado e exclusivo do provedor personalizado que você definiu no mainTemplate.json. Para obter uma introdução aos provedores personalizados, confira Visão geral da Visualização de Provedores Personalizados do Azure.

Nessa exibição, você pode executar operações GET, PUT, DELETE e POST para o seu tipo de recurso personalizado. As operações POST podem ser ações personalizadas globais ou ações personalizadas em um contexto de seu tipo de recurso personalizado.

{
  "kind": "CustomResources",
  "properties": {
    "displayName": "Test custom resource type",
    "version": "1.0.0",
    "resourceType": "testCustomResource",
    "icon": "Polychromatic.ResourceList",
    "createUIDefinition": {},
    "commands": [
      {
        "displayName": "Custom Context Action",
        "path": "testCustomResource/testContextAction",
        "icon": "Stop",
        "createUIDefinition": {},
      }
    ],
    "columns": [
      {
        "key": "name",
        "displayName": "Name"
      },
      {
        "key": "properties.myProperty1",
        "displayName": "Property 1"
      },
      {
        "key": "properties.myProperty2",
        "displayName": "Property 2",
        "optional": true
      }
    ]
  }
}
Propriedade Obrigatório Descrição
displayName Sim O título mostrado da exibição. O título deve ser exclusivo para cada exibição de CustomResources no seu viewDefinition.json.
version Não A versão da plataforma usada para renderizar a exibição.
resourceType Sim O tipo de recurso personalizado. Deve ser um tipo de recurso personalizado e exclusivo do seu provedor personalizado.
icon Não O ícone da exibição. A lista de exemplos de ícones é definida no esquema JSON.
createUIDefinition Não Crie um esquema de definição de interface do usuário para o comando criar recurso personalizado. Para obter uma introdução à criação de definições de interface do usuário, consulte Introdução ao CreateUiDefinition.
commands Não A matriz de botões adicionais da barra de ferramentas da exibição CustomResources. Confira comandos.
columns Não A matriz de colunas do recurso personalizado. Se não estiver definida, a coluna name é mostrada por padrão. A coluna deve ter "key" e "displayName". Para key, forneça a chave da propriedade a ser exibida em uma exibição. Se estiver aninhada, use um ponto como delimitador, por exemplo, "key": "name" ou "key": "properties.property1". Para nome de exibição, forneça o nome de exibição da propriedade a ser mostrada em uma exibição. Você também pode fornecer uma propriedade "optional". Quando definida como true, a coluna é oculta em uma exibição por padrão.

Captura de tela que mostra uma página de recursos chamada Tipo de recurso personalizado de teste e o controle Ação de contexto personalizada.

Comandos

A propriedade commands é uma matriz de botões adicionais da barra de ferramentas exibidos na página. Cada comando representa uma ação POST de seu provedor personalizado do Azure definido no mainTemplate.json. Para obter uma introdução aos provedores personalizados, confira Visão geral dos Provedores Personalizados do Azure.

{
  "commands": [
    {
      "displayName": "Start Test Action",
      "path": "testAction",
      "icon": "Start",
      "createUIDefinition": {}
    },
  ]
}
Propriedade Obrigatório Descrição
displayName Sim O nome exibido do botão de comando.
path Sim Deve ser um nome de ação do provedor personalizado. A ação deve ser definida no mainTemplate.json.

Não aceita valores dinâmicos como um URI que é saída de mainTemplate.json.
icon Não O ícone do botão de comando. A lista de exemplos de ícones é definida no esquema JSON.
createUIDefinition Não Crie o esquema de definição da interface do usuário para o comando. Para obter uma introdução à criação de definições de interface do usuário, consulte Introdução ao CreateUiDefinition.

Associações

"kind": "Associations"

Você pode definir várias exibições desse tipo. Essa exibição permite vincular recursos existentes ao aplicativo gerenciado por meio do provedor personalizado que você definiu no mainTemplate.json. Para obter uma introdução aos provedores personalizados, confira Visão geral da Visualização de Provedores Personalizados do Azure.

Nessa exibição, você pode estender os recursos existentes do Azure com base no targetResourceType. Quando um recurso é selecionado, ele cria uma solicitação de integração ao provedor personalizado público, que pode aplicar um efeito colateral ao recurso.

{
  "kind": "Associations",
  "properties": {
    "displayName": "Test association resource type",
    "version": "1.0.0",
    "targetResourceType": "Microsoft.Compute/virtualMachines",
    "createUIDefinition": {}
  }
}
Propriedade Obrigatório Descrição
displayName Sim O título mostrado da exibição. O título deve ser exclusivo para cada exibição de Associations no seu viewDefinition.json.
version Não A versão da plataforma usada para renderizar a exibição.
targetResourceType Sim O tipo de recurso de destino. Esse tipo de recurso é exibido para a integração de recursos.
createUIDefinition Não Crie um esquema de definição de interface do usuário para o comando criar recurso de associação. Para obter uma introdução à criação de definições de interface do usuário, consulte Introdução ao CreateUiDefinition.

Procurando ajuda

Se você tiver dúvidas ou precisar de uma resposta sobre os Aplicativos Gerenciados do Azure, tente perguntar no Stack Overflow. Use a marca azure-managed-app ao postar uma pergunta.

Próximas etapas