消息路由即通过路由规则动态规划消息的传输路径,使消息按照过滤条件,从消息源路由到目标节点。

前提条件

消息路由需在边缘实例中设置。您需在设置消息路由之前,先创建边缘实例,并为该实例分配网关(仅支持高级版)、驱动、设备(仅支持高级版)和函数。

操作步骤

  1. 登录物联网平台控制台
  2. 在左侧导航栏中,单击边缘计算 > 边缘实例
  3. 找到您要设置消息路由的实例,单击操作栏中的查看
  4. 实例详情页面,单击消息路由 > 添加路由

  5. 设置消息路由路径。
    参数名称 参数说明
    消息来源

    选择消息的发送者。

    • 设备:已分配至该边缘实例的设备发送消息。
      • 全部产品:已分配至该边缘实例的全部设备都是消息来源。
      • 全部设备:具体产品下分配至该边缘实例的全部设备都是消息来源。
      • 您也可以指定具体产品和设备名称,表示已分配至该边缘实例下的某个指定设备是消息来源。
    • 函数计算:表示消息由函数计算发出,需选择已分配给该边缘实例的函数名称。
    • IoT Hub:表示消息由IoT Hub发出。
      此时,需在网关产品下,自定义如下Topic类,并重启边缘计算节点。具体操作方法,请参考自定义Topic
      • Topic类:/${ProductKey}/${DeviceName}/user/#,其中${ProductKey}和${DeviceName}替换为网关的三元组信息。
      • 设备操作权限:订阅
    消息主题过滤

    设置消息过滤条件。只有满足此条件的消息才能到达消息目标。设置方法如下:

    • 当消息来源为设备时:消息主题过滤 可选择为设备的属性全部
    • 当消息来源为函数计算或IoT Hub时:消息主题过滤 需自定义。自定义 消息主题过滤 时,可使用通配符。消息主题过滤 的定义方法,请参见什么是TopicTopic 列表
    消息目标

    消息的接收者。目前支持消息目标为 IoT Hub 和函数计算。

    • 选择为 IoT Hub (IoT Hub 即云端),表示消息需要上传到云端。则需要设置服务级别,请参见服务级别参数说明。
    • 选择为函数计算,则需要指定函数的名称。
    服务级别

    当消息目标为IoT Hub时,需要设置服务级别来确定您的设备数据是否支持断网续传。

    • 选择0,表示所有需要上传到云端的消息在网络异常状态下会丢失。

    • 选择1,表示在网络异常时,所有需要上传到云端的消息将被保存在本地存储区,在网络恢复后Link IoT Edge将存储区中的历史数据续传到云端。

      当消息路由路径是函数至IoT Hub,并选择服务级别为1时,需在网关产品下,自定义如下Topic类,并重启边缘计算节点。具体操作方法,请参考自定义Topic

      • Topic类:/${ProductKey}/${DeviceName}/user/restore,其中${ProductKey}和${DeviceName}替换为网关设备的三元组信息。
      • 设备操作权限:订阅
      断网续传的历史数据会通过此Topic上传至云端。您可以通过云端(IoT Hub)规则引擎,分类处理网络恢复后续传的历史数据。历史数据格式如下:
      { "topic":"yyyyy", "payload":.... #string型或object型 }

      其中topic为原上云数据的Topic,payload为原上云的数据内容。

    说明 服务级别选择 1时,在网络异常状态下CPU和磁盘IO占用量会增加,当数据量很大时可能会耗尽系统磁盘和CPU资源。不同的系统性能其承受的负载上限有所不同,请您根据自身需求选择是否支持断网续传。