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 回调函数中传递参数

Salesforce REST API 回调 URL 是不是需要是 HTTPS?

无状态 REST 服务器上的 Google API 回调