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

如何通过Terraform在Azure Monitor指标警报描述中嵌入资源URL?

在Terraform的Azure指标警报描述中嵌入资源门户链接的解决方案

Azure资源的Azure门户跳转URL有固定构造规则,无需依赖Terraform官方提供的变量,可通过资源ID直接拼接生成:

  • 门户跳转URL格式:https://portal.azure.com/#resource/<资源ID>
  • 所有Azure资源的id属性可直接用于拼接,Terraform会自动注入对应资源的完整ID

示例实现

假设已定义CosmosDB资源:

resource "azurerm_cosmosdb_account" "async_cosmosdb" {
  name                = "sdl-au-prod-async-cosmosdb"
  location            = "australiaeast"
  resource_group_name = azurerm_resource_group.prod.name
  offer_type          = "Standard"
  kind                = "GlobalDocumentDB"
}

在指标警报资源中,直接将资源ID拼接进description字段:

resource "azurerm_monitor_metric_alert" "cosmosdb_availability_alert" {
  name                = "[P2]-[NA]-[prod_v1_SDL_api-async_azure_australiaeast_Commercial]-[sdl-au-prod-async-cosmosdb Cosmosdb Availability is LessThan Threshold]"
  resource_group_name = azurerm_resource_group.prod.name
  scopes              = [azurerm_cosmosdb_account.async_cosmosdb.id]

  criteria {
    metric_namespace = "Microsoft.DocumentDB/databaseAccounts"
    metric_name      = "Availability"
    aggregation      = "Average"
    operator         = "LessThan"
    threshold        = 100
  }

  description = "The availability of Async cosmosdb is less than 100%. Azure Portal Link: https://portal.azure.com/#resource/${azurerm_cosmosdb_account.async_cosmosdb.id}"
}

说明

  • 生成的URL会直接跳转至对应资源的Azure门户详情页,无需额外过滤或查找
  • 该方法适用于所有Azure资源类型,只要能获取到资源的id属性即可复用
  • 若需支持跨租户访问,可在URL中添加租户ID:https://portal.azure.com/#@<租户ID>/resource/<资源ID>,租户ID可通过azurerm_client_config数据源获取

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 08:45:24