从 1.8.0 版本开始,apollo 增加了 webhook 支持,从而可以在配置发布时触发 webhook 并告知配置发布的信息。
启用方式
配置项统一存储在ApolloPortalDB.ServerConfig表中,也可以通过
管理员工具 - 系统参数
页面进行配置,修改完一分钟实时生效。
- webhook.supported.envs
开启 webhook 的环境列表,多个环境以英文逗号分隔,如
DEV,FAT,UAT,PRO
- config.release.webhook.service.url
webhook 通知的 url 地址,需要接收 HTTP POST 请求。如有多个地址,以英文逗号分隔,如
http://www.xxx.com/webhook1,http://www.xxx.com/webhook2
Webhook 接入方式
- URL 参数
参数名 | 参数说明 |
---|---|
env | 该次配置发布所在的环境 |
- Request body sample
{
"appId": "", // appId
"clusterName": "", // 集群
"namespaceName": "", // namespace
"operator": "", // 发布人
"releaseId": 2, // releaseId
"releaseTitle": "", // releaseTitle
"releaseComment": "", // releaseComment
"releaseTime": "", // 发布时间 eg:2020-01-01T00:00:00.000+0800
"configuration": [ { // 发布后的全部配置,如果为灰度发布,则为灰度发布后的全部配置
"firstEntity": "", // 配置的key
"secondEntity": "" // 配置的value
} ],
"isReleaseAbandoned": false,
"previousReleaseId": 1, // 上一次正式发布的releaseId
"operation": // 0-正常发布 1-配置回滚 2-灰度发布 4-全量发布
"operationContext": { // 操作设置的属性配置
"isEmergencyPublish": true/false, // 是否紧急发布
"rules": [ { // 灰度规则
"clientAppId": "", // appId
"clientIpList": [ "10.0.0.2", "10.0.0.3" ] // IP列表
} ],
"branchReleaseKeys": [ "", "" ] // 灰度发布的key
}
}