Partilhar via


A estrutura dos painéis do Azure

Este documento percorre a estrutura de um painel do Azure, usando o seguinte painel como exemplo:

Captura de ecrã de um dashboard de exemplo no portal do Azure.

Como os painéis compartilhados do Azure são recursos, esse painel pode ser representado como JSON. Você pode baixar a representação JSON de um painel selecionando Exportar e, em seguida, Baixar no portal do Azure.

Exemplo de painel JSON

O JSON a seguir representa o painel de exemplo mostrado na seção anterior.

{
  "properties": {
    "lenses": [
      {
        "order": 0,
        "parts": [
          {
            "position": {
              "x": 0,
              "y": 0,
              "colSpan": 3,
              "rowSpan": 2
            },
            "metadata": {
              "inputs": [],
              "type": "Extension/HubsExtension/PartType/MarkdownPart",
              "settings": {
                "content": {
                  "settings": {
                    "content": "## Azure Virtual Machines Overview\r\nNew team members should watch this video to get familiar with Azure Virtual Machines.",
                    "markdownUri": null
                  }
                }
              }
            }
          },
          {
            "position": {
              "x": 3,
              "y": 0,
              "colSpan": 8,
              "rowSpan": 4
            },
            "metadata": {
              "inputs": [],
              "type": "Extension/HubsExtension/PartType/MarkdownPart",
              "settings": {
                "content": {
                  "settings": {
                    "content": "This is the team dashboard for the test VM we use on our team. Here are some useful links:\r\n\r\n1. [Create a Linux virtual machine](https://docs.microsoft.com/azure/virtual-machines/linux/quick-create-portal)\r\n1. [Create a Windows virtual machine](https://docs.microsoft.com/azure/virtual-machines/windows/quick-create-portal)\r\n1. [Create a virtual machine scale set](https://docs.microsoft.com/azure/virtual-machine-scale-sets/quick-create-portal)",
                    "title": "Test VM Dashboard",
                    "subtitle": "Contoso",
                    "markdownUri": null
                  }
                }
              }
            }
          },
          {
            "position": {
              "x": 0,
              "y": 2,
              "colSpan": 3,
              "rowSpan": 2
            },
            "metadata": {
              "inputs": [],
              "type": "Extension/HubsExtension/PartType/VideoPart",
              "settings": {
                "content": {
                  "settings": {
                    "src": "https://www.youtube.com/watch?v=rOiSRkxtTeU",
                    "autoplay": false
                  }
                }
              }
            }
          },
          {
            "position": {
              "x": 0,
              "y": 4,
              "colSpan": 11,
              "rowSpan": 3
            },
            "metadata": {
              "inputs": [
                {
                  "name": "queryInputs",
                  "value": {
                    "timespan": {
                      "duration": "PT1H"
                    },
                    "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine",
                    "chartType": 0,
                    "metrics": [
                      {
                        "name": "Percentage CPU",
                        "resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine"
                      }
                    ]
                  }
                }
              ],
              "type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart"
            }
          },
          {
            "position": {
              "x": 0,
              "y": 7,
              "colSpan": 3,
              "rowSpan": 2
            },
            "metadata": {
              "inputs": [
                {
                  "name": "queryInputs",
                  "value": {
                    "timespan": {
                      "duration": "PT1H"
                    },
                    "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine",
                    "chartType": 0,
                    "metrics": [
                      {
                        "name": "Disk Read Operations/Sec",
                        "resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine"
                      },
                      {
                        "name": "Disk Write Operations/Sec",
                        "resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine"
                      }
                    ]
                  }
                }
              ],
              "type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart"
            }
          },
          {
            "position": {
              "x": 3,
              "y": 7,
              "colSpan": 3,
              "rowSpan": 2
            },
            "metadata": {
              "inputs": [
                {
                  "name": "queryInputs",
                  "value": {
                    "timespan": {
                      "duration": "PT1H"
                    },
                    "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine",
                    "chartType": 0,
                    "metrics": [
                      {
                        "name": "Disk Read Bytes",
                        "resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine"
                      },
                      {
                        "name": "Disk Write Bytes",
                        "resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine"
                      }
                    ]
                  }
                }
              ],
              "type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart"
            }
          },
          {
            "position": {
              "x": 6,
              "y": 7,
              "colSpan": 3,
              "rowSpan": 2
            },
            "metadata": {
              "inputs": [
                {
                  "name": "queryInputs",
                  "value": {
                    "timespan": {
                      "duration": "PT1H"
                    },
                    "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine",
                    "chartType": 0,
                    "metrics": [
                      {
                        "name": "Network In Total",
                        "resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine"
                      },
                      {
                        "name": "Network Out Total",
                        "resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine"
                      }
                    ]
                  }
                }
              ],
              "type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart"
            }
          },
          {
            "position": {
              "x": 9,
              "y": 7,
              "colSpan": 2,
              "rowSpan": 2
            },
            "metadata": {
              "inputs": [
                {
                  "name": "id",
                  "value": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine"
                }
              ],
              "type": "Extension/Microsoft_Azure_Compute/PartType/VirtualMachinePart",
              "asset": {
                "idInputName": "id",
                "type": "VirtualMachine"
              }
            }
          }
        ]
      }
    ],
    "metadata": {
      "model": {}
    }
  },
  "name": "Simple VM Dashboard",
  "type": "Microsoft.Portal/dashboards",
  "location": "INSERT LOCATION",
  "tags": {
    "hidden-title": "Simple VM Dashboard"
  },
  "apiVersion": "2022-12-01-preview"
}

Propriedades comuns do recurso

Vamos detalhar as seções relevantes do JSON. As propriedades de recurso comuns aparecem perto do final do exemplo JSON. Essas propriedades são compartilhadas entre todos os tipos de recursos do Azure e não se relacionam especificamente com o conteúdo do painel.

ID

O ID representa a ID de recurso do Azure do painel, sujeita às convenções de nomenclatura dos recursos do Azure. Quando o portal cria um painel, ele geralmente escolhe um ID na forma de um guid, mas você pode usar qualquer nome válido ao criar um painel programaticamente.

Quando você exporta um painel do portal do Azure, o id campo não é incluído. Se você criar um novo painel importando um arquivo JSON que inclua o id campo, o valor será ignorado e um novo valor de ID será atribuído a cada novo painel.

Nome

O nome do recurso que o portal do Azure usa para o painel.

Type

Todos os painéis são do tipo Microsoft.Portal/dashboards.

Location

Ao contrário de outros recursos, os painéis não têm um componente de tempo de execução. Para painéis, location indica a localização geográfica primária que armazena a representação JSON do painel. O valor deve ser um dos códigos de local que podem ser obtidos usando a API de locais no recurso de assinaturas.

Etiquetas

As marcas são um recurso comum dos recursos do Azure que permitem organizar seu recurso por pares arbitrários de valores de nome. Os painéis incluem uma tag especial chamada hidden-title. Se o seu painel tiver essa propriedade preenchida, esse valor será usado como o nome para exibição do seu painel no portal. Essa tag oferece uma maneira de ter um nome de exibição renomeável para seu painel

Propriedades

O properties objeto contém duas propriedades lenses e metadata. A lenses propriedade contém informações sobre os blocos no painel. A metadata propriedade está reservada para possíveis recursos futuros.

Lentes

A lenses propriedade contém o painel.

Partes

A lenses propriedade contém duas propriedades order e parts. Atualmente, order está sempre definido como 0. A parts propriedade contém um objeto que define as partes individuais (também chamadas de blocos) no painel.

O parts objeto contém uma propriedade para cada parte, onde o nome da propriedade é um número. O número não é significativo.

Cada objeto de peça individual contém position e metadata.

Position

A position propriedade contém as informações de tamanho e localização para a parte expressa como x, y, rowSpane colSpan. Os valores são em termos de unidades de grade. Essas unidades de grade são visíveis quando o painel está no modo editável, como mostrado aqui.

Captura de ecrã a mostrar as unidades de grelha de um dashboard no portal do Azure.

Por exemplo, se você quiser que um bloco tenha uma largura de duas unidades de grade, uma altura de uma unidade de grade e um local no canto superior esquerdo do painel, o objeto de posição terá esta aparência:

position: { x: 0, y: 0, rowSpan: 2, colSpan: 1 }

Metadados

Cada parte tem uma propriedade de metadados. Um objeto tem apenas uma propriedade necessária dentro dos metadados: type. Essa cadeia de caracteres informa ao portal qual tipo de bloco mostrar. Nosso painel de exemplo usa estes tipos de blocos:

  1. Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart – Usado para mostrar métricas de monitoramento
  2. Extension[azure]/HubsExtension/PartType/MarkdownPart – Usado para mostrar conteúdo de marcação personalizado, como texto ou imagens, com formatação básica para listas, links, etc.
  3. Extension[azure]/HubsExtension/PartType/VideoPart – Usado para mostrar vídeos do YouTube, Canal 9, e qualquer outro tipo de vídeo que funciona em uma tag de vídeo HTML.

Cada tipo de peça tem suas próprias opções de configuração. As propriedades de configuração possíveis são chamadas inputs, settingse asset.

Entradas

O objeto inputs geralmente contém informações que vinculam um bloco a uma instância de recurso.

Cada MetricsChartPart um em nosso exemplo tem uma única entrada que expressa o recurso ao qual se vincular, representando a ID de recurso do Azure da VM, juntamente com informações sobre os dados que estão sendo exibidos. Por exemplo, aqui está o inputs objeto para o bloco que mostra as métricas Network In Total e Network out Total .

"inputs":
[
  {
    "name": "queryInputs",
    "value": {
      "timespan": {
        "duration": "PT1H"
      },
      "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine",
      "chartType": 0,
      "metrics": [
        {
          "name": "Network In Total",
          "resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine"
        },
        {
          "name": "Network Out Total",
          "resourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVirtualMachine"
        }
      ]
    }
  }
]

Definições

O objeto settings contém os elementos configuráveis de uma parte. Em nosso painel de exemplo, as MarkdownPart configurações de uso para armazenar o conteúdo de marcação personalizado, juntamente com um título e subtítulo configuráveis.

"settings": {
  "content": {
    "settings": {
      "content": "This is the team dashboard for the test VM we use on our team. Here are some useful links:\r\n\r\n1. [Create a Linux virtual machine](https://docs.microsoft.com/azure/virtual-machines/linux/quick-create-portal)\r\n1. [Create a Windows virtual machine](https://docs.microsoft.com/azure/virtual-machines/windows/quick-create-portal)\r\n1. [Create a virtual machine scale set](https://docs.microsoft.com/azure/virtual-machine-scale-sets/quick-create-portal)",
      "title": "Test VM Dashboard",
      "subtitle": "Contoso",
      "markdownUri": null
    }
  }
}

Da mesma forma, o VideoPart tem suas próprias configurações que contêm um ponteiro para o vídeo a ser reproduzido, uma configuração de reprodução automática e informações de título opcionais.


"settings": {
  "content": {
    "settings": {
      "src": "https://www.youtube.com/watch?v=rOiSRkxtTeU",
      "autoplay": false
    }
  }
}

Elemento

Os blocos vinculados a objetos de portal gerenciáveis de primeira classe (chamados ativos) têm essa relação expressa por meio do asset objeto. Em nosso painel de exemplo, o bloco da máquina virtual contém essa descrição do ativo. A idInputName propriedade informa ao portal que a entrada de ID contém o identificador exclusivo para o ativo, neste caso, o ID do recurso. A maioria dos tipos de recursos do Azure tem ativos definidos no portal.

"asset": {
    "idInputName": "id",
    "type": "VirtualMachine"
}

Próximos passos