Appearance
Webhook
Webhook 是 KMS核心概念 之一,是一种 PubSub 通知机制,主要针对的是 KMS 管理的配置数据,当这些配置数据发生变更(新增/修改/删除)时将相关变更内容发送给订阅方。
限定支持
Webhook 的功能仅限定于在 KMS 管理的数据,这些数据在“配置中心”查看和修改。其他形式(比如视图)管理的数据由于不在 KMS 存储,将无法支持 KMS Webhook 功能;
订阅 Webhook 的 web url 必须是一个带有域名的远程服务器,
localhost
以及ip地址
无法被支持;Webhook 推送方法仅支持 POST / PUT,不支持其他的推送类型;
订阅Webhook
在 系统设置
- Webhook
管理页面查看和修改Webhook:
Hook Payload 数据
可以在 Webhook 管理页面,查看详细的 Payload 数据,这些数据会在 Post Body 中推送给订阅方。同时还有两个特殊的 Head 字段可供验证来源:
- user-agent:Webhook 推送消息时会定制 UserAgent 信息,格式
KMS名称/KMS版本 KMS域名
比如KMS/2.1.0 kms.seayoo.com
- x-kms-token: 可选的 token 字符串,通常是一个长度不小于 30 的随机字符串
Local Webhook 本地调试
为了方便开发调试,KMS 支持 Local Webhook,需要在管理界面开启 开启本地调试
功能。
- 本地调试原理:将原本需要服务端发出的 hook 请求在浏览器中发出一份副本以达到调试本地服务器接口的目的;
- 请先处理跨域配置:由于请求从浏览器直接发出,势必造成跨域访问,请先在本地服务器添加跨域白名单,参考资料;
- 仅对当前浏览器生效:所有调试的配置将存储在当前浏览器内,Local Webhook 调试功能仅仅对当前浏览器有效;
- 本地调试不会影响生产配置:如果生产环境配置有内容,将正常发送 Webhook,本地调试部分仅仅是一个 hook 通知副本;
- 发送策略有差异:生产环境发送 Webhook 会有重试和超时策略,本地调试不超时不重试;
- UserAgent不同:由于浏览器安全限制无法修改请求的 User-Agent 信息,本地调试通过
x-user-agent
字段提供 UA 信息;
注意
“开启本地调试” 功能,不仅仅开启了 Webhook 本地调试,也将同时开启 API Proxy 调试功能。