Azure-irányítópultok létrehozása programozott módon
Ez a cikk végigvezeti az Azure-irányítópultok programozott létrehozásának és közzétételének folyamatán. Az alábbi minta irányítópultra a teljes dokumentumban hivatkozunk, de ezt a folyamatot bármely irányítópulton használhatja.
Áttekintés
A Azure Portal megosztott irányítópultjai erőforrások, csakúgy, mint a virtuális gépek és tárfiókok. Az erőforrásokat programozott módon kezelheti a REST API-k, az Azure CLI és Azure PowerShell parancsok használatával.
Számos funkció ezekre az API-kra épül, hogy megkönnyítse az erőforrás-kezelést. Ezen API-k és eszközök mindegyike lehetőséget kínál erőforrások létrehozására, listázására, lekérésére, módosítására és törlésére. Mivel az irányítópultok erőforrások, kiválaszthatja kedvenc API-ját vagy eszközét.
Bármelyik eszközt is használja, az irányítópult programozott módon történő létrehozásához JSON-ábrázolást kell készítenie az irányítópult-objektumról. Ez az objektum információkat tartalmaz az irányítópult csempéiről. Ez magában foglalja a méreteket, a pozíciókat, az erőforrásokat, amelyekhez hozzá vannak kötve, valamint a felhasználói testreszabásokat.
A JSON-dokumentum létrehozásának legpraktikusabb módja, ha a Azure Portal használatával létrehoz egy kezdeti irányítópultot a kívánt csempékkel. Ezután exportálja a JSON-t, és hozzon létre egy sablont az eredményből, amelyet tovább módosíthat, és használhat szkriptekben, programokban és üzembehelyezési eszközökben.
Irányítópult JSON-ábrázolásának lekérése
Először letöltjük egy meglévő irányítópult JSON-reprezentációját. Nyissa meg a használni kívánt irányítópultot. Válassza az Exportálás , majd a Letöltés lehetőséget.
Az irányítópult-erőforrással kapcsolatos információkat programozott módon is lekérheti REST API-k vagy más módszerek használatával.
Sablon létrehozása a JSON-ból
A következő lépés egy sablon létrehozása a letöltött JSON-ból. A sablont programozott módon használhatja a megfelelő erőforrás-kezelési API-kkal, parancssori eszközökkel vagy a portálon.
A legtöbb esetben meg szeretné őrizni az egyes csempék szerkezetét és konfigurációját. Ezután paraméterezi azOkat az Azure-erőforrásokat, amelyekre a csempék mutatnak. A sablon létrehozásához nem kell teljesen megértenie az irányítópult JSON-struktúráját .
Az exportált JSON-irányítópulton keresse meg az Azure-erőforrásazonosítók összes előfordulását. A példa irányítópult több csempével rendelkezik, amelyek egyetlen Azure-beli virtuális gépre mutatnak. Ennek az az oka, hogy az irányítópult csak ezt az erőforrást vizsgálja. Ha a dokumentum végén található JSON-minta alapján keres "/subscriptions" kifejezésre, ennek az azonosítónak több előfordulását is megtalálja.
/subscriptions/6531c8c8-df32-4254-d717-b6e983273e5d/resourceGroups/contoso/providers/Microsoft.Compute/virtualMachines/myVM1
Ha ezt az irányítópultot a jövőben bármely virtuális gép számára közzé szeretné tenni, paraméterezi a sztring minden előfordulását a JSON-ban.
Irányítópult-sablon létrehozása
Az Azure lehetővé teszi több erőforrás üzembe helyezésének vezénylésére. Létrehozhat egy üzembe helyezési sablont, amely kifejezi az üzembe helyezendő erőforrások készletét és a köztük lévő kapcsolatokat. További információ: Erőforrások üzembe helyezése Resource Manager sablonokkal és Azure PowerShell.
Az egyes üzembe helyezett sablonerőforrások JSON-formátuma megegyezik az exportált irányítópultok feltöltésével történő egyéni létrehozásukéval, azzal a kivételrel, hogy a sablonnyelv hozzáad néhány fogalmat, például változókat, paramétereket, alapfüggvényeket és egyebeket. Ez a kiterjesztett szintaxis csak sablontelepítés esetén támogatott. További információ: Az ARM-sablonok szerkezetének és szintaxisának ismertetése.
A paraméterezést a sablon paraméterszintaxisával kell elvégezni. Az itt látható módon lecseréli a korábban talált erőforrás-azonosító összes példányát.
Példa JSON-tulajdonság rögzített erőforrás-azonosítóval:
id: "/subscriptions/6531c8c8-df32-4254-d717-b6e983273e5d/resourceGroups/contoso/providers/Microsoft.Compute/virtualMachines/myVM1"
Példa A JSON-tulajdonság sablonparaméterek alapján paraméteres verzióra konvertálva
id: "[resourceId(parameters('virtualMachineResourceGroup'), 'Microsoft.Compute/virtualMachines', parameters('virtualMachineName'))]"
Deklarálja a szükséges sablon metaadatait és a JSON-sablon tetején található paramétereket a következőképpen:
{
"$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 ...
]
}
Miután konfigurálta a sablont, helyezze üzembe az alábbi módszerek bármelyikével:
A következő lépésben a példa irányítópult JSON-fájljának két verziója jelenik meg. Az első az a verzió, amelyet a portálról exportáltunk, amely már hozzá lett kötve egy erőforráshoz. A második a sablonverzió, amely programozott módon bármely virtuális géphez köthető, és üzembe helyezhető az Azure Resource Manager használatával.
Példa az irányítópultról exportált JSON-reprezentációra
Ez a példa hasonló ahhoz, amit a cikk elején szereplő példához hasonló irányítópult exportálásakor látni fog. A rögzített erőforrás-azonosítók azt mutatják, hogy ez az irányítópult egy adott Azure-beli virtuális gépre mutat.
{
"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"
}
Példa irányítópult-sablon ábrázolása
A példa irányítópultjának templatizált verziója három paramétert virtualMachineName
definiált: , virtualMachineResourceGroup
és dashboardName
. A paraméterekkel ezt az irányítópultot minden üzembe helyezéskor egy másik Azure-beli virtuális gépre irányíthatja. Ez az irányítópult programozott módon konfigurálható és üzembe helyezhető, hogy bármely Azure-beli virtuális gépre mutasson. A funkció teszteléséhez másolja ki az alábbi sablont, és illessze be a Azure Portal sablon üzembehelyezési oldalára.
Ez a példa önmagában is üzembe helyez egy irányítópultot, de a sablonnyelv lehetővé teszi több erőforrás üzembe helyezését, és egy vagy több irányítópult összekapcsolásával.
{
"$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"
}
}
}
]
}
]
}
}
]
}
Most, hogy láthatott egy példát arra, hogyan helyezhet üzembe egy paraméteres sablont egy irányítópulton, megpróbálhatja üzembe helyezni a sablont az Azure Resource Manager REST API-kkal, az Azure CLI-vel vagy Azure PowerShell.
Következő lépések
- További információ az Azure-irányítópultok szerkezetéről.
- Megtudhatja, hogyan jeleníthet meg egyéni tartalmakat markdown-csempékkel az Azure-irányítópultokon.
- Megtudhatja, hogyan kezelheti a megosztott irányítópultok hozzáférését.
- Megtudhatja, hogyan kezelheti Azure Portal beállításokat és beállításokat.