Çalışma kitaplarını program aracılığıyla yönetme

Kaynak sahipleri, Azure Resource Manager şablonları (ARM şablonları) aracılığıyla program aracılığıyla çalışma kitaplarını oluşturabilir ve yönetebilir.

Bu özellik aşağıdaki gibi senaryolarda yararlı olabilir:

  • Kuruluşa veya etki alanına özgü analiz raporlarını ve kaynak dağıtımlarını dağıtma. Örneğin, yeni uygulamalarınız veya sanal makineleriniz için kuruluşa özgü performans ve hata çalışma kitaplarını dağıtabilirsiniz.
  • Mevcut kaynaklar için çalışma kitaplarını kullanarak standart raporlar veya panolar dağıtma.

Çalışma kitabı, istenen alt/kaynak grubunda ve ARM şablonlarında belirtilen içerikle oluşturulur.

program aracılığıyla iki tür çalışma kitabı kaynağı yönetilebilir:

Çalışma kitabı şablonu dağıtmak için ARM şablonu

  1. Program aracılığıyla dağıtmak istediğiniz çalışma kitabını açın.

  2. Düzenle'yi seçerek çalışma kitabını düzenleme moduna geçirin.

  3. Araç çubuğundaki /> düğmesini kullanarak <Gelişmiş Düzenleyici açın.

  4. Galeri Şablonu sekmesinde olduğunuzdan emin olun.

    Galeri Şablonu sekmesini gösteren ekran görüntüsü.

  5. Galeri şablonundaki JSON dosyasını panoya kopyalayın.

  6. Aşağıdaki örnek ARM şablonu, Azure İzleyici çalışma kitabı galerisine bir çalışma kitabı şablonu dağıtır. Yerine kopyaladığınız JSON'ı <PASTE-COPIED-WORKBOOK_TEMPLATE_HERE>yapıştırın. Çalışma kitabı şablonu oluşturan bir başvuru ARM şablonu için bu GitHub deposuna bakın.

    {
        "$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. nesnesinde galleries ve category tuşlarını değerlerinizle doldurunname. Sonraki bölümde parametreler hakkında daha fazla bilgi edinin.

  8. Azure portalını, komut satırı arabirimini veya PowerShell'i kullanarak bu ARM şablonunu dağıtın.

  9. Azure portalını açın ve ARM şablonunda seçilen çalışma kitabı galerisine gidin. Örnek şablonda Azure İzleyici çalışma kitabı galerisine gidin:

    1. Azure portalını açın ve Azure İzleyici'ye gidin.
    2. İçindekiler tablosundan açın Workbooks .
    3. Galeride şablonunuzu kategorisinin Deployed Templatesaltında bulun. (Mor öğelerden biri olacaktır.)

Parametreler

Parametreler Açıklama
name Azure Resource Manager'daki çalışma kitabı şablon kaynağının adı.
type Her zaman microsoft.insights/workbooktemplates.
location Çalışma kitabının oluşturulacağı Azure konumu.
apiVersion 2019-10-17 önizlemesi.
type Her zaman microsoft.insights/workbooktemplates.
galleries Bu çalışma kitabı şablonunun gösterildiği galeri kümesi.
gallery.name Galerideki çalışma kitabı şablonunun kolay adı.
gallery.category Galeride şablonun yerleştirildiği grup.
gallery.order Şablonu galerideki bir kategori içinde gösterme sırasına karar veren bir sayı. Düşük sıra, daha yüksek öncelik anlamına gelir.
gallery.resourceType Galeriye karşılık gelen kaynak türü. Bu tür genellikle kaynağa karşılık gelen kaynak türü dizesidir (örneğin, microsoft.operationalinsights/workspaces).
gallery.type Çalışma kitabı türü olarak adlandırılır. Bu benzersiz anahtar, bir kaynak türü içindeki galeriyi ayırt eder. Örneğin Application Insights' ın türleri ve tsg farklı çalışma kitabı galerilerine karşılık gelen türleri workbook vardır.

Galeriler

Galeri Kaynak türü Çalışma kitabı türü
Azure İzleyici'deki çalışma kitapları Azure Monitor workbook
Azure İzleyici'de VM İçgörüleri Azure Monitor vm-insights
Log Analytics çalışma alanında çalışma kitapları microsoft.operationalinsights/workspaces workbook
Application Insights'ta Çalışma Kitapları microsoft.insights/components workbook
Application Insights'ta sorun giderme kılavuzları microsoft.insights/components tsg
Application Insights'ta kullanım microsoft.insights/components usage
Kubernetes hizmetinde çalışma kitapları Microsoft.ContainerService/managedClusters workbook
Kaynak gruplarındaki çalışma kitapları microsoft.resources/subscriptions/resourcegroups workbook
Microsoft Entra Id'deki çalışma kitapları microsoft.aadiam/tenant workbook
Sanal makinelerde VM İçgörüleri microsoft.compute/virtualmachines insights
Sanal makine ölçek kümelerinde VM İçgörüleri microsoft.compute/virtualmachinescalesets insights

Çalışma kitabı örneğini dağıtmak için ARM şablonu

  1. Program aracılığıyla dağıtmak istediğiniz bir çalışma kitabını açın.
  2. Düzenle'yi seçerek çalışma kitabını düzenleme moduna geçirin.
  3. /> öğesini seçerek <Gelişmiş Düzenleyici açın.
  4. Düzenleyicide Şablon Türü'nü ARM şablonuna geçirin.
  5. Oluşturmak için ARM şablonu düzenleyicide gösterilir. İçeriği kopyalayın ve olduğu gibi kullanın veya hedef kaynağı da dağıtan daha büyük bir şablonla birleştirin. ARM şablonunun çalışma kitabı kullanıcı arabiriminden nasıl alındığını gösteren ekran görüntüsü.

Örnek ARM şablonu

Bu şablon, görüntülenen Hello World!bir çalışma kitabının nasıl dağıtıldığını gösterir.

{
    "$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'))]"
        }
    }
}

Şablon parametreleri

Parametre Açıklama
workbookDisplayName Galeri veya Kaydedilmiş Liste'de kullanılan çalışma kitabının kolay adı. Kaynak grubu ve kaynak kapsamında benzersiz olması gerekir.
workbookType Çalışma kitabının görüntülendiği galeri. Desteklenen değerler çalışma kitabı, tsgve Azure İzleyici'yi içerir.
workbookSourceId Çalışma kitabının ilişkilendirileceği kaynak örneğinin kimliği. Yeni çalışma kitabı, bu kaynak örneğiyle ilgili olarak, örneğin, kaynağın çalışma kitabı altındaki içindekiler tablosunda gösterilir. Çalışma kitabınızın Azure İzleyici'deki Çalışma Kitapları galerisinde gösterilmesini istiyorsanız kaynak kimliği yerine Azure İzleyici dizesini kullanın.
workbookId Bu çalışma kitabı örneği için benzersiz guid. Otomatik olarak yeni bir guid oluşturmak için kullanın [newGuid()] .
kind Oluşturulan çalışma kitabının paylaşılıp paylaşılmadığını belirtmek için kullanılır. Tüm yeni çalışma kitapları paylaşılan değeri kullanır.
location Çalışma kitabının oluşturulacağı Azure konumu. Kaynak grubuyla aynı konumda oluşturmak için kullanın [resourceGroup().location] .
serializedData Çalışma kitabında kullanılacak içeriği veya yükü içerir. Değeri almak için çalışma kitapları kullanıcı arabirimindeki ARM şablonunu kullanın.

Çalışma kitabı türleri

Çalışma kitabı türleri, yeni çalışma kitabı örneğinin görüntülendiği çalışma kitabı galerisi türünü belirtir. Seçenekler arasında bulunanlar:

Tür Galeri konumu
workbook Application Insights çalışma kitapları galerisi ve Azure İzleyici dahil olmak üzere çoğu raporda kullanılan varsayılan değerdir.
tsg Application Insights'taki Sorun Giderme Kılavuzları galerisi.
usage Application Insights'ta Kullanım altındaki Diğer galerisi.

SerializedData şablon parametresinde JSON biçimli çalışma kitabı verileriyle çalışma

Bir Azure çalışma kitabı için ARM şablonunu dışarı aktardığınızda, genellikle dışarı aktarılan serializedData şablon parametresine eklenmiş sabit kaynak bağlantıları vardır. Bu bağlantılar abonelik kimliği ve kaynak grubu adı gibi hassas olabilecek değerleri ve diğer kaynak kimlik türlerini içerir.

Aşağıdaki örnekte, dize işlemeye başvurmadan dışarı aktarılan bir çalışma kitabı ARM şablonunun özelleştirilmesi gösterilmektedir. Bu örnekte gösterilen desen, Azure portalından dışarı aktarılmış şekilde değiştirilmemiş verilerle çalışmak üzere tasarlanmıştır. Ayrıca, çalışma kitaplarını program aracılığıyla yönetirken eklenmiş hassas değerleri maskelemek de en iyi yöntemdir. Bu nedenle abonelik kimliği ve kaynak grubu burada maskelenmiştir. Ham gelen serializedData değerde başka değişiklik yapılmadı.

{
  "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#"
}

Bu örnekte, aşağıdaki adımlar dışarı aktarılan ARM şablonunu özelleştirmeyi kolaylaştırır:

  1. Önceki bölümde açıklandığı gibi çalışma kitabını ARM şablonu olarak dışarı aktarın.
  2. Şablonun variables bölümünde:
    1. Değeri bir JSON nesne değişkenine ayrıştırarak serializedData çalışma kitabının içeriğini temsil eden bir dizi öğe içeren bir JSON yapısı oluşturur.
    2. Yalnızca değiştirilecek öğeleri/özellikleri temsil eden yeni JSON nesneleri oluşturun.
    3. Değişiklikleri özgün JSON öğelerine uygulamak için işlevini kullanarak union() yeni bir JSON içerik öğeleri kümesi (updatedItems) yansıtın.
    4. özgün ayrıştırılmış verilerden ve versionisLocked/düzeltilmiş bir kümesinden fallbackResourceIdsverileri içeren updatedItems yeni bir çalışma kitabı nesnesi updatedWorkbookDataoluşturun.
    5. Yeni JSON içeriğini yeniden yeni dize değişkeni olarak seri hale getirme. reserializedData
  3. Özgün serializedData özelliği yerine yeni reserializedData değişkeni kullanın.
  4. Güncelleştirilmiş ARM şablonunu kullanarak yeni çalışma kitabı kaynağını dağıtın.

Sonraki adımlar

Yeni Depolama içgörüleri deneyimini desteklemek için çalışma kitaplarının nasıl kullanıldığını keşfedin.