Program aracılığıyla Azure panoları oluşturma
Bu makale, Azure panolarını program aracılığıyla oluşturma ve yayımlama işleminde size yol gösterir. Aşağıda gösterilen örnek panoya belgenin tamamında başvurulur, ancak bu işlemi herhangi bir panoyla kullanabilirsiniz.
Genel bakış
Azure portalındaki paylaşılan panolar, sanal makineler ve depolama hesapları gibi kaynaklardır. REST API'leri, Azure CLI ve Azure PowerShell komutlarını kullanarak kaynakları program aracılığıyla yönetebilirsiniz.
Birçok özellik, kaynak yönetimini kolaylaştırmak için bu API'leri kullanır. Bu API'lerin ve araçların her biri kaynakları oluşturma, listeleme, alma, değiştirme ve silme yolları sunar. Panolar kaynak olduğundan, kullanmak istediğiniz API'yi veya aracı seçebilirsiniz.
Hangi araçları kullanırsanız kullanın, program aracılığıyla pano oluşturmak için pano nesnenizin JSON gösterimini oluşturursunuz. Bu nesne, panodaki kutucuklar hakkında bilgi içerir. Boyutları, konumları, bağlı oldukları kaynakları ve tüm kullanıcı özelleştirmelerini içerir.
Bu JSON belgesini oluşturmanın en pratik yolu, azure portalını kullanarak istediğiniz kutucuklarla bir ilk pano oluşturmaktır. Ardından JSON'u dışarı aktarın ve sonuçtan daha fazla değişiklik yapabileceğiniz ve betiklerde, programlarda ve dağıtım araçlarında kullanabileceğiniz bir şablon oluşturun.
Panonun JSON gösterimini getirme
Mevcut bir panonun JSON gösterimini indirerek başlayacağız. Başlamak istediğiniz panoyu açın. Dışarı Aktar'ı ve ardından İndir'i seçin.
AYRıCA REST API'lerini veya diğer yöntemleri kullanarak pano kaynağı hakkındaki bilgileri program aracılığıyla da alabilirsiniz.
JSON'dan şablon oluşturma
Sonraki adım, indirilen JSON'dan bir şablon oluşturmaktır. Şablonu uygun kaynak yönetimi API'leriyle, komut satırı araçlarıyla veya portalda program aracılığıyla kullanabilirsiniz.
Çoğu durumda, her kutucuğun yapısını ve yapılandırmasını korumak istersiniz. Ardından kutucukların işaret olduğu Azure kaynakları kümesini parametreleştirin. Şablon oluşturmak için pano JSON yapısını tam olarak anlamanız gerekmez.
Dışarı aktarılan JSON panonuzda Azure kaynak kimliklerinin tüm oluşumlarını bulun. Örnek panomuzda tek bir Azure sanal makinesine işaret eden birden çok kutucuk vardır. Bunun nedeni panomuzun yalnızca bu tek kaynağa bakmış olmasıdır. Belgenin sonundaki örnek JSON dosyasında "/subscriptions" araması yaparsanız, bu kimliğin birkaç örneğini bulursunuz.
/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/contoso/providers/Microsoft.Compute/virtualMachines/myVM1
Gelecekte herhangi bir sanal makine için bu panoyu yayımlamak için bu dizenin JSON içindeki her örneğini parametreleştirin.
Pano şablonu oluşturma
Azure, birden çok kaynağın dağıtımını düzenleme olanağı sunar. Dağıtılacak kaynak kümesini ve aralarındaki ilişkileri ifade eden bir dağıtım şablonu oluşturursunuz. Daha fazla bilgi için bkz . Resource Manager şablonları ve Azure PowerShell ile kaynakları dağıtma.
Dağıtılan her şablon kaynağının JSON biçimi, dışarı aktarılan bir panoyu karşıya yükleyerek bunları tek tek oluşturduğunuzla aynıdır, ancak şablon dili değişkenler, parametreler, temel işlevler ve daha fazlası gibi birkaç kavram ekler. Bu genişletilmiş söz dizimi yalnızca şablon dağıtımı bağlamında desteklenir. Daha fazla bilgi için bkz . ARM şablonlarının yapısını ve söz dizimini anlama.
Parametreleştirme, şablonun parametre söz dizimi kullanılarak yapılmalıdır. Burada gösterildiği gibi daha önce bulduğumuz kaynak kimliğinin tüm örneklerini değiştirirsiniz.
Sabit kodlanmış kaynak kimliğine sahip örnek JSON özelliği:
id: "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/contoso/providers/Microsoft.Compute/virtualMachines/myVM1"
Şablon parametrelerine göre parametreli sürüme dönüştürülen örnek JSON özelliği
id: "[resourceId(parameters('virtualMachineResourceGroup'), 'Microsoft.Compute/virtualMachines', parameters('virtualMachineName'))]"
Gerekli şablon meta verilerini ve JSON şablonunun en üstündeki parametreleri şu şekilde bildirin:
{
"$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": [
... rest of template omitted ...
]
}
Şablonunuzu yapılandırdıktan sonra aşağıdaki yöntemlerden birini kullanarak dağıtın:
Şimdi örnek panomuz JSON'un iki sürümünü göreceksiniz. Birincisi, portaldan dışarı aktardığımız ve zaten bir kaynağa bağlı olan sürümdür. İkincisi, herhangi bir sanal makineye program aracılığıyla bağlanabilen ve Azure Resource Manager kullanılarak dağıtılan şablon sürümüdür.
Panodan dışarı aktarılan örnek JSON gösterimi
Bu örnek, bu makalenin başındaki örneğe benzer bir panoyu dışarı aktarırken göreceğiniz örneğe benzer. Sabit kodlanmış kaynak tanımlayıcıları, bu panonun belirli bir Azure sanal makinesine işaret ettiğini gösterir.
{
"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"
}
Örnek pano şablonu gösterimi
Örnek panonun şablonlaştırılmış sürümü , virtualMachineResourceGroup
ve dashboardName
adlı virtualMachineName
üç parametre tanımlamıştır. Parametreler, her dağıttığınızda bu panoyu farklı bir Azure sanal makinesine yöneltmenizi sağlar. Bu pano, herhangi bir Azure sanal makinesine işaret etmek için program aracılığıyla yapılandırılabilir ve dağıtılabilir. Bu özelliği test etmek için aşağıdaki şablonu kopyalayın ve Azure portal şablonu dağıtım sayfasına yapıştırın.
Bu örnek bir panoyu tek başına dağıtır, ancak şablon dili birden çok kaynak dağıtmanıza ve bir veya daha fazla panoyu bunlarla birlikte paketlemenize olanak tanır.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"virtualMachineName": {
"type": "string",
"metadata": {
"description": "Name of the existing virtual machine to show in the dashboard"
}
},
"virtualMachineResourceGroup": {
"type": "string",
"metadata": {
"description": "Name of the resource group that contains the virtual machine"
}
},
"dashboardName": {
"type": "string",
"defaultValue": "[guid(parameters('virtualMachineName'), parameters('virtualMachineResourceGroup'))]",
"metadata": {
"Description": "Resource name that Azure portal uses for the dashboard"
}
},
"dashboardDisplayName": {
"type": "string",
"defaultValue": "Simple VM Dashboard",
"metadata": {
"description": "Name of the dashboard to display in Azure portal"
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [
{
"type": "Microsoft.Portal/dashboards",
"apiVersion": "2020-09-01-preview",
"name": "[parameters('dashboardName')]",
"location": "[parameters('location')]",
"tags": {
"hidden-title": "[parameters('dashboardDisplayName')]"
},
"properties": {
"lenses": [
{
"order": 0,
"parts": [
{
"position": {
"x": 0,
"y": 0,
"rowSpan": 2,
"colSpan": 3
},
"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."
}
}
}
}
},
{
"position": {
"x": 3,
"y": 0,
"rowSpan": 4,
"colSpan": 8
},
"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"
}
}
}
}
},
{
"position": {
"x": 0,
"y": 2,
"rowSpan": 2,
"colSpan": 3
},
"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,
"rowSpan": 3,
"colSpan": 11
},
"metadata": {
"inputs": [
{
"name": "queryInputs",
"value": {
"timespan": {
"duration": "PT1H"
},
"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"
}
},
{
"position": {
"x": 0,
"y": 7,
"rowSpan": 2,
"colSpan": 3
},
"metadata": {
"inputs": [
{
"name": "queryInputs",
"value": {
"timespan": {
"duration": "PT1H"
},
"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"
}
},
{
"position": {
"x": 3,
"y": 7,
"rowSpan": 2,
"colSpan": 3
},
"metadata": {
"inputs": [
{
"name": "queryInputs",
"value": {
"timespan": {
"duration": "PT1H"
},
"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"
}
},
{
"position": {
"x": 6,
"y": 7,
"rowSpan": 2,
"colSpan": 3
},
"metadata": {
"inputs": [
{
"name": "queryInputs",
"value": {
"timespan": {
"duration": "PT1H"
},
"id": "[resourceId(parameters('virtualMachineResourceGroup'), 'Microsoft.Compute/virtualMachines', parameters('virtualMachineName'))]",
"chartType": 0,
"metrics": [
{
"name": "Network In Total",
"resourceId": "[resourceId(parameters('virtualMachineResourceGroup'), 'Microsoft.Compute/virtualMachines', parameters('virtualMachineName'))]"
},
{
"name": "Network Out Total",
"resourceId": "[resourceId(parameters('virtualMachineResourceGroup'), 'Microsoft.Compute/virtualMachines', parameters('virtualMachineName'))]"
}
]
}
}
],
"type": "Extension/Microsoft_Azure_Monitoring/PartType/MetricsChartPart"
}
},
{
"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"
}
}
}
]
}
]
}
}
]
}
Artık bir pano dağıtmak için parametreli şablon kullanma örneği gördüğünüze göre, Azure Resource Manager REST API'lerini, Azure CLI'yi veya Azure PowerShell'i kullanarak şablonu dağıtmayı deneyebilirsiniz.
Sonraki adımlar
- Azure panolarının yapısı hakkında daha fazla bilgi edinin.
- Özel içeriği göstermek için Azure panolarında markdown kutucuklarını kullanmayı öğrenin.
- Paylaşılan panolar için erişimi yönetmeyi öğrenin.