Version: v1.1

使用 Webhook 发送通知

在一些情况下,当我们使用工作流部署应用前后,希望能够得到部署的通知。KubeVela 提供了与 Webhook 集成的能力,支持用户在工作流中向钉钉或者 Slack 发送通知。

本节将介绍如何在工作流中通过 webhook-notification 发送 Webhook 通知。

参数说明

参数类型说明
slackObject可选值,如果需要发送 Slack 信息,则需填写其 url 及 message
slack.urlString必填值,Slack 的 Webhook 地址
slack.messageObject必填值,需要发送的 Slack 信息,请符合 Slack 信息规范
dingdingObject可选值,如果需要发送钉钉信息,则需填写其 url 及 message
dingding.urlString必填值,钉钉的 Webhook 地址
dingding.messageObject必填值,需要发送的钉钉信息,请符合 钉钉信息规范

如何使用

部署如下应用部署计划,在部署组件前后,都有一个 webhook-notification 步骤发送通知:

  1. apiVersion: core.oam.dev/v1beta1
  2. kind: Application
  3. metadata:
  4. name: first-vela-workflow
  5. namespace: default
  6. spec:
  7. components:
  8. - name: express-server
  9. type: webservice
  10. properties:
  11. image: crccheck/hello-world
  12. port: 8000
  13. traits:
  14. - type: ingress
  15. properties:
  16. domain: testsvc.example.com
  17. http:
  18. /: 8000
  19. workflow:
  20. steps:
  21. - name: dingtalk-message
  22. # 指定步骤类型
  23. type: webhook-notification
  24. properties:
  25. dingding:
  26. # 钉钉 Webhook 地址,请查看:https://developers.dingtalk.com/document/robots/custom-robot-access
  27. url: <your dingding url>
  28. # 具体要发送的信息详情
  29. message:
  30. msgtype: text
  31. text:
  32. content: 开始运行工作流
  33. - name: application
  34. type: apply-component
  35. properties:
  36. component: express-server
  37. outputs:
  38. - from: app-status
  39. exportKey: output.status.conditions[0].message + "工作流运行完成"
  40. - name: slack-message
  41. type: webhook-notification
  42. inputs:
  43. - name: app-status
  44. parameterKey: properties.slack.message.text
  45. properties:
  46. slack:
  47. # Slack Webhook 地址,请查看:https://api.slack.com/messaging/webhooks
  48. url: <your slack url>
  49. # 具体要发送的信息详情,会被 input 中的值覆盖
  50. # message:
  51. # text: condition message + 工作流运行完成

期望结果

通过与 Webhook 的对接,可以看到,在工作流中的组件部署前后,都能在对应的群聊中看到相应的信息。

通过 webhook-notification ,可以使用户方便的与 Webhook 对接消息通知。