Bagikan melalui


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

  1. Buka buku kerja yang ingin Anda sebarkan secara terprogram.

  2. Alihkan buku kerja ke mode edit dengan memilih Edit.

  3. Buka Editor Lanjutan dengan menggunakan tombol </> pada toolbar.

  4. Pastikan Anda berada di tab Templat Galeri.

    Screenshot that shows the Gallery Template tab.

  5. Salin JSON di templat galeri ke clipboard.

  6. 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>
                }
            }
        ]
    }
    
  7. galleries Di objek , isi name kunci dan category dengan nilai Anda. Pelajari lebih lanjut tentang parameter di bagian berikutnya.

  8. Sebarkan templat ARM ini dengan menggunakan portal Azure, antarmuka baris perintah, atau PowerShell.

  9. Buka portal Azure dan buka galeri buku kerja yang dipilih dalam templat ARM. Dalam templat contoh, buka galeri buku kerja Azure Monitor:

    1. Buka portal Azure dan buka Azure Monitor.
    2. Buka Workbooks dari daftar isi.
    3. 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

  1. Buka buku kerja yang ingin Anda sebarkan secara terprogram.
  2. Alihkan buku kerja ke mode edit dengan memilih Edit.
  3. Buka Editor Lanjutan dengan memilih< />.
  4. Di editor, alihkan Jenis Templat ke templat ARM.
  5. 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. Screenshot that shows how to get the ARM template from within the workbook UI.

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:

  1. Ekspor buku kerja sebagai templat ARM seperti yang dijelaskan di bagian sebelumnya.
  2. Di bagian templat variables :
    1. Uraikan nilai ke serializedData dalam variabel objek JSON, yang membuat struktur JSON termasuk array item yang mewakili konten buku kerja.
    2. Membuat objek JSON baru yang hanya mewakili item/properti yang akan dimodifikasi.
    3. Proyeksikan sekumpulan item konten JSON baru (updatedItems) dengan menggunakan union() fungsi untuk menerapkan modifikasi pada item JSON asli.
    4. Buat objek buku kerja baru, updatedWorkbookData, yang berisi updatedItems danisLocked version/data dari data asli yang diurai dan sekumpulan fallbackResourceIdsyang dikoreksi .
    5. Serialisasi konten JSON baru kembali ke variabel string baru, reserializedData.
  3. Gunakan variabel reserializedData ​​baru sebagai pengganti properti serializedData asli.
  4. 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.