Consul 配置自动回调(事件)rest API
Posted
技术标签:
【中文标题】Consul 配置自动回调(事件)rest API【英文标题】:Consul configuration to automatically callback (on event) rest API 【发布时间】:2021-05-24 23:25:03 【问题描述】:是否可以在每次更新服务状态时将 Consul 回调“POST”配置到 rest API?
我在文档 (https://www.consul.io/docs/dynamic-app-config/watches#http-endpoint) 中找到了“Watch”功能,但似乎此功能不会在调用服务事件时自动 Consul 调用某些 API。
如果有人知道如何执行此任务,将不胜感激!
【问题讨论】:
Consul watch 会将被监控服务的完整负载发送到配置的 watch 目的地。因此,如果您正在监视服务,只要服务更新,监视就会将/v1/health/service/:service
的输出发送到配置的 HTTP 端点。如果您的 HTTP 服务器无法按原样解析该有效负载,则您需要将输出发送到脚本,该脚本在将请求发布到 HTTP 服务器之前修改请求。
【参考方案1】:
我找到了解决办法:
在代理命令中(启动 Consul):
sudo consul agent --dev --client 0.0.0.0 --config-file ./path/consul-agent.json
在 consul-agent.json 文件中:
“watches”: [
“type”: “services”,
“handler_type”: “http”,
“http_handler_config”:
“path”: “https://localhost/routetocall”,
“method”: “POST”,
“header”: “Authentication”: [“something”] ,
“timeout”: “10s”,
“tls_skip_verify”: true
]
【讨论】:
以上是关于Consul 配置自动回调(事件)rest API的主要内容,如果未能解决你的问题,请参考以下文章
微服务网关从零搭建——创建测试api以及api自动注入consul
Wordpress REST Api:add_action('rest_api_init', callback) 不调用回调
如何在自动创建的 API Rest Hapi 之前获取 validateFunc 的结果
如何在 Wordpress rest_api_init 回调函数中传递参数