emqx.conf中配置规则引擎的内容

1.如何在emqx.conf配置文件中写规则引擎内容?
2.配置手册中只有action与source的相关配置

没写在里面,说明不推荐这么干。
如果你很确定你必须要这么干的话,
可以使用以下步骤:

  1. 使用 dashboard 配置好你想要。
  2. 打开 data/configs/cluster.hocon 找到rule_engine{}
  3. 停机,把他剪切到 emqx.conf里面。
  4. 启动 emqx

几乎所有的配置都可以这么干。

PS:也可以装一个插件来通知配置变更:https://guard.emqx.dev/guide/features/changed_configuration.html

我将 data/configs/cluster.hocon 中rule_engine{}下的内容粘贴到 emqx.conf里面,重启后数据输入是空的

你的 emqx 版本是多少。:thinking:
只要大于 5.0.26 就应该没问题的。
你的rule_engine 是什么内容:thinking:
ps 记得要先关emqx(如果是集群,得全关了。)

emqx:5.6.0
单机docker部署
rule_engine

rule_engine {
  ignore_sys_message = true
  jq_function_default_timeout = 10s
  rules {
    rule_reply_republish {
      actions = [
        {
          args {
            mqtt_properties {}
            payload = "${payload}"
            qos = "${qos}"
            retain = "${flags.retain}"
            topic = "${topic}/${prefix}"
            user_properties = ""
          }
          function = republish
        }
      ]
      description = "重定向"
      enable = true
      metadata {created_at = 1732185655013}
      name = ""
      sql = """~
        SELECT
                  *
                FROM
                  "call_reply",
                  "control_reply"~"""
    }
  }
}

republish 是 输出,不是输入。
点:



我这边是数据输入没有,动作输出有

对啊,你自己只配置动作输出,当然只有输出了。
你看你的规则导入的内容和名字就知道了。

从data/configs/cluster.hocon中粘贴过来的,那要怎么配置数据输入

麻烦仔细阅读一下,看清楚里面每一个字。
意思是你先通过 dashboard 配置好你想要的(就是在这里就把数据输入给配置好,然后再去剪切)

如果实在无法理解上面的步骤,建议就不要再在 emqx.conf 里面配置复杂的规则了。以后绝对会踩大坑的。

知道了,多谢