查看 Azure 托管应用程序中的定义项目
视图定义是 Azure 托管应用程序中的可选项目。 使用它可以自定义“概述”页,并添加更多视图,例如“指标”和“自定义”资源。
本文概述视图定义项目及其功能。
视图定义项目
视图定义项目必须命名为 viewDefinition.json,并放置在用于创建托管应用程序定义的 .zip 包中 createUiDefinition.json 和 mainTemplate.json 所在的同一级别。 若要了解如何创建 .zip 包和发布托管应用程序定义,请参阅快速入门:创建和发布 Azure 托管应用程序定义
视图定义架构
viewDefinition.json 文件只有一个顶级 views
属性(视图数组)。 每个视图作为目录中的独立菜单项显示在托管应用程序用户界面中。 每个视图有一个用于设置视图类型的 kind
属性。 该属性必须设置为以下值之一:Overview、Metrics、CustomResources、Associations。 有关详细信息,请参阅最新的 viewDefinition.json 的 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 |
否 | 概述页的标题。 |
description |
否 | 托管应用程序的说明。 |
commands |
否 | “概述”页的更多工具栏按钮的数组,请参阅命令。 |
指标
"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 |
否 | 用于呈现视图的平台版本。 |
charts |
是 | 指标页的图表数组。 |
图表
属性 | 必选 | 说明 |
---|---|---|
displayName |
是 | 图表的显示标题。 |
chartType |
否 | 用于此图表的可视化效果。 默认使用折线图。 支持的图表类型:Bar, Line, Area, Scatter 。 |
metrics |
是 | 要在此图表上绘制的指标数组。 若要详细了解 Azure 门户中支持的指标,请参阅 Azure Monitor 支持的指标。 |
指标
属性 | 必选 | 说明 |
---|---|---|
name |
是 | 指标的名称。 |
aggregationType |
是 | 用于此指标的聚合类型。 支持的聚合类型:none, sum, min, max, avg, unique, percentile, count |
namespace |
否 | 确定正确的指标提供程序时要使用的更多信息。 |
resourceTagFilter |
否 | 要显示其指标的资源标记数组使用单词 or 分隔。 在资源类型筛选器的顶部应用。 |
resourceType |
是 | 要显示其指标的资源类型。 |
自定义资源
"kind": "CustomResources"
可以定义此类型的多个视图。 每个视图表示 mainTemplate.json 中定义的自定义提供程序中的唯一自定义资源类型。
在此视图中,可对自定义资源类型执行 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 |
是 | 视图的显示标题。 标题对于 viewDefinition.json 中的每个 CustomResources 视图应该唯一。 |
version |
否 | 用于呈现视图的平台版本。 |
resourceType |
是 | 自定义资源类型。 必须是自定义提供程序的唯一自定义资源类型。 |
icon |
否 | 视图的图标。 示例图标列表在 JSON 架构中定义。 |
createUIDefinition |
否 | 为“创建自定义资源”命令创建 UI 定义架构。 有关创建 UI 定义的简介,请参阅 CreateUiDefinition 入门。 |
commands |
否 | “自定义资源”视图的更多工具栏按钮的数组,请参阅命令。 |
columns |
否 | 自定义资源的列数组。 如果未定义,则默认显示 name 列。 该列必须具有 "key" 和 "displayName" 。 对于键,请提供要在视图中显示的属性的键。 如果嵌套键,请使用句点作为分隔符,例如 "key": "name" 或 "key": "properties.property1" 。 对于显示名称,请提供要在视图中显示的属性的显示名称。 还可以提供 "optional" 属性。 设置为 true 时,该列默认会在视图中隐藏。 |
命令
commands
属性是页面上显示的更多工具栏按钮的数组。 每个命令表示 mainTemplate.json 中定义的 Azure 自定义提供程序中的一个 POST 操作。
{
"commands": [
{
"displayName": "Start Test Action",
"path": "testAction",
"icon": "Start",
"createUIDefinition": {}
},
]
}
属性 | 必选 | 说明 |
---|---|---|
displayName |
是 | 命令按钮的显示名称。 |
path |
是 | 必须是自定义提供程序操作名称。 该操作必须在 mainTemplate.json 中定义。 不接受动态值,例如从 mainTemplate.json 输出的 URI。 |
icon |
否 | 命令按钮的图标。 示例图标列表在 JSON 架构中定义。 |
createUIDefinition |
否 | 为命令创建 UI 定义架构。 有关创建 UI 定义的简介,请参阅 CreateUiDefinition 入门。 |
关联
"kind": "Associations"
可以定义此类型的多个视图。 使用此视图可以通过 mainTemplate.json 中定义的自定义提供程序,将现有资源链接到托管应用程序。
在此视图中,可以基于 targetResourceType
扩展现有的 Azure 资源。 选择某个资源时,它会向公共自定义提供程序创建加入请求,这会对资源应用副作用。
{
"kind": "Associations",
"properties": {
"displayName": "Test association resource type",
"version": "1.0.0",
"targetResourceType": "Microsoft.Compute/virtualMachines",
"createUIDefinition": {}
}
}
properties | 必选 | 说明 |
---|---|---|
displayName |
是 | 视图的显示标题。 标题对于 viewDefinition.json 中的每个 Associations 视图应该唯一。 |
version |
否 | 用于呈现视图的平台版本。 |
targetResourceType |
是 | 目标资源类型。 将显示此资源类型以供资源加入。 |
createUIDefinition |
否 | 为“创建关联资源”命令创建 UI 定义架构。 有关创建 UI 定义的简介,请参阅 CreateUiDefinition 入门。 |
寻求帮助
如果你遇到了 Azure 托管应用程序方面的问题,请尝试在 Stack Overflow 上提问。 该论坛上可能已有类似问题的解答,因此,在发贴之前请先查看以往的提问。 添加标记 azure-managed-app
可以快速得到回复!
后续步骤
- 有关托管应用程序的简介,请参阅 Azure 托管应用程序概述。