概述
Azure Event Hub集成可从Azure Event Hub向ThingsBoard流式传输数据,并将设备负载转换为ThingsBoard格式。
使用Azure门户创建IoT Hub
首先,登录Azure门户。
在Azure中创建IoT Hub
现在,您需要创建IoT Hub。您将在这里创建设备并执行一些其他操作。让我们按步骤进行:
- 在Azure门户中,点击”Create a resource“按钮;
- 在搜索字段中输入”IoT Hub“,并从列表中选择匹配项;
- 点击”Create“;
- 在配置页面中,点击”Create new“,指定资源组和IoT Hub名称,然后点击”Review + create“;
- 在下一页中,点击”Create“;
- 等待部署过程完成,然后点击”Go to resource“;
在IoT Hub中创建设备
完成第一步后,按照以下说明创建新设备:
- 从上下文菜单导航到”IoT devices“页面;
- 点击”+ New“按钮;
- 在弹出窗口中,输入”Device ID“并点击”Save“。
很好!您已成功创建新设备。
添加Azure Event Hub集成
1. 基本设置。
转到”Integrations center“部分的”Integrations“页面。点击”plus“按钮开始添加新的集成。选择”Azure Event Hub“集成类型并点击”Next“;

2. 上行数据转换器。
上行转换器用于将设备传入的数据转换为ThingsBoard所需的显示格式。
在函数解码器字段中,指定用于解析和转换数据的脚本。在本示例中,使用默认的解码器函数(或使用您自己的配置)。然后,点击”Next“;

您可以在创建后随时更改解码器函数。
3. 下行数据转换器。
在添加下行转换器的步骤中,您也可以选择之前创建的或创建新的下行转换器。但目前,将”Downlink data converter”字段留空。点击”Skip“;

4. 连接。
在Azure门户中获取Event Hub兼容端点:
- 导航到”IoT Hub“资源;
- 从上下文菜单打开”Built-in endpoints“页面;
- 找到并复制”Event Hub-compatible endpoint“值。
该值将用于与ThingsBoard服务进行集成。
要查找container name:
- 在Azure门户中,点击”Storage account“;
- 转到”Data storage“部分的”Containers“页面。
在这里您可以找到container。保存其名称。
要查找存储connection string值,请导航到”Security + networking“部分的”Access keys“页面。
在ThingsBoard中:
- 在”Connection String“字段中粘贴已复制的”Event Hub-compatible endpoint“;
- 启用持久检查点,以便在集成重启后从上次检查点恢复处理,并在”Storage connection string“和”Container name“字段中填入相应的值。禁用此选项则始终从最新事件开始;
- [可选] 点击”Check connection”按钮检查连接,以验证连接字符串是否正确复制;
- 最后,点击”Add“按钮创建集成。

测试集成!
现在,我们准备好测试集成了。请按照以下步骤操作:
1) 转到”Rule chains“页面并选择一个规则链。在搜索节点字段中输入'gen',在菜单中找到generator节点。将其拖到画布上。在弹出窗口中,指定生成器的名称、消息数量和生成函数(可以使用我们的示例)。最后,点击”Add“;
1
2
3
4
5
6
7
8
9
10
11
var msg = {
"devName": "TB-D-01",
"msg": {
"temp": 42,
"humidity": 77
}
};
var metadata = { data: 40 };
var msgType = "POST_TELEMETRY_REQUEST";
return { msg: msg, metadata: metadata, msgType: msgType };
2) 现在,查找设备的Primary key。转到Azure门户,导航到IoT devices选项卡,选择您的设备,找到”Primary key“字段。复制并保存以备后用;
3) 返回您的ThingsBoard实例。我们需要找到另一个规则节点。在搜索节点字段中输入'iot',选择azure iot hub节点。将其拖到画布上。在弹出窗口中,指定节点名称,将Topic中的<device_id>替换为您的设备名称,并从Azure门户的”IoT Hub“资源中获取Hostname。输入设备名称作为Device ID,并添加之前从设备凭据中复制的SAS Key(Primary Key)。如果需要监控事件,请启用Debug模式;
2) 要将下行数据转换器添加到Azure Event Hub集成中,请按以下步骤操作: - 导航到"**Integrations**"页面,选择**Azure Event Hub**集成以打开其详情,然后点击"**pencil**"图标进入编辑模式; - 为下行数据转换器提供名称并点击"**Create new converter**"; - 将所需脚本粘贴到**Encoder function**部分。点击"Add"; - 在**高级设置**中,在相应字段中添加"**IoT Hub name**"; - 点击"**Apply changes**"保存配置。 本示例中使用的下行转换器: ```javascript var result = { contentType: "JSON", data: JSON.stringify(msg), metadata: { deviceId: 'TB-D-01' } }; return result; ``` {: .copy-code} **好的,下行转换器已就绪,集成已就绪,让我们测试一下:** 1) 上行测试完成后,集成已在ThingsBoard中创建了设备,我们需要了解它连接到哪个规则链。 只需转到ThingsBoard菜单中的Device groups,选择**All**,找到我们在上行中使用的设备名称。 2) 在ThingsBoard菜单的"Rule Chains"页面中找到所需规则链的名称。 3) 在"Search nodes"字段中输入'down',在菜单中选择**integration downlink**节点,将其拖到画布上。在弹出窗口中,您需要指定规则节点的名称并选择我们的集成。 4) 点击**message type switch**节点左侧的灰色圆圈,将其拖到我们"downlink"节点的灰色圆圈上。选择**Attributes update**并点击"Add"。 5) 很好。保存画布,然后转到"Device groups" -> "All"并选择我们的设备。切换到**Attributes**,在'Entity attributes scope'列表中选择**Shared attributes**。 点击'plus'创建新属性。在弹出窗口中指定属性的键、值类型和值。 6) 点击"Add",然后转到集成页面检查下行结果。 如您所见,我们收到了一条消息,表明下行数据已被集成成功接收并发送到Azure Event Hub。 要在Azure IoT Hub中验证,请转到Azure门户,选择**IoT devices**菜单选项卡,查看**Cloud to Device Message Count**数值。 ## 高级用法:使用Azure IoT Hub集成检查下行数据 以下是如何在Azure IoT Hub集成中查看下行数据的简要说明。 请查看下面的图片,了解我们如何对Azure Event Hub进行简单的下行检查 您可以通过以下链接了解Azure IoT Hub:[Azure IoT Hub集成](/docs/user-guide/integrations/azure-iot-hub){:target="_blank"}。 ## 总结 以上就是全部内容!祝您在配置IoT设备和仪表板时一切顺利! ## 下一步 - [快速入门指南](/docs/pe/guides/#AnchorIDGettingStartedGuides) - 快速了解ThingsBoard主要功能,约15-30分钟完成。 - [安装指南](/docs/user-guide/install/pe/installation-options/) - 学习如何在各种操作系统上部署ThingsBoard。 - [数据可视化](/docs/pe/guides/#AnchorIDDataVisualization) - 配置ThingsBoard复杂仪表盘的说明。 - [数据处理与操作](/docs/pe/guides/#AnchorIDDataProcessing) - 学习使用ThingsBoard规则引擎。 - [IoT数据分析](/docs/pe/guides/#AnchorIDDataAnalytics) - 学习使用规则引擎执行基本分析任务。 - [高级功能](/docs/pe/guides/#AnchorIDAdvancedFeatures) - 了解ThingsBoard高级功能。