Поделиться через


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

Снимок экрана: страница обзора управляемого приложения с элементом управления

Метрики

"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 No Отображаемое название представления.
version No Версия платформы, используемая для визуализации представления.
charts Да Массив диаграмм страницы метрик.

Диаграмма

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

Метрика

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

Снимок экрана: страница мониторинга с именем

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

"kind": "CustomResources"

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

В этом представлении можно выполнять операции GET, PUT, 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 No Версия платформы, используемая для визуализации представления.
resourceType Да Тип настраиваемого ресурса. Должен быть уникальным типом настраиваемого ресурса настраиваемого поставщика.
icon No Значок представления. Список примеров значков определен в схеме JSON.
createUIDefinition No Создайте схему определения пользовательского интерфейса для создания команды настраиваемого ресурса. Общие сведения о создании определений пользовательского интерфейса см. в статье Начало работы с CreateUiDefinition.
commands No Массив дополнительных кнопок панели инструментов в представлении CustomResources. Подробнее см. в документации по командам.
columns No Массив столбцов настраиваемого ресурса. Если столбец не определен 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 No Значок кнопки команды. Список примеров значков определен в схеме JSON.
createUIDefinition No Создайте схему определения пользовательского интерфейса для команды. Общие сведения о создании определений пользовательского интерфейса см. в статье Начало работы с 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 Да Отображаемое название представления. Заголовок должен быть уникальным для каждого представления Ассоциаций в viewDefinition.json.
version No Версия платформы, используемая для визуализации представления.
targetResourceType Да Тип целевого ресурса. Этот тип ресурса отображается для подключения ресурсов.
createUIDefinition No Создайте схему определения пользовательского интерфейса для создания команды ресурса связи. Общие сведения о создании определений пользовательского интерфейса см. в статье Начало работы с CreateUiDefinition.

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

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

Следующие шаги