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

是否有可创建Logic App动作的Azure Monitor告警的Terraform或ARM Template?

Data Factory管道失败触发Logic App的告警规则自动化实现方案

前置依赖

  • 已提前创建好目标Azure Data Factory实例
  • 已提前创建好可被告警触发的Logic App实例(需配置HTTP请求触发端点)
  • 已完成Azure资源的身份认证配置(Terraform/ARM对应操作权限)

Terraform 实现代码示例

核心用到的AzureRM资源为azurerm_monitor_metric_alert、azurerm_monitor_action_group,示例代码如下:

# 配置动作组,绑定Logic App触发端点
resource "azurerm_monitor_action_group" "logicapp_alert_ag" {
  name                = "adf-pipeline-fail-alert-ag"
  resource_group_name = "<你的资源组名称>"
  short_name          = "adffailag"

  logic_app_receiver {
    name                    = "trigger-failure-notify-logicapp"
    resource_id             = "<你的Logic App资源ID>"
    callback_url            = "<你的Logic App HTTP触发端点回调URL>"
    use_common_alert_schema = true # 建议开启通用告警schema,方便Logic App解析 payload
  }
}

# 配置Data Factory管道运行失败告警规则
resource "azurerm_monitor_metric_alert" "adf_pipeline_fail_alert" {
  name                = "adf-pipeline-failure-alert"
  resource_group_name = "<你的资源组名称>"
  scopes              = ["<你的Data Factory实例资源ID>"]
  description         = "Alert when ADF pipeline runs failed"
  frequency           = "PT5M" # 告警检查频率,可按需调整
  window_size         = "PT5M" # 检查时间窗口,可按需调整

  criteria {
    metric_namespace = "Microsoft.DataFactory/factories"
    metric_name      = "PipelineFailedRuns"
    aggregation      = "Total"
    operator         = "GreaterThanOrEqual"
    threshold        = 1

    dimension {
      name     = "Status"
      operator = "Include"
      values   = ["Failed"]
    }
    # 如需筛选特定管道,可以新增PipelineName维度指定
    # dimension {
    #   name     = "PipelineName"
    #   operator = "Include"
    #   values   = ["<指定管道名>"]
    # }
  }

  action {
    action_group_id = azurerm_monitor_action_group.logicapp_alert_ag.id
  }
}

ARM Template 实现示例

完整模板内容如下,部署时可替换对应参数值:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "actionGroupName": {
      "type": "string",
      "defaultValue": "adf-pipeline-fail-alert-ag"
    },
    "alertRuleName": {
      "type": "string",
      "defaultValue": "adf-pipeline-failure-alert"
    },
    "logicAppResourceId": {
      "type": "string",
      "metadata": {
        "description": "目标Logic App的资源ID"
      }
    },
    "logicAppCallbackUrl": {
      "type": "string",
      "metadata": {
        "description": "Logic App HTTP触发的回调URL"
      }
    },
    "adfResourceId": {
      "type": "string",
      "metadata": {
        "description": "目标Data Factory的资源ID"
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.Insights/actionGroups",
      "apiVersion": "2023-01-01",
      "name": "[parameters('actionGroupName')]",
      "location": "Global",
      "properties": {
        "groupShortName": "adffailag",
        "enabled": true,
        "logicAppReceivers": [
          {
            "name": "trigger-failure-notify-logicapp",
            "resourceId": "[parameters('logicAppResourceId')]",
            "callbackUrl": "[parameters('logicAppCallbackUrl')]",
            "useCommonAlertSchema": true
          }
        ]
      }
    },
    {
      "type": "Microsoft.Insights/metricAlerts",
      "apiVersion": "2018-03-01",
      "name": "[parameters('alertRuleName')]",
      "location": "Global",
      "dependsOn": [
        "[resourceId('Microsoft.Insights/actionGroups', parameters('actionGroupName'))]"
      ],
      "properties": {
        "description": "Alert when ADF pipeline runs failed",
        "severity": 3,
        "enabled": true,
        "scopes": [
          "[parameters('adfResourceId')]"
        ],
        "evaluationFrequency": "PT5M",
        "windowSize": "PT5M",
        "criteria": {
          "odata.type": "Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria",
          "allOf": [
            {
              "name": "PipelineFailedCount",
              "metricNamespace": "Microsoft.DataFactory/factories",
              "metricName": "PipelineFailedRuns",
              "aggregation": "Total",
              "operator": "GreaterThanOrEqual",
              "threshold": 1,
              "dimensions": [
                {
                  "name": "Status",
                  "operator": "Include",
                  "values": ["Failed"]
                }
                // 可按需添加PipelineName维度筛选特定管道
              ]
            }
          ]
        },
        "actions": [
          {
            "actionGroupId": "[resourceId('Microsoft.Insights/actionGroups', parameters('actionGroupName'))]"
          }
        ]
      }
    }
  ]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 04:30:04