Mengelola buku kerja secara terprogram
Pemilik sumber daya dapat membuat dan mengelola buku kerja mereka secara terprogram melalui templat Azure Resource Manager (templat ARM).
Kemampuan ini dapat berguna dalam skenario seperti:
- Menyebarkan laporan analitik khusus organisasi atau domain bersama dengan penyebaran sumber daya. Misalnya, Anda dapat menyebarkan buku kerja performa dan kegagalan khusus organisasi untuk aplikasi baru atau komputer virtual Anda.
- Menyebarkan laporan atau dasbor standar dengan menggunakan buku kerja untuk sumber daya yang ada.
Buku kerja akan dibuat di sub/grup sumber daya yang diinginkan dan dengan konten yang ditentukan dalam templat ARM.
Dua jenis sumber daya buku kerja dapat dikelola secara terprogram:
Templat ARM untuk menyebarkan templat buku kerja
Buka buku kerja yang ingin Anda sebarkan secara terprogram.
Alihkan buku kerja ke mode edit dengan memilih Edit.
Buka Editor Lanjutan dengan menggunakan tombol </> pada toolbar.
Pastikan Anda berada di tab Templat Galeri.
Salin JSON di templat galeri ke clipboard.
Contoh templat ARM berikut menyebarkan templat buku kerja ke galeri buku kerja Azure Monitor. Tempelkan JSON yang Anda salin menggantikan
<PASTE-COPIED-WORKBOOK_TEMPLATE_HERE>
. Untuk templat ARM referensi yang membuat templat buku kerja, lihat repositori GitHub ini.{ "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "resourceName": { "type": "string", "defaultValue": "my-workbook-template", "metadata": { "description": "The unique name for this workbook template instance" } } }, "resources": [ { "name": "[parameters('resourceName')]", "type": "microsoft.insights/workbooktemplates", "location": "[resourceGroup().location]", "apiVersion": "2019-10-17-preview", "dependsOn": [], "properties": { "galleries": [ { "name": "A Workbook Template", "category": "Deployed Templates", "order": 100, "type": "workbook", "resourceType": "Azure Monitor" } ], "templateData": <PASTE-COPIED-WORKBOOK_TEMPLATE_HERE> } } ] }
galleries
Di objek , isiname
kunci dancategory
dengan nilai Anda. Pelajari lebih lanjut tentang parameter di bagian berikutnya.Sebarkan templat ARM ini dengan menggunakan portal Azure, antarmuka baris perintah, atau PowerShell.
Buka portal Azure dan buka galeri buku kerja yang dipilih dalam templat ARM. Dalam templat contoh, buka galeri buku kerja Azure Monitor:
- Buka portal Azure dan buka Azure Monitor.
- Buka
Workbooks
dari daftar isi. - Temukan templat Anda di galeri di bawah kategori
Deployed Templates
. (Ini akan menjadi salah satu item ungu.)
Parameter
Parameter | Penjelasan |
---|---|
name |
Nama sumber daya templat buku kerja di Azure Resource Manager. |
type |
Selalu microsoft.insights/workbooktemplates. |
location |
Lokasi Azure tempat buku kerja akan dibuat. |
apiVersion |
Pratinjau 10-17 2019. |
type |
Selalu microsoft.insights/workbooktemplates. |
galleries |
Kumpulan galeri untuk memperlihatkan templat buku kerja ini. |
gallery.name |
Nama templat buku kerja yang mudah diingat di galeri. |
gallery.category |
Grup di galeri tempat menempatkan templat. |
gallery.order |
Angka yang menentukan urutan untuk menampilkan templat dalam kategori di galeri. Urutan yang lebih rendah menyiratkan prioritas yang lebih tinggi. |
gallery.resourceType |
Jenis sumber daya yang sesuai dengan galeri. Jenis ini biasanya merupakan string jenis sumber daya yang sesuai dengan sumber daya (misalnya, microsoft.operationalinsights/workspaces). |
gallery.type |
Disebut sebagai jenis buku kerja. Kunci unik ini membedakan galeri dalam jenis sumber daya. Application Insights, misalnya, memiliki jenis workbook dan tsg yang sesuai dengan galeri buku kerja yang berbeda. |
Galeri
Galeri | Jenis Sumber Daya | Jenis buku kerja |
---|---|---|
Buku kerja di Azure Monitor | Azure Monitor |
workbook |
Wawasan VM di Azure Monitor | Azure Monitor |
vm-insights |
Buku kerja di ruang kerja Analitik Log | microsoft.operationalinsights/workspaces |
workbook |
Buku Kerja di Application Insights | microsoft.insights/components |
workbook |
Panduan pemecahan masalah di Application Insights | microsoft.insights/components |
tsg |
Penggunaan di Application Insights | microsoft.insights/components |
usage |
Buku kerja di layanan Kubernetes | Microsoft.ContainerService/managedClusters |
workbook |
Buku kerja dalam grup sumber daya | microsoft.resources/subscriptions/resourcegroups |
workbook |
Buku kerja di ID Microsoft Entra | microsoft.aadiam/tenant |
workbook |
Wawasan VM di komputer virtual | microsoft.compute/virtualmachines |
insights |
Wawasan VM dalam set skala komputer virtual | microsoft.compute/virtualmachinescalesets |
insights |
Templat ARM untuk menyebarkan instans buku kerja
- Buka buku kerja yang ingin Anda sebarkan secara terprogram.
- Alihkan buku kerja ke mode edit dengan memilih Edit.
- Buka Editor Lanjutan dengan memilih< />.
- Di editor, alihkan Jenis Templat ke templat ARM.
- Templat ARM untuk membuat muncul di editor. Salin konten dan gunakan apa adanya atau gabungkan dengan templat yang lebih besar yang juga menyebarkan sumber daya target.
Contoh templat ARM
Templat ini memperlihatkan cara menyebarkan buku kerja yang menampilkan Hello World!
.
{
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"workbookDisplayName": {
"type":"string",
"defaultValue": "My Workbook",
"metadata": {
"description": "The friendly name for the workbook that is used in the Gallery or Saved List. Needs to be unique in the scope of the resource group and source"
}
},
"workbookType": {
"type":"string",
"defaultValue": "tsg",
"metadata": {
"description": "The gallery that the workbook will be shown under. Supported values include workbook, `tsg`, Azure Monitor, etc."
}
},
"workbookSourceId": {
"type":"string",
"defaultValue": "<insert-your-resource-id-here>",
"metadata": {
"description": "The id of resource instance to which the workbook will be associated"
}
},
"workbookId": {
"type":"string",
"defaultValue": "[newGuid()]",
"metadata": {
"description": "The unique guid for this workbook instance"
}
}
},
"resources": [
{
"name": "[parameters('workbookId')]",
"type": "Microsoft.Insights/workbooks",
"location": "[resourceGroup().location]",
"kind": "shared",
"apiVersion": "2018-06-17-preview",
"dependsOn": [],
"properties": {
"displayName": "[parameters('workbookDisplayName')]",
"serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":\"{\\\"json\\\":\\\"Hello World!\\\"}\",\"conditionalVisibility\":null}],\"isLocked\":false}",
"version": "1.0",
"sourceId": "[parameters('workbookSourceId')]",
"category": "[parameters('workbookType')]"
}
}
],
"outputs": {
"workbookId": {
"type": "string",
"value": "[resourceId( 'Microsoft.Insights/workbooks', parameters('workbookId'))]"
}
}
}
Parameter template
Parameter | Deskripsi |
---|---|
workbookDisplayName |
Nama yang mudah diingat untuk buku kerja yang digunakan di Galeri atau Daftar Tersimpan. Harus unik dalam cakupan grup sumber daya dan sumber. |
workbookType |
Galeri tempat buku kerja muncul. Nilai yang didukung termasuk buku kerja, tsg , dan Azure Monitor. |
workbookSourceId |
ID instans sumber daya yang akan dikaitkan dengan buku kerja. Buku kerja baru akan muncul terkait dengan instans sumber daya ini, misalnya, dalam daftar isi sumber daya di bawah Buku Kerja. Jika Anda ingin buku kerja Anda muncul di galeri Buku Kerja di Azure Monitor, gunakan string Azure Monitor alih-alih ID sumber daya. |
workbookId |
Panduan unik untuk instans buku kerja ini. Gunakan [newGuid()] untuk membuat guid baru secara otomatis. |
kind |
Digunakan untuk menentukan apakah buku kerja yang dibuat akan dibagikan. Semua buku kerja baru akan menggunakan nilai bersama. |
location |
Lokasi Azure tempat buku kerja akan dibuat. Gunakan [resourceGroup().location] untuk membuatnya di lokasi yang sama dengan grup sumber daya. |
serializedData |
Berisi konten atau payload yang akan digunakan dalam buku kerja. Gunakan templat ARM dari UI buku kerja untuk mendapatkan nilainya. |
Jenis buku kerja
Jenis buku kerja menentukan jenis galeri buku kerja tempat instans buku kerja baru muncul. Opsi meliputi:
Jenis | Lokasi galeri |
---|---|
workbook |
Default yang digunakan dalam sebagian besar laporan, termasuk galeri Buku Kerja Application Insights dan Azure Monitor. |
tsg |
Galeri Panduan Pemecahan Masalah di Application Insights. |
usage |
Galeri Lainnya di bawah Penggunaan di Application Insights. |
Bekerja dengan data buku kerja berformat JSON dalam parameter templat serializedData
Saat Anda mengekspor templat ARM untuk buku kerja Azure, sering kali ada tautan sumber daya tetap yang disematkan dalam parameter templat yang diekspor serializedData
. Tautan ini mencakup nilai yang berpotensi sensitif seperti ID langganan dan nama grup sumber daya, dan jenis ID sumber daya lainnya.
Contoh berikut menunjukkan kustomisasi templat ARM buku kerja yang diekspor, tanpa menggunakan manipulasi string. Pola yang diperlihatkan dalam contoh ini dimaksudkan untuk bekerja dengan data yang tidak diubah seperti yang diekspor dari portal Azure. Ini juga merupakan praktik terbaik untuk menutupi nilai sensitif yang disematkan saat Anda mengelola buku kerja secara terprogram. Untuk alasan ini, ID langganan dan grup sumber daya telah ditutupi di sini. Tidak ada modifikasi lain yang dilakukan pada nilai mentah serializedData
yang masuk.
{
"contentVersion": "1.0.0.0",
"parameters": {
"workbookDisplayName": {
"type": "string"
},
"workbookSourceId": {
"type": "string",
"defaultValue": "[resourceGroup().id]"
},
"workbookId": {
"type": "string",
"defaultValue": "[newGuid()]"
}
},
"variables": {
// serializedData from original exported Azure Resource Manager template
"serializedData": "{\"version\":\"Notebook/1.0\",\"items\":[{\"type\":1,\"content\":{\"json\":\"Replace with Title\"},\"name\":\"text - 0\"},{\"type\":3,\"content\":{\"version\":\"KqlItem/1.0\",\"query\":\"{\\\"version\\\":\\\"ARMEndpoint/1.0\\\",\\\"data\\\":null,\\\"headers\\\":[],\\\"method\\\":\\\"GET\\\",\\\"path\\\":\\\"/subscriptions/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/resourceGroups\\\",\\\"urlParams\\\":[{\\\"key\\\":\\\"api-version\\\",\\\"value\\\":\\\"2019-06-01\\\"}],\\\"batchDisabled\\\":false,\\\"transformers\\\":[{\\\"type\\\":\\\"jsonpath\\\",\\\"settings\\\":{\\\"tablePath\\\":\\\"$..*\\\",\\\"columns\\\":[]}}]}\",\"size\":0,\"queryType\":12,\"visualization\":\"map\",\"tileSettings\":{\"showBorder\":false},\"graphSettings\":{\"type\":0},\"mapSettings\":{\"locInfo\":\"AzureLoc\",\"locInfoColumn\":\"location\",\"sizeSettings\":\"location\",\"sizeAggregation\":\"Count\",\"opacity\":0.5,\"legendAggregation\":\"Count\",\"itemColorSettings\":null}},\"name\":\"query - 1\"}],\"isLocked\":false,\"fallbackResourceIds\":[\"/subscriptions/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/resourceGroups/XXXXXXX\"]}",
// parse the original into a JSON object, so that it can be manipulated
"parsedData": "[json(variables('serializedData'))]",
// create new JSON objects that represent only the items/properties to be modified
"updatedTitle": {
"content":{
"json": "[concat('Resource Group Regions in subscription \"', subscription().displayName, '\"')]"
}
},
"updatedMap": {
"content": {
"path": "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups')]"
}
},
// the union function applies the updates to the original data
"updatedItems": [
"[union(variables('parsedData')['items'][0], variables('updatedTitle'))]",
"[union(variables('parsedData')['items'][1], variables('updatedMap'))]"
],
// copy to a new workbook object, with the updated items
"updatedWorkbookData": {
"version": "[variables('parsedData')['version']]",
"items": "[variables('updatedItems')]",
"isLocked": "[variables('parsedData')['isLocked']]",
"fallbackResourceIds": ["[parameters('workbookSourceId')]"]
},
// convert back to an encoded string
"reserializedData": "[string(variables('updatedWorkbookData'))]"
},
"resources": [
{
"name": "[parameters('workbookId')]",
"type": "microsoft.insights/workbooks",
"location": "[resourceGroup().location]",
"apiVersion": "2018-06-17-preview",
"dependsOn": [],
"kind": "shared",
"properties": {
"displayName": "[parameters('workbookDisplayName')]",
"serializedData": "[variables('reserializedData')]",
"version": "1.0",
"sourceId": "[parameters('workbookSourceId')]",
"category": "workbook"
}
}
],
"outputs": {
"workbookId": {
"type": "string",
"value": "[resourceId( 'microsoft.insights/workbooks', parameters('workbookId'))]"
}
},
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#"
}
Dalam contoh ini, langkah-langkah berikut memfasilitasi penyesuaian templat ARM yang diekspor:
- Ekspor buku kerja sebagai templat ARM seperti yang dijelaskan di bagian sebelumnya.
- Di bagian templat
variables
:- Uraikan nilai ke
serializedData
dalam variabel objek JSON, yang membuat struktur JSON termasuk array item yang mewakili konten buku kerja. - Membuat objek JSON baru yang hanya mewakili item/properti yang akan dimodifikasi.
- Proyeksikan sekumpulan item konten JSON baru (
updatedItems
) dengan menggunakanunion()
fungsi untuk menerapkan modifikasi pada item JSON asli. - Buat objek buku kerja baru,
updatedWorkbookData
, yang berisiupdatedItems
danisLocked
version
/data dari data asli yang diurai dan sekumpulanfallbackResourceIds
yang dikoreksi . - Serialisasi konten JSON baru kembali ke variabel string baru,
reserializedData
.
- Uraikan nilai ke
- Gunakan variabel
reserializedData
baru sebagai pengganti propertiserializedData
asli. - Sebarkan sumber daya buku kerja baru dengan menggunakan templat ARM yang diperbarui.
Langkah berikutnya
Jelajahi bagaimana buku kerja yang digunakan untuk mendukung Pengalaman wawasan Storage yang baru.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk