EMQX v5插件pri/config.hocon配置读取及全局使用方法咨询
EMQX v5 自定义插件配置读取指南
一、在插件内声明配置(pri/config.hocon)
在插件的pri/config.hocon文件中,按照HOCON语法定义你的常量,示例:
my_custom_plugin { max_retry_times = 3 notify_topic = "$SYS/my_plugin/notify" enable_log = true }
二、正确读取插件专属配置的方法
不要直接调用hocon:load/1,它会默认加载EMQX全局配置。用EMQX插件框架提供的规范方式读取:
1. 定义配置Schema(必填步骤)
在插件的priv/schema/目录下创建配置Schema文件(比如my_custom_plugin.schema),让EMQX识别这是插件的专属配置:
{my_custom_plugin, [ {fields, [ {max_retry_times, #{type => integer, default => 5}}, {notify_topic, #{type => string, default => "$SYS/default/topic"}}, {enable_log, #{type => boolean, default => false}} ]} ]}.
2. 在插件模块中读取配置
在emqx-plugin-template.erl里,使用EMQX提供的emqx_conf:get/2函数读取配置,示例:
%% 获取最大重试次数 get_max_retry() -> emqx_conf:get([my_custom_plugin, max_retry_times], 5). %% 获取通知主题 get_notify_topic() -> emqx_conf:get([my_custom_plugin, notify_topic], "$SYS/default/topic").
这样就能精准读取到插件自身pri/config.hocon里的配置,不会混淆EMQX全局配置。
3. 配置自动加载
EMQX插件框架会在插件启动时自动加载pri/config.hocon的配置,无需额外手动加载,只要Schema和配置文件的字段对应即可。
三、排查要点
- 检查Schema文件的字段名和
pri/config.hocon中的键名完全一致 - 确认
pri/config.hocon位于插件的私有目录下,而非EMQX的全局配置目录 - 若修改配置后未生效,重启插件或EMQX即可
内容的提问来源于stack exchange,提问作者Nguyễn Hoàng Anh
相关产品推荐
相关产品推荐

