Артефакт определения представления в управляемых приложениях Azure

Определение представления является необязательным артефактом в управляемых приложениях Azure. Оно позволяет настраивать страницу общих сведений и добавлять дополнительные представления, например "Метрики" или "Настраиваемые ресурсы".

В этой статье представлены общие сведения об артефакте определения представления и его возможностях.

Просмотр артефакта определения

Артефакт определения представления должен иметь имя viewDefinition.json и размещаться на том же уровне, что и файлы createUiDefinition.json и mainTemplate.json в ZIP-файле с пакетом, который создает определение управляемого приложения. Чтобы узнать, как создать такой ZIP-файл и опубликовать определение управляемого приложения, изучите статью Публикация определения управляемого приложения Azure

Схема определения представления

Файл viewDefinition.json содержит только одно свойство верхнего уровня views, являющееся массивом представлений. Каждое представление отображается в пользовательском интерфейсе управляемого приложения как отдельный пункт меню в содержании. Каждое представление обладает свойством kind, которое задает тип представления. Для него необходимо задать одно из следующих значений: Overview (обзор), Metrics(метрики), CustomResources (настраиваемые ресурсы), Associations (связи). Дополнительные сведения см. в текущей схеме JSON для viewDefinition.json.

Пример JSON для определения представления:

{
  "$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": {}
      }
    }
  ]
}

Обзор

"kind": "Overview"

Это представление, предоставленное в viewDefinition.json, переопределяет страницу "Обзор" по умолчанию в управляемом приложении.

{
  "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"
      }
    ]
  }
}
Свойство Обязательно Описание
заголовок Нет Заголовок страницы обзора.
description Нет Описание управляемого приложения.
команды Нет Массив дополнительных кнопок на панели инструментов на странице обзора. Подробнее см. в документации по командам.

Снимок экрана, показывающий страницу обзора для управляемого приложения с элементом управления

Метрики

"kind": "Metrics"

Представление метрик позволяет собирать и объединять данные из ресурсов управляемых приложений в Метрики 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"
          }
        ]
      }
    ]
  }
}
Свойство Обязательно Описание
displayName Нет Отображаемое название представления.
version Нет Версия платформы, используемая для визуализации представления.
диаграммы Да Массив диаграмм страницы метрик.

Диаграмма

Свойство Обязательно Описание
displayName Да Отображаемое название диаграммы.
chartType Нет Визуализация, используемая для этой диаграммы. По умолчанию используется график. Поддерживаемые типы диаграмм: Bar, Line, Area, Scatter.
Метрики Да Массив метрик для отображения на этой диаграмме. Дополнительные сведения о метриках, поддерживаемых на портале Azure, см. в разделе Метрики, поддерживаемые Azure Monitor.

Метрика

Свойство Обязательно Описание
name Да Имя метрики.
aggregationType Да Тип агрегирования, используемый для этой метрики. Поддерживаемые типы агрегирования: none, sum, min, max, avg, unique, percentile, count
namespace Нет Дополнительные сведения, используемые при определении правильного поставщика метрик.
resourceTagFilter Нет Массив тегов ресурсов (будет разделяться словом or), для которого будут отображаться метрики. Применяется поверх фильтра типов ресурса.
тип_ресурса Да Тип ресурса, для которого будут отображаться метрики.

Снимок экрана, показывающий страницу мониторинга с именем

Настраиваемые ресурсы

"kind": "CustomResources"

Можно определить несколько представлений этого типа. Каждое представление представляет уникальный тип настраиваемого ресурса из настраиваемого поставщика, определенного в файле mainTemplate.json. Общие сведения о предварительной версии настраиваемых поставщиков Azure см. в этой статье.

В этом представлении можно выполнять операции GET, WHERE, DELETE и POST для типа настраиваемого ресурса. Операции POST могут быть глобальными настраиваемыми действиями или настраиваемыми действиями в контексте типа настраиваемого ресурса.

{
  "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
      }
    ]
  }
}
Свойство Обязательно Описание
displayName Да Отображаемое название представления. Название должно быть уникальным для каждого представления CustomResources в файле viewDefinition.json.
version Нет Версия платформы, используемая для визуализации представления.
тип_ресурса Да Тип настраиваемого ресурса. Должен быть уникальным типом настраиваемого ресурса настраиваемого поставщика.
icon Нет Значок представления. Список примеров значков определен в схеме JSON.
createUiDefinition.json Нет Создайте схему определения пользовательского интерфейса для создания команды настраиваемого ресурса. Введение в создание определений пользовательского интерфейса см. в статье Начало работы с CreateUiDefinition.
команды Нет Массив дополнительных кнопок панели инструментов в представлении CustomResources. Подробнее см. в документации по командам.
столбцы Нет Массив столбцов настраиваемого ресурса. Если не определено, по умолчанию будет отображаться столбец name. Столбец должен иметь "key" и "displayName". В качестве ключа укажите ключ свойства, которое будет отображаться в представлении. При вложении используйте точку в качестве разделителя, например "key": "name" или "key": "properties.property1". В качестве отображаемого имени укажите отображаемое имя свойства, которое будет отображаться в представлении. Можно также указать свойство "optional". Если задано значение true, по умолчанию столбец скрыт в представлении.

Снимок экрана, показывающий страницу ресурсов с именем

Команды

Свойство commands представляет собой массив дополнительных кнопок панели инструментов, отображаемых на странице. Каждая команда представляет действие POST из настраиваемого поставщика Azure, определенного в файле mainTemplate.json. Сведения о настраиваемых поставщиках Azure см. в статье Общие сведения о настраиваемых поставщиках.

{
  "commands": [
    {
      "displayName": "Start Test Action",
      "path": "testAction",
      "icon": "Start",
      "createUIDefinition": {}
    },
  ]
}
Свойство Обязательно Описание
displayName Да Отображаемое имя кнопки команды.
path Да Должен содержать имя действия настраиваемого поставщика. Действие должно быть определено в файле mainTemplate.json.

Не принимает динамические значения, например URI, создаваемые файлом mainTemplate.json.
icon Нет Значок кнопки команды. Список примеров значков определен в схеме JSON.
createUiDefinition.json Нет Создайте схему определения пользовательского интерфейса для команды. Общие сведения о создании определений пользовательского интерфейса см. в статье Начало работы с CreateUiDefinition.

Сопоставления

"kind": "Associations"

Можно определить несколько представлений этого типа. Это представление позволяет связать существующие ресурсы с управляемым приложением с помощью настраиваемого поставщика, определенного в mainTemplate.json. Общие сведения о предварительной версии настраиваемых поставщиков Azure см. в этой статье.

В этом представлении можно расширить существующие ресурсы Azure на основе targetResourceType. При своем выборе ресурс создает запрос на подключение к общедоступному настраиваемому поставщику, который может применить к ресурсу побочный эффект.

{
  "kind": "Associations",
  "properties": {
    "displayName": "Test association resource type",
    "version": "1.0.0",
    "targetResourceType": "Microsoft.Compute/virtualMachines",
    "createUIDefinition": {}
  }
}
Свойство Обязательно Описание
displayName Да Отображаемое название представления. Название должно быть уникальным для каждого представления Associations в файле viewDefinition.json.
version Нет Версия платформы, используемая для визуализации представления.
targetResourceType Да Тип целевого ресурса. Этот тип ресурса будет отображаться для подключения ресурса.
createUiDefinition.json Нет Создайте схему определения пользовательского интерфейса для создания команды ресурса связи. Введение в создание определений пользовательского интерфейса см. в статье Начало работы с CreateUiDefinition.

Требуется помощь?

Если у вас есть вопросы об Управляемых приложениях Azure, вы можете задать их на этой странице. Подобный вопрос, возможно, уже был задан, поэтому перед его публикацией сначала проверьте наличие ответа. Чтобы быстрее получить ответ, добавьте к вопросу тег azure-managed-app!

Дальнейшие действия