能否通过Azure Resource Graph查询在Azure仪表板添加虚拟机启停按钮?
在Azure仪表板实现虚拟机快速启停列的方案
Azure Monitor的Kusto日志查询本身无法直接生成可点击的操作按钮,但可以通过以下两种方式实现快速启停需求:
方案一:修改现有日志查询,添加启停跳转链接
直接扩展你的查询,生成对应VM的启停操作门户链接,再在仪表板磁贴中启用链接功能:
修改后的Kusto查询:
resources | where type == "microsoft.compute/virtualmachines" | extend PowerState = tostring(properties.extended.instanceView.powerState.displayStatus) | extend StartLink = strcat('https://portal.azure.com/#view/Microsoft_Azure_Compute/VirtualMachineMenuBlade/~/overview/id/', id, '/action/start') | extend StopLink = strcat('https://portal.azure.com/#view/Microsoft_Azure_Compute/VirtualMachineMenuBlade/~/overview/id/', id, '/action/stop') | project 虚拟机名称 = name, 电源状态 = PowerState, 开机 = case(PowerState != 'VM running', StartLink, ''), 关机 = case(PowerState == 'VM running', StopLink, '') | order by 电源状态 desc
配置步骤:
- 用修改后的查询替换原磁贴的查询语句
- 在磁贴的「可视化」配置中选择「表格」视图
- 找到「开机」「关机」列,开启「自动链接」选项(部分视图可直接识别URL为可点击链接)
- 保存配置后,点击列中的链接会直接跳转到对应VM的启停操作页面,确认后即可执行操作
方案二:使用Azure Workbooks创建交互式启停按钮
如果需要更直观的按钮样式,推荐用Azure Workbooks构建交互式组件后添加到仪表板:
- 登录Azure门户,搜索并打开Workbooks,创建空白工作簿
- 添加资源数据源:选择目标资源组,资源类型选
Microsoft.Compute/virtualmachines - 添加表格组件,在组件设置中:
- 包含「名称」「电源状态」等基础列
- 添加自定义列,使用以下表达式生成动态启停按钮:
{电源状态} == 'VM running' ? '<a href="https://portal.azure.com/#view/Microsoft_Azure_Compute/VirtualMachineMenuBlade/~/overview/id/{id}/action/stop" target="_blank"><button style="background-color:#dc3545;color:white;border:none;padding:4px 8px;border-radius:4px;">关机</button></a>' : '<a href="https://portal.azure.com/#view/Microsoft_Azure_Compute/VirtualMachineMenuBlade/~/overview/id/{id}/action/start" target="_blank"><button style="background-color:#28a745;color:white;border:none;padding:4px 8px;border-radius:4px;">开机</button></a>' - 将自定义列的渲染方式设置为「HTML」,按钮会直接显示为可点击样式
- 保存Workbooks后,点击工作簿右上角的「添加到仪表板」,选择目标仪表板完成添加
内容的提问来源于stack exchange,提问作者Sylions
相关产品推荐
相关产品推荐

