Azure Managed Applications のビュー定義アーティファクト

ビュー定義は Azure Managed Applications のオプションのアーティファクトです。 これを使用すると概要ページをカスタマイズし、メトリックやカスタム リソースなどのビューをさらに追加することができます。

この記事では、ビュー定義アーティファクトとその機能の概要について説明します。

ビュー定義アーティファクト

ビュー定義アーティファクトの名前は viewDefinition.json とし、マネージド アプリケーション定義を作成する .zip パッケージ内で createUiDefinition.json および mainTemplate.json と同じレベルに配置する必要があります。 .zip パッケージを作成してマネージド アプリケーション定義を発行する方法については、Azure マネージド アプリケーションの定義の発行に関する記事を参照してください。

ビュー定義スキーマ

viewDefinition.json ファイルにあるのは、最上位レベルの views プロパティ 1 つのみです。これはビューの配列です。 各ビューはマネージド アプリケーションのユーザー インターフェイスに、目次の個別のメニュー項目として表示されます。 各ビューには、ビューの種類をセットする kind プロパティがあります。 次のいずれかの値を設定する必要があります: OverviewMetricsCustomResourcesAssociations。 詳細については、現在の 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 portal でサポートされるメトリックの詳細については、「Azure Monitor のサポートされるメトリック」を参照してください。

メトリック

プロパティ 必須 説明
name はい メトリックの名前。
aggregationType はい このメトリックに使用する集計の種類。 サポートされている集計の種類: none, sum, min, max, avg, unique, percentile, count
namespace いいえ 適切なメトリックのプロバイダーを決定するときに使用する追加情報。
resourceTagFilter いいえ メトリックが表示されるリソース タグの配列 (単語 or で区切られます)。 リソースの種類のフィルターの上に適用されます。
resourceType はい メトリックが表示されるリソースの種類。

マネージド アプリケーションの

カスタム リソース

"kind": "CustomResources"

この種類のビューは複数定義することができます。 各ビューは、mainTemplate.json で定義したカスタム プロバイダーからの一意のカスタム リソースの種類を表します。 カスタム プロバイダーの概要については、「Azure Custom Providers プレビューの概要」を参照してください。

このビューでは、カスタム リソースの種類に対して 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 いいえ CustomResources ビューの追加のツールバーのボタンの配列。「コマンド」を参照してください。
いいえ カスタム リソースの列の配列。 定義されていない場合、name 列が既定で表示されます。 この列には "key""displayName" を含める必要があります。 キーについては、ビューに表示するプロパティのキーを指定します。 入れ子になっている場合は、"key": "name""key": "properties.property1" のように、ドットを区切り記号として使用します。 表示名については、ビューに表示するプロパティの表示名を指定します。 "optional" プロパティを指定することもできます。 true に設定すると、列がビュー内で既定で非表示となります。

コマンド

commands プロパティは、ページ上に表示される追加のツールバーのボタンの配列です。 各コマンドは、mainTemplate.json で定義された Azure Custom Provider からの POST アクションを示します。 カスタム プロバイダーの概要については、「Azure Custom Providers プレビューの概要」を参照してください。

{
  "commands": [
    {
      "displayName": "Start Test Action",
      "path": "testAction",
      "icon": "Start",
      "createUIDefinition": {}
    },
  ]
}
プロパティ 必須 説明
displayName はい コマンド ボタンの表示名。
path はい カスタム プロバイダーのアクション名である必要があります。 アクション名は mainTemplate.json で定義されている必要があります。

mainTemplate.json から出力される URI のような動的な値は受け入れられません。
icon いいえ コマンド ボタンのアイコン。 例のアイコンの一覧は、JSON スキーマで定義されています。
createUIDefinition いいえ コマンド用の UI 定義作成スキーマ。 UI 定義の作成の概要については、「CreateUiDefinition の基本概念」を参照してください。

Associations

"kind": "Associations"

この種類のビューは複数定義することができます。 このビューを使用すると、mainTemplate.json で定義したカスタム プロバイダーを使用して、既存のリソースをマネージド アプリケーションにリンクすることができます。 カスタム プロバイダーの概要については、「Azure Custom Providers プレビューの概要」を参照してください。

このビューでは、targetResourceType に基づいて既存の Azure リソースを拡張できます。 リソースを選択すると、パブリック カスタム プロバイダーに対するオンボード要求が作成され、これによりリソースに副作用を適用できます。

{
  "kind": "Associations",
  "properties": {
    "displayName": "Test association resource type",
    "version": "1.0.0",
    "targetResourceType": "Microsoft.Compute/virtualMachines",
    "createUIDefinition": {}
  }
}
プロパティ 必須 説明
displayName はい ビューの表示タイトル。 タイトルは viewDefinition.json 内の各 Associations ビューに対して一意である必要があります。
version いいえ ビューのレンダリングに使用されるプラットフォームのバージョン。
targetResourceType はい ターゲット リソースの種類。 このリソースの種類は、リソースのオンボードに表示されます。
createUIDefinition いいえ 関連付けリソース作成コマンド用の UI 定義スキーマを作成します。 UI 定義の作成の概要については、CreateUiDefinition の基本概念に関する記事を参照してください。

ヘルプを探しています

Azure Managed Applications に関して不明な点がある場合には、Stack Overflow で質問してみてください。 同様の質問が既に質問され回答されているため、投稿する前にまず確認してください。 azure-managed-app タグを追加して早く応答を受け取りましょう。

次のステップ