Creación mediante programación de paneles de AzureProgrammatically create Azure Dashboards

Este artículo le guía por el proceso de creación y publicación de paneles de Azure mediante programación.This article walks you through the process of programmatically creating and publishing Azure dashboards. Se hace referencia en todo el documento al panel que se muestra a continuación.The dashboard shown below is referenced throughout the document.

panel de ejemplo

Información generalOverview

Los paneles compartidos de Azure Portal son recursos, lo mismo que las máquinas virtuales y las cuentas de almacenamiento.Shared dashboards in the Azure portal are resources just like virtual machines and storage accounts. Puede administrar los recursos mediante programación con las API de REST de Azure Resource Manager la CLI de Azure y los comandos de Azure PowerShell.You can manage resources programmatically by using the Azure Resource Manager REST APIs, the Azure CLI, and Azure PowerShell commands.

Muchas características se basan en estas API para facilitar la administración de recursos.Many features build on these APIs to make resource management easier. Cada una de estas API y herramientas ofrece formas de crear, enumerar, recuperar, modificar y eliminar recursos.Each of these APIs and tools offers ways to create, list, retrieve, modify, and delete resources. Puesto que los paneles son recursos, puede elegir la API o la herramienta favorita que vaya a usar.Since dashboards are resources, you can pick your favorite API or tool to use.

Independientemente de las herramientas que use, para crear un panel mediante programación, debe construir una representación JSON del objeto de panel.Whichever tools you use, to create a dashboard programmatically, you construct a JSON representation of your dashboard object. Este objeto contiene información sobre los iconos del panel.This object contains information about the tiles on the dashboard. Incluye tamaños, posiciones, recursos a los que están enlazados y cualquier personalización del usuario.It includes sizes, positions, resources they're bound to, and any user customizations.

La manera más práctica de crear este documento JSON es usar Azure Portal.The most practical way to build up this JSON document is to use the Azure portal. Puede agregar y colocar los iconos de forma interactiva.You can interactively add and position your tiles. Luego exporte el JSON y cree una plantilla a partir del resultado para usarla más adelante en scripts, programas y herramientas de implementación.Then export the JSON and create a template from the result for later use in scripts, programs, and deployment tools.

Creación de un panelCreate a dashboard

Para crear un panel, seleccione Panel en el menú de Azure Portal y luego Nuevo panel.To create a dashboard, select Dashboard from the Azure portal menu, then select New dashboard.

comando nuevo de panel

Use la galería de iconos para buscar y agregar iconos.Use the tile gallery to find and add tiles. Los iconos se agregan arrastrándolos y colocándolos.Tiles are added by dragging and dropping them. Algunos iconos admiten el cambio de tamaño mediante un controlador de arrastre.Some tiles support resizing by using a drag handle.

Controlador de arrastre para cambiar el tamaño

Otros tienen tamaños fijos entre los que elegir en el menú contextual.Others have fixed sizes to choose from in their context menu.

Menú contextual de tamaños para cambiar el tamaño

Uso compartido del panelShare the dashboard

Después de configurar el panel, el siguiente paso es publicar el panel con el comando Compartir.After you configure the dashboard, the next step is to publish the dashboard using the Share command.

Uso compartido de un panel

Al seleccionar Compartir, se le pide que elija en qué suscripción y grupo de recursos se va a publicar.Selecting Share prompts you to choose which subscription and resource group to publish to. Debe tener acceso de escritura a la suscripción y al grupo de recursos que elija.You must have write access to the subscription and resource group that you choose. Para más información, consulte Incorporación o eliminación de asignaciones de roles mediante Azure Portal.For more information, see Add or remove Azure role assignments using the Azure portal.

Cambios en el uso compartido y el acceso

Captura de la representación JSON del panelFetch the JSON representation of the dashboard

La publicación solo tarda unos segundos.Publishing only takes a few seconds. Cuando haya terminado, el paso siguiente consiste en capturar el archivo JSON mediante el comando Descargar.When it's done, the next step is to fetch the JSON using the Download command.

descargar representación JSON

Creación de una plantilla a partir de JSONCreate a template from the JSON

El siguiente paso es crear una plantilla a partir de este JSON.The next step is to create a template from this JSON. Use esa plantilla mediante programación con las API de administración de recursos adecuadas, las herramientas de línea de comandos o en el portal.Use that template programmatically with the appropriate resource management APIs, command-line tools, or within the portal.

No es necesario comprender perfectamente la estructura JSON del panel para crear una plantilla.You don't have to fully understand the dashboard JSON structure to create a template. En la mayoría de los casos, se quiere conservar la estructura y la configuración de cada icono.In most cases, you want to preserve the structure and configuration of each tile. Luego, parametrice el conjunto de recursos de Azure a los que señalan los iconos.Then parameterize the set of Azure resources that the tiles point to. Examine el panel JSON exportado y busque todas las repeticiones de los identificadores de recursos de Azure.Look at your exported JSON dashboard and find all occurrences of Azure resource IDs. El panel de ejemplo tiene varios iconos que señalan todos a una única máquina virtual de Azure.Our example dashboard has multiple tiles that all point at a single Azure virtual machine. Esto se debe a que el panel solo examina este recurso.That's because our dashboard only looks at this single resource. Si busca "/subscriptions" en el JSON de ejemplo, incluido al final del documento, encuentra varias repeticiones de este identificador.If you search the sample JSON, included at the end of the document, for "/subscriptions", you find several occurrences of this ID.

/subscriptions/6531c8c8-df32-4254-d717-b6e983273e5d/resourceGroups/contoso/providers/Microsoft.Compute/virtualMachines/myVM1

Para publicar este panel para cualquier máquina virtual en el futuro, parametrice todas las repeticiones de esta cadena en el JSON.To publish this dashboard for any virtual machine in the future, parameterize every occurrence of this string within the JSON.

Hay dos enfoques para las API que crean recursos en Azure:There are two approaches for APIs that create resources in Azure:

La implementación basada en plantillas admite la parametrización y las plantillas.Template-based deployment supports parameterization and templating. En este artículo se usa este enfoque.We use this approach in this article.

Creación mediante programación de un panel a partir de la plantilla mediante una implementación de plantillaProgrammatically create a dashboard from your template using a template deployment

Azure ofrece la capacidad de organizar la implementación de varios recursos.Azure offers the ability to orchestrate the deployment of multiple resources. Cree una plantilla de implementación que exprese el conjunto de recursos que se va a implementar, así como las relaciones entre ellos.You create a deployment template that expresses the set of resources to deploy and the relationships between them. El formato JSON de los recursos es el mismo que si estuviera creándolos uno a uno.The JSON format of each resource is the same as if you were creating them one by one. La diferencia es que el lenguaje de plantilla agrega algunos conceptos como variables, parámetros, funciones básicas, etc.The difference is that the template language adds a few concepts like variables, parameters, basic functions, and more. Esta sintaxis extendida solo se admite en el contexto de una implementación de plantilla.This extended syntax is only supported in the context of a template deployment. No funciona si se usa con las API imperativas descritas anteriormente.It doesn't work if used with the imperative APIs discussed earlier. Para obtener más información, vea Nociones sobre la estructura y la sintaxis de las plantillas de Azure Resource Manager.For more information, see Understand the structure and syntax of Azure Resource Manager templates.

La parametrización se debe realizar mediante la sintaxis de parámetros de la plantilla.Parameterization should be done using the template's parameter syntax. Reemplace todas las instancias del identificador del recurso encontrado anteriormente como se muestra aquí.You replace all instances of the resource ID we found earlier as shown here.

Ejemplo de propiedad JSON con el identificador de recurso codificado de forma rígida:Example JSON property with hard-coded resource ID:

id: "/subscriptions/6531c8c8-df32-4254-d717-b6e983273e5d/resourceGroups/contoso/providers/Microsoft.Compute/virtualMachines/myVM1"

Ejemplo de propiedad JSON convertida a una versión con parámetros según los parámetros de plantillaExample JSON property converted to a parameterized version based on template parameters

id: "[resourceId(parameters('virtualMachineResourceGroup'), 'Microsoft.Compute/virtualMachines', parameters('virtualMachineName'))]"

Declare los metadatos de plantilla requeridos y los parámetros en la parte superior de la plantilla JSON del modo siguiente:Declare required template metadata and the parameters at the top of the JSON template like this:


{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "virtualMachineName": {
            "type": "string"
        },
        "virtualMachineResourceGroup": {
            "type": "string"
        },
        "dashboardName": {
            "type": "string"
        }
    },
    "variables": {},

    ... rest of template omitted ...

Una vez configurada la plantilla, impleméntela con cualquiera de los métodos siguientes:Once you've configured your template, deploy it using any of the following methods:

A continuación, verá dos versiones de nuestro JSON del panel de ejemplo.Next you'll see two versions of our example dashboard JSON. La primera es la versión que hemos exportado desde el portal y que ya estaba enlazada a un recurso.The first is the version that we exported from the portal that was already bound to a resource. La segunda es la versión de la plantilla que se puede enlazar mediante programación a cualquier máquina virtual e implementar con Azure Resource Manager.The second is the template version that can be programmatically bound to any virtual machine and deployed using Azure Resource Manager.

Representación JSON del panel de ejemplo antes de las plantillasJSON representation of our example dashboard before templating

En este ejemplo se muestra el resultado previsto si se ha seguido este artículo.This example shows what you can expect to see if you followed along with this article. Las instrucciones han exportado la representación JSON de un panel que ya está implementado.The instructions exported the JSON representation of a dashboard that is already deployed. Los identificadores de recursos codificados de forma rígida muestran que este panel señala a una máquina virtual de Azure específica.The hard-coded resource identifiers show that this dashboard is pointing at a specific Azure virtual machine.


{
    "properties": {
        "lenses": {
            "0": {
                "order": 0,
                "parts": {
                    "0": {
                        "position": {
                            "x": 0,
                            "y": 0,
                            "rowSpan": 2,
                            "colSpan": 3
                        },
                        "metadata": {
                            "inputs": [],
                            "type": "Extension[azure]/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.",
                                        "title": "",
                                        "subtitle": ""
                                    }
                                }
                            }
                        }
                    },
                    "1": {
                        "position": {
                            "x": 3,
                            "y": 0,
                            "rowSpan": 4,
                            "colSpan": 8
                        },
                        "metadata": {
                            "inputs": [],
                            "type": "Extension[azure]/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. [Getting started](https://www.contoso.com/tsgs)\r\n1. [Troubleshooting guide](https://www.contoso.com/tsgs)\r\n1. [Architecture docs](https://www.contoso.com/tsgs)",
                                        "title": "Test VM Dashboard",
                                        "subtitle": "Contoso"
                                    }
                                }
                            }
                        }
                    },
                    "2": {
                        "position": {
                            "x": 0,
                            "y": 2,
                            "rowSpan": 2,
                            "colSpan": 3
                        },
                        "metadata": {
                            "inputs": [],
                            "type": "Extension[azure]/HubsExtension/PartType/VideoPart",
                            "settings": {
                                "content": {
                                    "settings": {
                                        "title": "",
                                        "subtitle": "",
                                        "src": "https://www.youtube.com/watch?v=YcylDIiKaSU&list=PLLasX02E8BPCsnETz0XAMfpLR1LIBqpgs&index=4",
                                        "autoplay": false
                                    }
                                }
                            }
                        }
                    },
                    "3": {
                        "position": {
                            "x": 0,
                            "y": 4,
                            "rowSpan": 3,
                            "colSpan": 11
                        },
                        "metadata": {
                            "inputs": [
                                {
                                    "name": "queryInputs",
                                    "value": {
                                        "timespan": {
                                            "duration": "PT1H",
                                            "start": null,
                                            "end": null
                                        },
                                        "id": "/subscriptions/6531c8c8-df32-4254-d717-b6e983273e5d/resourceGroups/contoso/providers/Microsoft.Compute/virtualMachines/myVM1",
                                        "chartType": 0,
                                        "metrics": [
                                            {
                                                "name": "Percentage CPU",
                                                "resourceId": "/subscriptions/6531c8c8-df32-4254-d717-b6e983273e5d/resourceGroups/contoso/providers/Microsoft.Compute/virtualMachines/myVM1"
                                            }
                                        ]
                                    }
                                }
                            ],
                            "type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart",
                            "settings": {}
                        }
                    },
                    "4": {
                        "position": {
                            "x": 0,
                            "y": 7,
                            "rowSpan": 2,
                            "colSpan": 3
                        },
                        "metadata": {
                            "inputs": [
                                {
                                    "name": "queryInputs",
                                    "value": {
                                        "timespan": {
                                            "duration": "PT1H",
                                            "start": null,
                                            "end": null
                                        },
                                        "id": "/subscriptions/6531c8c8-df32-4254-d717-b6e983273e5d/resourceGroups/contoso/providers/Microsoft.Compute/virtualMachines/myVM1",
                                        "chartType": 0,
                                        "metrics": [
                                            {
                                                "name": "Disk Read Operations/Sec",
                                                "resourceId": "/subscriptions/6531c8c8-df32-4254-d717-b6e983273e5d/resourceGroups/contoso/providers/Microsoft.Compute/virtualMachines/myVM1"
                                            },
                                            {
                                                "name": "Disk Write Operations/Sec",
                                                "resourceId": "/subscriptions/6531c8c8-df32-4254-d717-b6e983273e5d/resourceGroups/contoso/providers/Microsoft.Compute/virtualMachines/myVM1"
                                            }
                                        ]
                                    }
                                }
                            ],
                            "type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart",
                            "settings": {}
                        }
                    },
                    "5": {
                        "position": {
                            "x": 3,
                            "y": 7,
                            "rowSpan": 2,
                            "colSpan": 3
                        },
                        "metadata": {
                            "inputs": [
                                {
                                    "name": "queryInputs",
                                    "value": {
                                        "timespan": {
                                            "duration": "PT1H",
                                            "start": null,
                                            "end": null
                                        },
                                        "id": "/subscriptions/6531c8c8-df32-4254-d717-b6e983273e5d/resourceGroups/contoso/providers/Microsoft.Compute/virtualMachines/myVM1",
                                        "chartType": 0,
                                        "metrics": [
                                            {
                                                "name": "Disk Read Bytes",
                                                "resourceId": "/subscriptions/6531c8c8-df32-4254-d717-b6e983273e5d/resourceGroups/contoso/providers/Microsoft.Compute/virtualMachines/myVM1"
                                            },
                                            {
                                                "name": "Disk Write Bytes",
                                                "resourceId": "/subscriptions/6531c8c8-df32-4254-d717-b6e983273e5d/resourceGroups/contoso/providers/Microsoft.Compute/virtualMachines/myVM1"
                                            }
                                        ]
                                    }
                                }
                            ],
                            "type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart",
                            "settings": {}
                        }
                    },
                    "6": {
                        "position": {
                            "x": 6,
                            "y": 7,
                            "rowSpan": 2,
                            "colSpan": 3
                        },
                        "metadata": {
                            "inputs": [
                                {
                                    "name": "queryInputs",
                                    "value": {
                                        "timespan": {
                                            "duration": "PT1H",
                                            "start": null,
                                            "end": null
                                        },
                                        "id": "/subscriptions/6531c8c8-df32-4254-d717-b6e983273e5d/resourceGroups/contoso/providers/Microsoft.Compute/virtualMachines/myVM1",
                                        "chartType": 0,
                                        "metrics": [
                                            {
                                                "name": "Network In",
                                                "resourceId": "/subscriptions/6531c8c8-df32-4254-d717-b6e983273e5d/resourceGroups/contoso/providers/Microsoft.Compute/virtualMachines/myVM1"
                                            },
                                            {
                                                "name": "Network Out",
                                                "resourceId": "/subscriptions/6531c8c8-df32-4254-d717-b6e983273e5d/resourceGroups/contoso/providers/Microsoft.Compute/virtualMachines/myVM1"
                                            }
                                        ]
                                    }
                                }
                            ],
                            "type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart",
                            "settings": {}
                        }
                    },
                    "7": {
                        "position": {
                            "x": 9,
                            "y": 7,
                            "rowSpan": 2,
                            "colSpan": 2
                        },
                        "metadata": {
                            "inputs": [
                                {
                                    "name": "id",
                                    "value": "/subscriptions/6531c8c8-df32-4254-d717-b6e983273e5d/resourceGroups/contoso/providers/Microsoft.Compute/virtualMachines/myVM1"
                                }
                            ],
                            "type": "Extension/Microsoft_Azure_Compute/PartType/VirtualMachinePart",
                            "asset": {
                                "idInputName": "id",
                                "type": "VirtualMachine"
                            },
                            "defaultMenuItemId": "overview"
                        }
                    }
                }
            }
        },
        "metadata": { }
    },
    "id": "/subscriptions/6531c8c8-df32-4254-d717-b6e983273e5d/resourceGroups/dashboards/providers/Microsoft.Portal/dashboards/aa9786ae-e159-483f-b05f-1f7f767741a9",
    "name": "aa9786ae-e159-483f-b05f-1f7f767741a9",
    "type": "Microsoft.Portal/dashboards",
    "location": "eastasia",
    "tags": {
        "hidden-title": "Created via API"
    }
}

Representación de la plantilla de nuestro panel de ejemploTemplate representation of our example dashboard

La versión de plantilla del panel tiene definidos tres parámetros denominados virtualMachineName, virtualMachineResourceGroup y dashboardName.The template version of the dashboard has defined three parameters called virtualMachineName, virtualMachineResourceGroup, and dashboardName. Los parámetros permiten que este panel señale a una máquina virtual de Azure diferente cada vez que realice una implementación.The parameters let you point this dashboard at a different Azure virtual machine every time you deploy. Este panel puede configurarse e implementarse mediante programación de modo que señale a cualquier máquina virtual de Azure.This dashboard can be programmatically configured and deployed to point to any Azure virtual machine. Para probar esta característica, copie la plantilla siguiente y péguela en la página de implementación de plantillas de Azure Portal.To test this feature, copy the following template and paste it into the Azure portal template deployment page.

En este ejemplo se implementa un panel por sí mismo, pero el lenguaje de plantilla le permite implementar varios recursos e incluir uno o más paneles junto a ellos.This example deploys a dashboard by itself, but the template language lets you deploy multiple resources, and bundle one or more dashboards along side them.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "virtualMachineName": {
            "type": "string"
        },
        "virtualMachineResourceGroup": {
            "type": "string"
        },
        "dashboardName": {
            "type": "string"
        }
    },
    "variables": {},
    "resources": [
        {
            "properties": {
                "lenses": {
                    "0": {
                        "order": 0,
                        "parts": {
                            "0": {
                                "position": {
                                    "x": 0,
                                    "y": 0,
                                    "rowSpan": 2,
                                    "colSpan": 3
                                },
                                "metadata": {
                                    "inputs": [],
                                    "type": "Extension[azure]/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.",
                                                "title": "",
                                                "subtitle": ""
                                            }
                                        }
                                    }
                                }
                            },
                            "1": {
                                "position": {
                                    "x": 3,
                                    "y": 0,
                                    "rowSpan": 4,
                                    "colSpan": 8
                                },
                                "metadata": {
                                    "inputs": [],
                                    "type": "Extension[azure]/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. [Getting started](https://www.contoso.com/tsgs)\r\n1. [Troubleshooting guide](https://www.contoso.com/tsgs)\r\n1. [Architecture docs](https://www.contoso.com/tsgs)",
                                                "title": "Test VM Dashboard",
                                                "subtitle": "Contoso"
                                            }
                                        }
                                    }
                                }
                            },
                            "2": {
                                "position": {
                                    "x": 0,
                                    "y": 2,
                                    "rowSpan": 2,
                                    "colSpan": 3
                                },
                                "metadata": {
                                    "inputs": [],
                                    "type": "Extension[azure]/HubsExtension/PartType/VideoPart",
                                    "settings": {
                                        "content": {
                                            "settings": {
                                                "title": "",
                                                "subtitle": "",
                                                "src": "https://www.youtube.com/watch?v=YcylDIiKaSU&list=PLLasX02E8BPCsnETz0XAMfpLR1LIBqpgs&index=4",
                                                "autoplay": false
                                            }
                                        }
                                    }
                                }
                            },
                            "3": {
                                "position": {
                                    "x": 0,
                                    "y": 4,
                                    "rowSpan": 3,
                                    "colSpan": 11
                                },
                                "metadata": {
                                    "inputs": [
                                        {
                                            "name": "queryInputs",
                                            "value": {
                                                "timespan": {
                                                    "duration": "PT1H",
                                                    "start": null,
                                                    "end": null
                                                },
                                                "id": "[resourceId(parameters('virtualMachineResourceGroup'), 'Microsoft.Compute/virtualMachines', parameters('virtualMachineName'))]",
                                                "chartType": 0,
                                                "metrics": [
                                                    {
                                                        "name": "Percentage CPU",
                                                        "resourceId": "[resourceId(parameters('virtualMachineResourceGroup'), 'Microsoft.Compute/virtualMachines', parameters('virtualMachineName'))]"
                                                    }
                                                ]
                                            }
                                        }
                                    ],
                                    "type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart",
                                    "settings": {}
                                }
                            },
                            "4": {
                                "position": {
                                    "x": 0,
                                    "y": 7,
                                    "rowSpan": 2,
                                    "colSpan": 3
                                },
                                "metadata": {
                                    "inputs": [
                                        {
                                            "name": "queryInputs",
                                            "value": {
                                                "timespan": {
                                                    "duration": "PT1H",
                                                    "start": null,
                                                    "end": null
                                                },
                                                "id": "[resourceId(parameters('virtualMachineResourceGroup'), 'Microsoft.Compute/virtualMachines', parameters('virtualMachineName'))]",
                                                "chartType": 0,
                                                "metrics": [
                                                    {
                                                        "name": "Disk Read Operations/Sec",
                                                        "resourceId": "[resourceId(parameters('virtualMachineResourceGroup'), 'Microsoft.Compute/virtualMachines', parameters('virtualMachineName'))]"
                                                    },
                                                    {
                                                        "name": "Disk Write Operations/Sec",
                                                        "resourceId": "[resourceId(parameters('virtualMachineResourceGroup'), 'Microsoft.Compute/virtualMachines', parameters('virtualMachineName'))]"
                                                    }
                                                ]
                                            }
                                        }
                                    ],
                                    "type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart",
                                    "settings": {}
                                }
                            },
                            "5": {
                                "position": {
                                    "x": 3,
                                    "y": 7,
                                    "rowSpan": 2,
                                    "colSpan": 3
                                },
                                "metadata": {
                                    "inputs": [
                                        {
                                            "name": "queryInputs",
                                            "value": {
                                                "timespan": {
                                                    "duration": "PT1H",
                                                    "start": null,
                                                    "end": null
                                                },
                                                "id": "[resourceId(parameters('virtualMachineResourceGroup'), 'Microsoft.Compute/virtualMachines', parameters('virtualMachineName'))]",
                                                "chartType": 0,
                                                "metrics": [
                                                    {
                                                        "name": "Disk Read Bytes",
                                                        "resourceId": "[resourceId(parameters('virtualMachineResourceGroup'), 'Microsoft.Compute/virtualMachines', parameters('virtualMachineName'))]"
                                                    },
                                                    {
                                                        "name": "Disk Write Bytes",
                                                        "resourceId": "[resourceId(parameters('virtualMachineResourceGroup'), 'Microsoft.Compute/virtualMachines', parameters('virtualMachineName'))]"
                                                    }
                                                ]
                                            }
                                        }
                                    ],
                                    "type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart",
                                    "settings": {}
                                }
                            },
                            "6": {
                                "position": {
                                    "x": 6,
                                    "y": 7,
                                    "rowSpan": 2,
                                    "colSpan": 3
                                },
                                "metadata": {
                                    "inputs": [
                                        {
                                            "name": "queryInputs",
                                            "value": {
                                                "timespan": {
                                                    "duration": "PT1H",
                                                    "start": null,
                                                    "end": null
                                                },
                                                "id": "[resourceId(parameters('virtualMachineResourceGroup'), 'Microsoft.Compute/virtualMachines', parameters('virtualMachineName'))]",
                                                "chartType": 0,
                                                "metrics": [
                                                    {
                                                        "name": "Network In",
                                                        "resourceId": "[resourceId(parameters('virtualMachineResourceGroup'), 'Microsoft.Compute/virtualMachines', parameters('virtualMachineName'))]"
                                                    },
                                                    {
                                                        "name": "Network Out",
                                                        "resourceId": "[resourceId(parameters('virtualMachineResourceGroup'), 'Microsoft.Compute/virtualMachines', parameters('virtualMachineName'))]"
                                                    }
                                                ]
                                            }
                                        }
                                    ],
                                    "type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart",
                                    "settings": {}
                                }
                            },
                            "7": {
                                "position": {
                                    "x": 9,
                                    "y": 7,
                                    "rowSpan": 2,
                                    "colSpan": 2
                                },
                                "metadata": {
                                    "inputs": [
                                        {
                                            "name": "id",
                                            "value": "[resourceId(parameters('virtualMachineResourceGroup'), 'Microsoft.Compute/virtualMachines', parameters('virtualMachineName'))]"
                                        }
                                    ],
                                    "type": "Extension/Microsoft_Azure_Compute/PartType/VirtualMachinePart",
                                    "asset": {
                                        "idInputName": "id",
                                        "type": "VirtualMachine"
                                    },
                                    "defaultMenuItemId": "overview"
                                }
                            }
                        }
                    }
                }
            },
            "metadata": { },
            "apiVersion": "2015-08-01-preview",
            "type": "Microsoft.Portal/dashboards",
            "name": "[parameters('dashboardName')]",
            "location": "westus",
            "tags": {
                "hidden-title": "[parameters('dashboardName')]"
            }
        }
    ]
}

Ahora que ha visto un ejemplo del uso de una plantilla con parámetros para implementar un panel, puede probar a implementar la plantilla mediante las API REST de Azure Resource Manager, la CLI de Azure o los comandos de Azure PowerShell.Now that you've seen an example of using a parameterized template to deploy a dashboard, you can try deploying the template by using the Azure Resource Manager REST APIs, the Azure CLI, or Azure PowerShell commands.