使用Terraform创建Azure虚拟机删除与关机监控活动日志告警的操作名称及类别参数查询
解决Azure虚拟机活动日志告警的Terraform配置问题
我来帮你搞定这两个监控告警的配置问题,下面会直接给出正确的参数取值,以及教你怎么自己找到这些规范的操作名称,以后遇到类似场景也能轻松处理。
1. 虚拟机删除告警的完整配置
当虚拟机被删除时,对应的操作名称是Microsoft.Compute/virtualMachines/delete,类别固定为Administrative(因为这属于管理类操作)。完整的Terraform代码如下:
resource "azurerm_monitor_activity_log_alert" "vm_delete_alert" { name = "vm-delete-alert" resource_group_name = azurerm_resource_group.main.name scopes = [azurerm_resource_group.main.id] description = "Alert when virtual machine is deleted" criteria { resource_id = azurerm_virtual_machine.example.id operation_name = "Microsoft.Compute/virtualMachines/delete" category = "Administrative" } # 可添加告警动作组(比如邮件通知),示例如下 action { action_group_id = azurerm_monitor_action_group.alert_group.id } }
2. 虚拟机关机状态变更告警的配置
虚拟机的关机分两种常见场景,对应的操作名称不同,你可以根据实际需求选择:
- 停止并解除分配(释放VM计算资源,仅保留磁盘):操作名称是
Microsoft.Compute/virtualMachines/deallocate/action - 停止(保留VM资源):操作名称是
Microsoft.Compute/virtualMachines/powerOff/action
两种场景的类别都是Administrative,以下是示例配置(以解除分配为例):
resource "azurerm_monitor_activity_log_alert" "vm_shutdown_alert" { name = "vm-shutdown-alert" resource_group_name = azurerm_resource_group.main.name scopes = [azurerm_resource_group.main.id] description = "Alert when virtual machine is deallocated/shutdown" criteria { resource_id = azurerm_virtual_machine.example.id operation_name = "Microsoft.Compute/virtualMachines/deallocate/action" category = "Administrative" } action { action_group_id = azurerm_monitor_action_group.alert_group.id } }
3. 如何自己确定规范的操作名称和类别
以后遇到其他资源的告警需求,不用再纠结参数取值,用这几种方法就能轻松找到:
- 通过Azure门户查询:进入目标VM的「活动日志」页面,找到已经执行过的对应操作(比如手动删一次测试VM),查看操作详情里的「操作名称」字段,这个值就是你需要填的
operation_name;类别基本都是Administrative(管理类操作)。 - 用Azure CLI查询历史操作:执行以下命令,替换你的资源组和VM信息,就能列出该VM的所有历史操作及其名称和类别:
az monitor activity-log list --resource-group <your-rg-name> --resource <your-vm-resource-id> --query "[].{OperationName:operationName, Category:category}" --output table
- 参考官方操作列表:Azure官方文档会按资源类型列出所有支持的操作名称,比如搜索「Azure Compute资源提供程序操作」就能找到Compute类资源(包括VM)的所有规范操作名称,这些都是Terraform里可以直接使用的取值。
内容的提问来源于stack exchange,提问作者UserP
相关产品推荐
相关产品推荐

