EMQX5.0 webhook请求体取不到topic

错误报告

环境

  • EMQX 版本: 5.0.8
  • 操作系统版本:Ubuntu 20.04.2 LTS

重现此问题的步骤

1、使用webhook数据桥接把数据通过接口转发到程序
2、创建了规则sql为SELECT * FROM “t/#”, 数据来源:消息发布
3、放在webhook的请求体加上"topic":${topic},数据就发不出来,去掉就可以,根据规则获取的输出结果参数名也是topic

配置文件及日志

规则:

webhook:

去掉"topic":${topic}正常接收:

应该是能发出去的,但是你这样写,发出去的内容不是一个合法的 JSON,如果要发送 JSON,改成这样就可以了:

{"topic": "${topic}"}

也是不行,后台收不到消息

这样数据是没有发出去的:


这样的数据才能发出去:

这样能发出去,而且topic有值,但是${payload}和${qos}不能用双引号包,数据会发不出去,那我使用SELECT * FROM “t/#”获取出来的数据,哪些参数名需要用双引号包,哪些不用呢,官方有文档吗?

Webhook 的请求体是个模板,里面可以包含占位符,运行时 emqx 把占位符展开拼接成了字符串。

发送的时候它是不管拼接完了是不是合法的 JSON 字符串的,所以如果是字符串类型,就需要手动加一个双引号,如果是数字类型,就不需要。