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

如何在Azure Data Factory中终止超时运行的管道并发送邮件告警?

Azure Data Factory管道超时终止+邮件通知解决方案

第一步:设置管道自动超时终止

在ADF管道的常规设置中,找到「超时」选项,设置具体时长(格式为ISO 8601,比如PT1H代表1小时),管道运行超过这个时间会自动终止,状态标记为「失败(超时)」。

方法一:用ADF自带警报规则发通知(最简单)

  1. 进入Azure Portal的ADF资源,左侧菜单选择「警报」→「创建警报规则」
  2. 配置信号逻辑:
    • 信号名称选择「管道运行失败」
    • 添加筛选条件:「失败原因」包含Pipeline run timed out(ADF超时失败的默认原因关键词)
  3. 配置动作组:
    • 新建或选择已有动作组,添加「电子邮件/短信/推送/语音」类型,填写收件邮箱
  4. 保存规则后,管道超时失败时会自动发送邮件通知。

方法二:用Logic App实现精准控制(解决你之前的配置问题)

你之前的问题大概率是用错了触发器,不用手动存RunID到表,直接用ADF的事件触发:

  1. 新建Logic App,选择触发器「当Azure Data Factory管道运行失败时」
  2. 配置触发器:选择你的ADF资源,在「高级选项」中添加筛选条件:「失败原因」包含Pipeline run timed out
  3. 添加「发送电子邮件」动作(比如用Office 365 Outlook连接器),邮件内容可插入动态参数:
    • 管道名称:@{triggerBody()?['pipelineName']}
    • 运行ID:@{triggerBody()?['runId']}
    • 触发时间:@{triggerBody()?['triggerTime']}
  4. 保存Logic App后,只要管道因超时失败,就会自动触发发邮件。

进阶:主动终止超时运行的管道(如果需要提前干预)

如果ADF自带的超时设置满足不了需求,比如需要定时检查并终止:

  1. 新建Logic App,用「定期」触发器(比如每15分钟运行一次)
  2. 添加「获取Azure Data Factory管道运行」动作:
    • 筛选条件:「运行状态」等于InProgress,「触发时间」小于@{addToTime(utcNow(), -1, 'Hour')}(这里以1小时超时为例,即触发时间超过1小时前的运行)
  3. 加入「应用到每个」循环,遍历筛选出的运行中管道
  4. 循环内添加「取消Azure Data Factory管道运行」动作,传入对应RunID
  5. 取消后添加发送邮件动作,通知相关人员管道已被主动终止。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 07:22:37