Estructura de los paneles de Azure

Este documento le guía a través de la estructura de un panel de Azure con el panel siguiente como ejemplo:

Captura de pantalla de un panel de ejemplo en Azure Portal.

Como los paneles de Azure compartidos son recursos, este panel se puede representar como JSON. Para descargar la representación JSON de un panel, seleccione Exportar y, a continuación, Descargar en el Azure Portal.

El siguiente JSON representa el panel visualizado anteriormente.

{
{
  "properties": {
    "lenses": {
      "0": {
        "order": 0,
        "parts": {
          "0": {
            "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
                  }
                }
              }
            }
          },
          "1": {
            "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
                  }
                }
              }
            }
          },
          "2": {
            "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
                  }
                }
              }
            }
          },
          "3": {
            "position": {
              "x": 0,
              "y": 4,
              "colSpan": 11,
              "rowSpan": 3
            },
            "metadata": {
              "inputs": [
                {
                  "name": "queryInputs",
                  "value": {
                    "timespan": {
                      "duration": "PT1H"
                    },
                    "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1",
                    "chartType": 0,
                    "metrics": [
                      {
                        "name": "Percentage CPU",
                        "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1"
                      }
                    ]
                  }
                }
              ],
              "type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart",
              "settings": {}
            }
          },
          "4": {
            "position": {
              "x": 0,
              "y": 7,
              "colSpan": 3,
              "rowSpan": 2
            },
            "metadata": {
              "inputs": [
                {
                  "name": "queryInputs",
                  "value": {
                    "timespan": {
                      "duration": "PT1H"
                    },
                    "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1",
                    "chartType": 0,
                    "metrics": [
                      {
                        "name": "Disk Read Operations/Sec",
                        "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1"
                      },
                      {
                        "name": "Disk Write Operations/Sec",
                        "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1"
                      }
                    ]
                  }
                }
              ],
              "type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart",
              "settings": {}
            }
          },
          "5": {
            "position": {
              "x": 3,
              "y": 7,
              "colSpan": 3,
              "rowSpan": 2
            },
            "metadata": {
              "inputs": [
                {
                  "name": "queryInputs",
                  "value": {
                    "timespan": {
                      "duration": "PT1H"
                    },
                    "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1",
                    "chartType": 0,
                    "metrics": [
                      {
                        "name": "Disk Read Bytes",
                        "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1"
                      },
                      {
                        "name": "Disk Write Bytes",
                        "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1"
                      }
                    ]
                  }
                }
              ],
              "type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart",
              "settings": {}
            }
          },
          "6": {
            "position": {
              "x": 6,
              "y": 7,
              "colSpan": 3,
              "rowSpan": 2
            },
            "metadata": {
              "inputs": [
                {
                  "name": "queryInputs",
                  "value": {
                    "timespan": {
                      "duration": "PT1H"
                    },
                    "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1",
                    "chartType": 0,
                    "metrics": [
                      {
                        "name": "Network In Total",
                        "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1"
                      },
                      {
                        "name": "Network Out Total",
                        "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1"
                      }
                    ]
                  }
                }
              ],
              "type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart",
              "settings": {}
            }
          },
          "7": {
            "position": {
              "x": 9,
              "y": 7,
              "colSpan": 2,
              "rowSpan": 2
            },
            "metadata": {
              "inputs": [
                {
                  "name": "id",
                  "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1"
                }
              ],
              "type": "Extension/HubsExtension/PartType/ResourcePart",
              "asset": {
                "idInputName": "id",
                "type": "VirtualMachine"
              }
            }
          }
        }
      }
    },
    "metadata": {
      "model": {
        "timeRange": {
          "value": {
            "relative": {
              "duration": 24,
              "timeUnit": 1
            }
          },
          "type": "MsPortalFx.Composition.Configuration.ValueTypes.TimeRange"
        }
      }
    }
  },
  "name": "Simple VM Dashboard",
  "type": "Microsoft.Portal/dashboards",
  "location": "INSERT LOCATION",
  "tags": {
    "hidden-title": "Simple VM Dashboard"
  },
  "apiVersion": "2015-08-01-preview"
}

Propiedades de recursos comunes

Vamos a desglosar las secciones relevantes de JSON. Las propiedades de recursos comunes aparecen cerca del final del ejemplo anterior. Estas propiedades se comparten en todos los tipos de recursos de Azure. No se relacionan específicamente con el contenido del panel.

ID

El ID representa el panel del identificador de recurso de Azure, que está sujeto a las convenciones de nomenclatura de recursos de Azure. Cuando el portal crea un panel, por lo general elige un identificador en forma de identificador único global, pero se puede usar cualquier nombre válido cuando se crea mediante programación.

Al exportar un panel desde Azure Portal, el campo id no se incluye. Si crea un nuevo panel importando un archivo JSON que incluya el campo id, se ignorará el valor y se asignará un nuevo valor de identificador a cada nuevo panel.

Nombre

El nombre del recurso que Azure Portal usa para el panel.

Tipo

Todos los paneles son del tipo Microsoft.Portal/dashboards.

Ubicación

A diferencia de otros recursos, los paneles no tienen un componente de tiempo de ejecución. Para los paneles, “ubicación” indica la ubicación geográfica principal que almacena la representación JSON del panel. El valor debe ser uno de los códigos de ubicación que se pueden recuperar mediante la API de ubicaciones en el recurso de suscripciones.

Etiquetas

Las etiquetas son una característica común de los recursos de Azure que le permiten organizar el recurso por pares de nombre y valor arbitrarios. Los paneles incluyen una etiqueta especial denominada hidden-title. Si el panel tiene esta propiedad rellenada, ese valor se utiliza como el nombre para mostrar del panel en el portal. Esta etiqueta ofrece una forma de tener un nombre para mostrar renombrable para el panel.

Propiedades

El objeto de propiedades contiene dos propiedades, lenses y metadata. La propiedad lenses contiene información sobre los iconos del panel. La propiedad metadata se reserva para posibles características futuras.

lenses

La propiedad lenses contiene el panel. El objeto lente de este ejemplo contiene una propiedad única denominada “0”. lenses son un concepto de agrupación que no está implementado actualmente en los paneles. Por ahora, todos los paneles tienen esta propiedad única "0" en el objeto lente.

Partes

El objeto que hay debajo de "0" contiene dos propiedades, order y parts. Actualmente, order siempre se establece en 0. La propiedad parts contiene un objeto que define los elementos individuales (también denominados iconos) del panel.

El objeto parts contiene una propiedad para cada elemento, donde el nombre de la propiedad es un número. El número no es significativo.

Cada objeto de elemento individual contiene position y metadata.

Posición

La propiedad position contiene información sobre el tamaño y la ubicación del elemento expresado como x, y, rowSpan y colSpan. Los valores se expresan en términos de unidades de cuadrícula. Estas unidades de cuadrícula están visibles cuando el panel está en modo de personalización tal como se muestra aquí.

Captura de pantalla en la que se muestran las unidades de cuadrícula de un panel en Azure Portal.

Por ejemplo, si desea que un icono tenga una anchura de dos unidades de cuadrícula, una altura de una unidad de cuadrícula y una ubicación en la esquina superior izquierda del panel, entonces, el objeto de posición tendrá el siguiente aspecto:

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

Metadatos

Cada parte tiene una propiedad de metadatos. Un objeto tiene solo una propiedad necesaria: type. Esta cadena indica al portal qué tipo de icono debe mostrar. El panel de ejemplo utiliza estos tipos de iconos:

  1. Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart: se usa para mostrar las métricas de supervisión
  2. Extension[azure]/HubsExtension/PartType/MarkdownPart: se usa para mostrar contenido personalizado de markdown con texto o imágenes y con el formato básico para listas, vínculos, etc.
  3. Extension[azure]/HubsExtension/PartType/VideoPart: se usa para mostrar vídeos de YouTube, Channel 9 y cualquier otro tipo de vídeo que funcione en una etiqueta de vídeo HTML.

Cada tipo de elemento tiene sus propias opciones de configuración. Las posibles propiedades de configuración se denominan inputs, settings y asset.

Entradas

El objeto inputs generalmente contiene información que enlaza un icono con una instancia del recurso.

Cada MetricsChartPart en nuestros ejemplos tiene una única entrada que expresa el recurso al que se va a enlazar, que representa el identificador de recurso de Azure de la máquina virtual, junto con información sobre los datos que se muestran. Por ejemplo, este es el objeto inputs del icono que muestra las métricas Network In Total y Network Out Total.

"inputs":
[
  {
    "name": "queryInputs",
    "value": {
      "timespan": {
        "duration": "PT1H"
      },
      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1",
      "chartType": 0,
      "metrics": [
        {
          "name": "Network In Total",
          "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1"
        },
        {
          "name": "Network Out Total",
          "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SimpleWinVMResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM1"
        }
      ]
    }
  }
]

Configuración

El objeto settings contiene los elementos configurables de un elemento. En el panel de ejemplo, el elemento Markdown usa valores para almacenar el contenido de marcado personalizado, junto con un título y un subtítulo configurables.

"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"
    }
  }
}

Del mismo modo, el icono de vídeo tiene su propia configuración que contiene un puntero al vídeo para que se reproduzca, una configuración de reproducción automática e información de título opcional.


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

Recurso

Los iconos que están enlazados a objetos del portal de primera clase administrables (denominados recursos) expresan esta relación mediante el objeto asset. En el panel de ejemplo, el icono de la máquina virtual contiene esta descripción del recurso. La propiedad idInputName indica al portal que la entrada del identificador contiene el identificador único para el activo, en este caso, el identificador del recurso. La mayoría de los tipos de recursos tienen activos definidos en el portal.

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

Pasos siguientes