You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现Azure Data Explorer仪表板部署自动化?支持ARM/Bicep/Terraform吗?

ADX仪表板自动化部署方案及工具支持

当然有自动化部署的方案,而且ARM、Bicep、Terraform这三个工具都完全支持,具体用法如下:

  • ARM模板
    你可以将UI导出的仪表板JSON内容,直接嵌入到ARM模板的Microsoft.Portal/dashboards资源的properties字段中。示例片段大概是这样:

    {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
      "resources": [
        {
          "type": "Microsoft.Portal/dashboards",
          "apiVersion": "2020-09-01",
          "name": "your-dashboard-name",
          "location": "[resourceGroup().location]",
          "properties": {
            "lenses": {
              "0": {
                "order": 0,
                "parts": [
                  // 这里粘贴你从UI导出的仪表板JSON内容
                ]
              }
            },
            "metadata": {
              "model": {
                "timeRange": {
                  "value": {
                    "relative": {
                      "duration": 24,
                      "timeUnit": 1
                    }
                  },
                  "type": "MsPortalFx.Composition.Configuration.ValueTypes.TimeRange"
                }
              }
            }
          }
        }
      ]
    }
    

    之后用Azure CLI命令az deployment group create就能批量部署。

  • Bicep
    Bicep作为ARM的简化语法,写起来更清爽。你可以直接定义dashboard资源,把导出的JSON内容作为属性传入,还能通过参数化让模板更灵活。示例:

    resource adxDashboard 'Microsoft.Portal/dashboards@2020-09-01' = {
      name: 'your-dashboard-name'
      location: resourceGroup().location
      properties: {
        lenses: {
          '0': {
            order: 0
            parts: [
              // 粘贴导出的仪表板JSON内容
            ]
          }
        }
        metadata: {
          model: {
            timeRange: {
              value: {
                relative: {
                  duration: 24
                  timeUnit: 1
                }
              }
              type: 'MsPortalFx.Composition.Configuration.ValueTypes.TimeRange'
            }
          }
        }
      }
    }
    

    编译成ARM模板后部署,或者直接用az deployment group create --template-file指定Bicep文件部署。

  • Terraform
    AzureRM Provider提供了azurerm_portal_dashboard资源来管理ADX仪表板。你只需要把导出的JSON内容赋值给dashboard_properties参数即可,示例:

    resource "azurerm_portal_dashboard" "adx_dashboard" {
      name                = "your-dashboard-name"
      location            = azurerm_resource_group.example.location
      resource_group_name = azurerm_resource_group.example.name
    
      dashboard_properties = jsonencode({
        lenses = {
          "0" = {
            order = 0
            parts = [
              // 这里放入导出的仪表板JSON内容
            ]
          }
        }
        metadata = {
          model = {
            timeRange = {
              value = {
                relative = {
                  duration = 24
                  timeUnit = 1
                }
              }
              type = "MsPortalFx.Composition.Configuration.ValueTypes.TimeRange"
            }
          }
        }
      })
    }
    

    初始化Terraform配置后,执行terraform apply就能完成部署。

通用步骤总结:

  1. 从UI导出已配置好的ADX仪表板JSON文件;
  2. 把JSON中的核心内容(lenses、metadata部分)提取出来,嵌入到对应工具的模板/配置中;
  3. 用工具的部署命令完成自动化部署,还能结合CI/CD流水线实现批量、重复部署。

内容的提问来源于stack exchange,提问作者Alexander

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 13:42:23