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

如何在ADF管道中使用最少Web Activity发送MS Teams运行失败通知?

单Web Activity实现MS Teams的ADF失败通知方案

核心实现逻辑

通过ADF的活动失败依赖机制,让所有业务活动的失败分支统一指向同一个Web Activity,仅用1个Web Activity即可实现“任一活动失败即触发Teams通知”的需求,同时避免冗余调用降低成本。

具体配置步骤

  1. 配置Teams通知的Web Activity

    • 在ADF管道中创建单个Web Activity,配置请求类型为POST,目标URL为你的MS Teams频道入站Webhook(需提前在Teams频道中创建)。
    • 构造JSON请求体,动态注入管道和失败活动的关键信息,示例:
      {
        "@type": "MessageCard",
        "@context": "http://schema.org/extensions",
        "summary": "ADF管道运行失败告警",
        "themeColor": "FF0000",
        "sections": [
          {
            "activityTitle": "管道名称:@{pipeline().Pipeline}",
            "facts": [
              {
                "name": "失败活动",
                "value": "@{activity('当前失败活动名称')?.Error?.Message}"
              },
              {
                "name": "运行ID",
                "value": "@{pipeline().RunId}"
              },
              {
                "name": "触发时间",
                "value": "@{utcnow()}"
              }
            ]
          }
        ]
      }
      
    • 注意:activity('当前失败活动名称')需根据实际失败活动动态调整,或使用管道变量统一传递失败活动信息(若活动较多,可在每个业务活动失败时设置变量,再在Web Activity中引用)。
  2. 绑定所有业务活动的失败依赖

    • 对管道内所有需要监控的业务活动(如Copy Data、Lookup、Execute Pipeline等),添加失败时的依赖关系:
      • 在ADF画布中,点击业务活动右上角的「+」符号,选择「添加依赖」,设置依赖条件为「失败时」,然后将连线拖至之前创建的Web Activity。
    • 此配置确保只要任一业务活动失败,就会触发这个唯一的Web Activity发送通知。
  3. 验证与调试

    • 故意让某一个业务活动失败(如设置错误的数据源路径),触发管道运行后,检查Teams频道是否收到包含失败详情的通知。
    • 若通知未触发,可查看ADF运行日志中Web Activity的状态:
      • 检查是否因依赖条件设置错误(如误设为「成功时」)导致未执行;
      • 检查请求体中的动态变量是否解析正确,可通过「测试运行」查看Web Activity的实际请求内容。

你之前单Web Activity失败的常见原因

  • 依赖条件配置错误:将业务活动与Web Activity的依赖设为「成功时」,而非「失败时」,导致只有活动成功才触发通知;
  • 动态变量引用错误:请求体中未正确引用pipeline()或activity()对象,导致请求内容无效,被Teams Webhook拒绝;
  • Teams Webhook无效:Webhook URL过期或权限受限,需重新在Teams频道生成入站Webhook。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 05:53:13