You need to enable JavaScript to run this app.
导航
通用 Webhook 触发
最近更新时间:2024.08.16 14:58:39首次发布时间:2023.07.12 20:22:45

通用 Webhook 触发用于代码源以外的第三方工具或自有系统触发流水线运行。一条流水线支持配置多个通用 Webhook 触发器。本文为您介绍如何配置通用 Webhook 触发规则。

前提条件

已创建流水线,具体操作请参见 创建流水线

操作步骤

  1. 使用以下任意一种方式进入添加触发器面板。

    • 编辑流水线

      1. 在流水线列表中选择目标流水线,单击 ... > 编辑,进入当前流水线的流程编排页签。
      2. 在代码源&触发器面板,单击 添加 > 通用 Webhook 触发
    • 触发器快捷入口

      1. 流水线列表中,单击目标流水线名称,进入当前流水线的运行记录页签。
      2. 单击 触发器,切换至触发器页签。
      3. 单击 添加触发器 > 通用 Webhook 触发
  2. 配置通用 Webhook 触发规则。

    alt

    配置项说明
    触发器类型本场景为 通用 Webhook 触发
    触发器名称自定义 Webhook 触发器的名称。同一流水线下的 Webhook 触发器名称不可重复。
    URL展示当前流水线的 Webhook URL,流水线通过该 URL 接收 Webhook 触发消息。

    运行时变量

    可选配置。运行时变量用于配置 Webhook 触发流水线运行时,动态变量的运行值。如果不配置,动态变量将使用 流程编排 > 变量管理 中填写的默认值。

    动态变量的运行值既支持一个静态值,也支持动态传参。

    • 静态值:例如 10。
    • 动态传参:提取 Hook 消息中的对应内容,完成变量动态赋值。支持 JsonPath 格式和普通格式,详细内容参见下文。

    注意

    变量生效优先级:动态变量传参 > 动态变量静态运行值 > 动态变量默认值(创建变量时配置的默认值)

    备注填写当前触发器的备注信息,可以为空。

    运行时分支

    当流水线存在代码源时,支持配置运行时使用的代码分支。

    • 开启:可选择 Webhook 触发流水线时使用的代码分支。如果希望 Webhook 触发时使用非默认分支,请配置此参数。例如:同一条流水线,代码源默认分支为主分支,但希望 Webhook 触发特定分支,则可通过配置此参数实现。
    • 关闭: Webhook 触发流水线时会使用代码源配置的默认分支。
  3. 单击 确定,完成 Webhook 触发配置。

  4. 如果从编辑流水线入口进入,需单击右下角 保存,保存流水线配置。

后续操作

将流水线的 URL 配置至您的平台,保证流水线可正常接收 Webhook 触发消息。您也可以使用以下命令直接触发流水线运行。

curl --location 'https://cp.volces.com/v2/webhook/your-webhook' \
--header 'Content-Type: application/json' \
--data-raw '{
  "xx": "xx",
  "xx": "xx"
}'

触发流水线运行时,支持通过 JsonPath 格式或普通格式,提取 Hook 中的消息,对动态变量进行传参。下文为您分别介绍这两种方式。

通过 JsonPath 格式动态传参

JsonPath 主要用于从 JSON 结构中定位和提取特定部分的数据。它提供了一种简洁而强大的方式来指定要选择的元素或属性,适用于处理复杂的嵌套数据结构。本文以一个商店的 JSON 文本为例,为您演示通过$.store.book[*].author提取商店中所有 book 的作者。

  1. 在流水线的 流程编排 > 变量管理,配置你希望传递的动态变量和默认值。示例如下:

  2. 开启通用 Webhook 触发,在 运行时变量 选择步骤 1 配置的动态变量,并通过 JsonPath 格式,配置运行值。示例如下:

  3. 调用并使用 data-raw 信息传递触发参数,修改运行时变量值。示例如下:

    curl --location 'https://cp.volces.com/v2/webhook/your-webhook' \
    --header 'Content-Type: application/json' \
    --data-raw '{ "store": {
        "book": [ 
          { "category": "reference",
            "author": "Nigel Rees",
            "title": "Sayings of the Century",
            "price": 8.95
          },
          { "category": "fiction",
            "author": "Evelyn Waugh",
            "title": "Sword of Honour",
            "price": 12.99
          },
          { "category": "fiction",
            "author": "Herman Melville",
            "title": "Moby Dick",
            "isbn": "0-553-21311-3",
            "price": 8.99
          },
          { "category": "fiction",
            "author": "J. R. R. Tolkien",
            "title": "The Lord of the Rings",
            "isbn": "0-395-19395-8",
            "price": 22.99
          }
        ],
        "bicycle": {
          "color": "red",
          "price": 19.95
        }
      }
    }'
    
  4. 可以看到,示例中的变量user初始值为xiaoming,触发后变化为[Nigel Rees,Evelyn Waugh,Herman Melville,J. R. R. Tolkien]

通过普通格式动态传参

普通格式使用比较简单,无需学习 JsonPath 语法,适用于提取单个值或简单的数据类型。本文以一个简单的示例为您演示如何使用普通格式进行动态传参。

  1. 在流水线的 流程编排 > 变量管理,配置你希望传递的同名动态变量和默认值。示例如下:

  2. 开启通用 Webhook 触发,在 运行时变量 选择步骤 1 配置的动态变量。示例如下:

  3. 调用并使用 data-raw 信息传递触发参数,修改运行时变量值。示例如下:

    curl --location 'https://cp.volces.com/v2/webhook/your-webhook' \
    --header 'Content-Type: application/json' \
    --data-raw '{"name": "b"}'
    
  4. 可以看到,示例中的变量name初始值为a,触发后的变化为了b