使用事件中心向 Azure 时序见解 Gen1 环境发送事件
注意
时序见解服务将于 2024 年 7 月 7 日停用。 请考虑尽快将现有环境迁移到备用解决方案。 有关弃用和迁移的详细信息,请访问我们的文档。
注意
这是一篇 Gen1 文章。
本文介绍如何在 Azure 事件中心中创建和配置事件中心。 其中还介绍了如何运行示例应用程序将事件从事件中心推送到 Azure 时序见解。 如果你已经有了一个事件中心,其中的事件采用 JSON 格式,则可跳过本教程,在 Azure 时序见解中查看你的环境。
配置事件中心
若要了解如何创建事件中心,请阅读事件中心文档。
在搜索框中,搜索“事件中心”。 在返回的列表中选择“事件中心”。
选择事件中心。
在创建事件中心时,实际上要创建事件中心命名空间。 如果尚未在命名空间中创建事件中心,请在菜单中的“实体”下创建事件中心。
创建事件中心后,请在事件中心列表中选择它。
在菜单中的“实体”下,选择“事件中心” 。
选择事件中心的名称对其进行配置。
在“概述”下选择“使用者组”,然后选择“使用者组” 。
请确保创建一个专门由 Azure 时序见解事件源使用的使用者组。
重要
请确保该使用者组没有被任何其他服务(例如 Azure 流分析作业或另一个 Azure 时序见解环境)使用。 如果使用者组由其他服务使用,则此环境和其他服务的读取操作会受到负面影响。 如果使用 $Default 作为使用者组,则其他读者可能会重复使用使用者组。
在菜单中的“设置”下,选择“共享访问策略”,然后选择“添加” 。
在“添加新的共享访问策略”窗格中,创建名为“MySendPolicy”的共享访问 。 将使用此共享访问策略在本文后面的 C# 示例中发送事件。
在“声明”下选择“发送”复选框 。
添加 Azure 时序见解实例
在 Azure 时序见解 Gen2 中,可以使用时序模型 (TSM) 将上下文数据添加到传入遥测中。 在 TSM 中,标记或信号称为“实例”,你可以将上下文数据存储在“实例字段”中。在查询时使用“时间序列 ID”联接该数据。 在本文后面使用的示例 windmills 项目的“时间序列 ID”是 。 若要详细了解如何在实例字段中存储数据,请参阅时序模型概述。
创建 Azure 时序见解事件源
将事件推送到 windmills 的示例
在搜索栏中搜索“事件中心”。 在返回的列表中选择“事件中心”。
选择事件中心实例。
转到“共享访问策略”“MySendPolicy”。 复制“连接字符串 - 主密钥”的值。
导航到 TSI Sample Wind Farm Pusher。 该网站创建并运行风车模拟设备。
在网页上的“事件中心连接字符串”框中,粘贴在 windmill 输入字段中复制的连接字符串。
选择“单击可启动”。
提示
风车模拟器还会创建可以作为有效负载与 Azure 时序见解 GA 查询 API 配合使用的 JSON。
注意
模拟器将继续发送数据,直到浏览器选项卡关闭。
返回到 Azure 门户中的事件中心。 在“概述”页上,显示事件中心收到的新事件。
支持的 JSON 形状
示例一
输入:一个简单的 JSON 对象。
{ "id":"device1", "timestamp":"2016-01-08T01:08:00Z" }
输出:一个事件。
id timestamp device1 2016-01-08T01:08:00Z
示例二
输入:包含两个 JSON 对象的 JSON 数组。 每个 JSON 对象都转换为事件。
[ { "id":"device1", "timestamp":"2016-01-08T01:08:00Z" }, { "id":"device2", "timestamp":"2016-01-17T01:17:00Z" } ]
输出:两个事件。
id timestamp device1 2016-01-08T01:08:00Z device2 2016-01-08T01:17:00Z
示例三
输入:具有嵌套 JSON 数组(其中包含两个 JSON 对象)的 JSON 对象。
{ "location":"chinaeast2", "events":[ { "id":"device1", "timestamp":"2016-01-08T01:08:00Z" }, { "id":"device2", "timestamp":"2016-01-17T01:17:00Z" } ] }
输出:两个事件。 “location”属性复制到每个事件。
location events.id events.timestamp chinaeast2 device1 2016-01-08T01:08:00Z chinaeast2 device2 2016-01-08T01:17:00Z
示例四
输入:具有嵌套 JSON 数组(其中包含两个 JSON 对象)的 JSON 对象。 此输入表明复杂 JSON 对象可以表示全局属性。
{ "location":"chinaeast2", "manufacturer":{ "name":"manufacturer1", "location":"chinaeast2" }, "events":[ { "id":"device1", "timestamp":"2016-01-08T01:08:00Z", "data":{ "type":"pressure", "units":"psi", "value":108.09 } }, { "id":"device2", "timestamp":"2016-01-17T01:17:00Z", "data":{ "type":"vibration", "units":"abs G", "value":217.09 } } ] }
输出:两个事件。
location manufacturer.name manufacturer.location events.id events.timestamp events.data.type events.data.units events.data.value chinaeast2 manufacturer1 chinaeast2 device1 2016-01-08T01:08:00Z 压力 psi 108.09 chinaeast2 manufacturer1 chinaeast2 device2 2016-01-08T01:17:00Z 振动 abs G 217.09
后续步骤
- 阅读有关 IoT 中心设备消息的详细信息