如何实现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就能完成部署。
通用步骤总结:
- 从UI导出已配置好的ADX仪表板JSON文件;
- 把JSON中的核心内容(lenses、metadata部分)提取出来,嵌入到对应工具的模板/配置中;
- 用工具的部署命令完成自动化部署,还能结合CI/CD流水线实现批量、重复部署。
内容的提问来源于stack exchange,提问作者Alexander
相关产品推荐
相关产品推荐

