从 1.8.0 版本开始,apollo 增加了 webhook 支持,从而可以在配置发布时触发 webhook 并告知配置发布的信息。

启用方式

配置项统一存储在ApolloPortalDB.ServerConfig表中,也可以通过管理员工具 - 系统参数页面进行配置,修改完一分钟实时生效。

  1. webhook.supported.envs

开启 webhook 的环境列表,多个环境以英文逗号分隔,如

  1. DEV,FAT,UAT,PRO
  1. config.release.webhook.service.url

webhook 通知的 url 地址,需要接收 HTTP POST 请求。如有多个地址,以英文逗号分隔,如

  1. http://www.xxx.com/webhook1,http://www.xxx.com/webhook2

Webhook 接入方式

  1. URL 参数
参数名 参数说明
env 该次配置发布所在的环境
  1. Request body sample
  1. {
  2. "appId": "", // appId
  3. "clusterName": "", // 集群
  4. "namespaceName": "", // namespace
  5. "operator": "", // 发布人
  6. "releaseId": 2, // releaseId
  7. "releaseTitle": "", // releaseTitle
  8. "releaseComment": "", // releaseComment
  9. "releaseTime": "", // 发布时间 eg2020-01-01T00:00:00.000+0800
  10. "configuration": [ { // 发布后的全部配置,如果为灰度发布,则为灰度发布后的全部配置
  11. "firstEntity": "", // 配置的key
  12. "secondEntity": "" // 配置的value
  13. } ],
  14. "isReleaseAbandoned": false,
  15. "previousReleaseId": 1, // 上一次正式发布的releaseId
  16. "operation": // 0-正常发布 1-配置回滚 2-灰度发布 4-全量发布
  17. "operationContext": { // 操作设置的属性配置
  18. "isEmergencyPublish": true/false, // 是否紧急发布
  19. "rules": [ { // 灰度规则
  20. "clientAppId": "", // appId
  21. "clientIpList": [ "10.0.0.2", "10.0.0.3" ] // IP列表
  22. } ],
  23. "branchReleaseKeys": [ "", "" ] // 灰度发布的key
  24. }
  25. }