You need to enable JavaScript to run this app.
导航
配置任务通知提醒
最近更新时间:2023.05.15 14:12:31首次发布时间:2022.06.23 20:13:53

持续交付提供任务维度的通知提醒,支持通过 Webhook 和飞书机器人两种方式推送任务维度的消息,帮助您及时掌握任务动态。本文为您介绍如何配置任务通知提醒。

前提条件

  • 已创建流水线,具体操作请参见 创建流水线
  • 如果你希望通过 Webhook 接收任务消息,需提前准备接收通知的 hookurl 地址。
  • 如果你希望通过飞书机器人接收任务消息,需提前添加飞书机器人,并准备好机器人的 hookurl 地址。具体操作可参考 飞书开发者指南

操作步骤

  1. 登录 持续交付控制台

  2. 在左侧导航栏选择 工作区,进入 工作区 页面。

  3. 在工作区列表中选择目标工作区名称,进入该工作区。

  4. 在流水线列表中选择目标流水线,单击 编辑,默认进入 编辑流水线 页面的 流程配置 页签。

  5. 单击需要接收消息的任务标题,在编辑任务页面,启用 Webhook 通知 开关。

  6. 配置 Webhook 通知信息。
    alt

    配置项说明

    Webhook 地址

    消息将通过 Webhook 的方式推送给目标 URL。支持飞书机器人和通用格式两种方式,请根据需要选择。

    • 飞书机器人:将消息推送至飞书机器人。
      • Webhook 地址:输入飞书机器人的 hookurl 地址。
    • 通用格式:流水线将推送一条 POST 请求至目标 URL,详细内容请参见下方的 POST 请求样例。
      • Webhook 地址:输入需接收通知的平台或工具的 hookurl 地址。
      • Token:非必填,请求头中携带用于验证推送合法性。

    通知条件

    持续交付提供任务开始、任务成功、任务失败、任务等待中、任务已取消 5 种通知条件。支持多选,默认勾选任务失败。

    • 任务开始:任务开始执行后发送通知。
    • 任务成功:任务执行成功后发送通知。
    • 任务失败:任务执行失败后发送通知。
    • 任务等待中:任务处于等待中发送通知,主要指人工卡点场景:流水线运行到人工卡点任务时,会进入暂停状态,等待人工确认是否继续运行流水线。
    • 任务已取消:任务被取消后发送通知。人为终止流水线后,未执行的任务状态为已取消。
  7. 单击 确定,完成任务通知提醒配置。

  8. 单击右下角 保存,保存流水线配置。

POST 请求样例

Webhook 通用格式的通知内容为 POST 请求,详细样例如下:

//任务维度的 Webhook 通知样例

{
  "ID": "630443044b292aae4c91****",  //流水线运行ID
  "Type": "Task",  //类型:任务
  "PipelineName":  "Java项目-dev",  //流水线名称
  "PipelineRecordID": "630443044b292aae4c91****",  //流水线运行记录ID
  "URL": "https://console.volcengine.com/cp/workspace/****/pipeline/****/detail/record/****",  //流水线运行记录url
  "Triggerer": {
    "AccountId": 210013****,  //火山引擎账号id
    "UserId": 107****,  //运行人id
    "Name": ""  //用户名
  },
  "Status": "Running",  //流水线状态,取值包含 Pending, Preparing, Running, Failed, Succeeded, Timeout, Canceled
  "StageName": "阶段1",  //阶段名称
  "TaskName": "命令执行",  //任务名称
  "TaskStatus": "Succeeded",  //任务状态,取值包含 Pending, Running, Succeeded, Canceled, Timeout, Waiting, Failed
  "Message": "",  //异常信息
  "SCM": {
    "Name": "gitee",  //代码源名称
    "URL": "https://gitee.com/****/****",  //代码源url
    "Branch": "master"  //分支名称
  },
  "Envs": null  //当前任务的环境变量
}