Program aracılığıyla Azure panoları oluşturma
Bu makalede, Azure panolarını program aracılığıyla oluşturma ve yayımlama işleminde size yol gösterilir. Aşağıda gösterilen örnek panoya belgenin tamamında başvurulur, ancak bu işlemi herhangi bir panoyla kullanabilirsiniz.
Genel Bakış
Azure portal paylaşılan panolar, sanal makineler ve depolama hesapları gibi kaynaklardır. REST API'leri, Azure CLI'yı 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şturmanın, listelemenin, almanın, değiştirmenin ve silmenin yollarını 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 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ştirebileceğ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'leri, komut satırı araçları veya portal içinde 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 örneklerini 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 sonunda yer alan örnek JSON'da "/subscriptions" araması yaparsanız, bu kimliğin birkaç örneğini bulursunuz.
/subscriptions/6531c8c8-df32-4254-d717-b6e983273e5d/resourceGroups/contoso/providers/Microsoft.Compute/virtualMachines/myVM1
Gelecekte herhangi bir sanal makinede bu panoyu yayımlamak için bu dizenin JSON içinde her oluşumunu 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. kaynakları Resource Manager şablonları ve Azure PowerShell ile 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/6531c8c8-df32-4254-d717-b6e983273e5d/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 şöyle 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:
Ardından ö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": {
"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"
}
Ö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 bunların yanı sıra bir veya daha fazla panoyu 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 pano dağıtmak için parametreli şablon kullanma örneğini gördüğünüze göre, Azure Resource Manager REST API'lerini, Azure CLI'yi veya Azure PowerShell 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.
- Azure portal ayarlarını ve tercihlerini yönetmeyi öğrenin.