使用事件中心向 Azure 时序见解 Gen1 环境发送事件

注意

时序见解服务将于 2024 年 7 月 7 日停用。 请考虑尽快将现有环境迁移到备用解决方案。 有关弃用和迁移的详细信息,请访问我们的文档

注意

这是一篇 Gen1 文章。

本文介绍如何在 Azure 事件中心中创建和配置事件中心。 其中还介绍了如何运行示例应用程序将事件从事件中心推送到 Azure 时序见解。 如果你已经有了一个事件中心,其中的事件采用 JSON 格式,则可跳过本教程,在 Azure 时序见解中查看你的环境。

配置事件中心

  1. 若要了解如何创建事件中心,请阅读事件中心文档

  2. 在搜索框中,搜索“事件中心”。 在返回的列表中选择“事件中心”。

  3. 选择事件中心。

  4. 在创建事件中心时,实际上要创建事件中心命名空间。 如果尚未在命名空间中创建事件中心,请在菜单中的“实体”下创建事件中心。

    事件中心列表

  5. 创建事件中心后,请在事件中心列表中选择它。

  6. 在菜单中的“实体”下,选择“事件中心” 。

  7. 选择事件中心的名称对其进行配置。

  8. 在“概述”下选择“使用者组”,然后选择“使用者组” 。

    创建使用者组

  9. 请确保创建一个专门由 Azure 时序见解事件源使用的使用者组。

    重要

    请确保该使用者组没有被任何其他服务(例如 Azure 流分析作业或另一个 Azure 时序见解环境)使用。 如果使用者组由其他服务使用,则此环境和其他服务的读取操作会受到负面影响。 如果使用 $Default 作为使用者组,则其他读者可能会重复使用使用者组。

  10. 在菜单中的“设置”下,选择“共享访问策略”,然后选择“添加” 。

    选择“共享访问策略”,然后选择“添加”按钮

  11. 在“添加新的共享访问策略”窗格中,创建名为“MySendPolicy”的共享访问 。 将使用此共享访问策略在本文后面的 C# 示例中发送事件。

    在“策略名称”框中输入 MySendPolicy

  12. 在“声明”下选择“发送”复选框 。

添加 Azure 时序见解实例

在 Azure 时序见解 Gen2 中,可以使用时序模型 (TSM) 将上下文数据添加到传入遥测中。 在 TSM 中,标记或信号称为“实例”,你可以将上下文数据存储在“实例字段”中。在查询时使用“时间序列 ID”联接该数据。 在本文后面使用的示例 windmills 项目的“时间序列 ID”是 。 若要详细了解如何在实例字段中存储数据,请参阅时序模型概述。

创建 Azure 时序见解事件源

  1. 如果尚未创建事件源,请完成步骤以创建事件源

  2. timeSeriesId 设置一个值。 若要详细了解时序 ID,请阅读时序模型

将事件推送到 windmills 的示例

  1. 在搜索栏中搜索“事件中心”。 在返回的列表中选择“事件中心”。

  2. 选择事件中心实例。

  3. 转到“共享访问策略”“MySendPolicy”。 复制“连接字符串 - 主密钥”的值。

    复制主密钥连接字符串的值

  4. 导航到 TSI Sample Wind Farm Pusher。 该网站创建并运行风车模拟设备。

  5. 在网页上的“事件中心连接字符串”框中,粘贴在 windmill 输入字段中复制的连接字符串。

    将主密钥连接字符串粘贴到“事件中心连接字符串”框中

  6. 选择“单击可启动”。

    提示

    风车模拟器还会创建可以作为有效负载与 Azure 时序见解 GA 查询 API 配合使用的 JSON。

    注意

    模拟器将继续发送数据,直到浏览器选项卡关闭。

  7. 返回到 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

后续步骤