数据转发到用户 Kafka
一、简介
在本教程中,您将学习到如何将 IoT Core 的设备消息通过『规则引擎』转发至不同账户下的百度消息服务 BMS 实例,可以实现跨账 户消息转发等需求。本文主要包括简介、场景描述、注意事项、操作步骤 4 部分内容,通过具体示例展示了相关使用流程。
其他关于规则引擎转发到百度消息服务 BMS 的功能,也可以查看另外一个教程:数据转发到百度消息服务BMS。
阅读本示例前建议先熟悉『快速入门』文档。
二、场景描述
此功能应用场景不仅可以用于『百度消息服务 BMS,即消息服务 for Kafka』与『IoT Core 产品』不在同一账户的情况,更主要的是出于安全性的考量。
例子:当需要将设备的实时数据共享给其他用户时,如果直接提供『IoT Core』的账户给用户显然是不安全的,正确的做法是用户向数据接收方(即『IoT Core』账户所有者)提供自己百度智能云账户下的 Kafka 主题,让其在规则引擎中进行『添加目的地』操作,进而实现设备消息可以跨用户进行流转。
三、注意事项
⚠️ 『用户 Kafka』当前仅支持任意百度云账号下广州区的『百度消息服务 for Kafka』作为『用户 Kafka』被添加为『数据目的地』。
四、操作步骤
4.1 创建 IoT Core 实例
进入物联网核心套件 IoT Core 平台后,进行如下操作:
- 在『实例列表』中点击『创建 IoT Core』。
- 填写名称、描述(可选),点击『提交』。
当看见创建的 IoT Core 实例处于『运行中』即为创建成功,如下图所示。
4.2 添加模版
基于 4.1,点击所创建的『IoT Core 实例』名字,进入后找到『模版』并点击『添加模版』。
填写『模板名称』,点击『确认』完成添加模版操作,成功之后会在『模版』页显示。
默认创建的模版会有两个主题,详细用途可以点击所创建的『模版名称』进行查看,在里面也可以进行『添加主题』的操作。
注意这个 {deviceName}
是占位符,在后续订阅主题时需自行替换相应的设备名。
4.3 新增设备
基于 4.1,点击所创建的『IoT Core 实例』名字,进入后找到『设备列表』并点击『新增设备』。
依次填写『名称』、『认证方式』、『描述』(可选)、『模版』后,点击『提交』。
- 『认证方式』选择『证书认证』,参考教程:使用证书鉴权建立MQTT连接。
- 『认证方式』选择『密钥认证』,参考教程:通过MQTT连接及收发消息。
- 再次提醒这个『名称』就是待会要替换
{deviceName}
。
4.4 添加目的地
⚠️ 前提你的百度云账号下开启了『百度消息服务 BMS,即消息服务 for Kafka』,以及创建了『主题』( 仅支持广州区)。
在进入『百度消息服务 BMS,即消息服务 for Kafka』平台后,点击『证书』,如果还未创建,先进行『创建证书』(权限根据自己情况自行选择),创建后点击『密钥』那一栏的内容进行下载密钥文件(用于后续的『添加目的地』操作)。
回到 IoT Core 实例,依次点击『数据目的地』、『添加目的地』进行添加用户 kafka 操作。
把下载好的密钥文件进行『解压』操作,如下图填写好对应的信息,点击『提交』即可完成『添加目的地』操作。
『提交』后可以点击『连通测试』看看是否配置成功。
4.5 创建规则
点击『规则引擎』下的『规则列表』,若还未创建规则,请先点击『创建规则』进行创建。
创建完成后点击『编辑调试』去配置让 IoT Core 平台通过规则引擎把设备数据流转到用户下的 kafka 中去。
下面的『查询语句』填写 $
即可,表示规则引擎这边不进行格式转换,直接把原格式数据流转到用户下的 kafka 中。
『保存』好之后,点击『启用』规则。
4.6 测试
至此我们已经完成所有的配置操作,我们来测试以下数据流向是否为:物理设备 --> IoT Core --> 规则引擎 --> 用户 Kafka。
这里我们还是通过 MQTT 模拟器 MQTT.fx 来进行演示,使用教程参考:使用 MQTT 模拟器连接及收发消息。
点击 kafka 主题,看到监控确实有数据写入,配置成功!