通过规则引擎的云产品流转功能,物联网平台可将指定Topic的数据流转至其它Topic和其它阿里云服务中。本文将为您详细讲解如何设置一条完整的数据流转规则。设置过程依次是创建规则、编写处理数据的SQL、设置数据流转目的地和设置流转失败的数据转发目的地。

操作步骤

  1. 在物联网平台控制台左侧导航栏,选择规则引擎 > 云产品流转
  2. 云产品流转页,单击创建规则
  3. 填写规则名称,选择数据格式后,单击确认
    数据流转
    参数 描述
    规则名称 输入规则名称,用以区别各条规则。名称支持中文汉字、英文字母、数字、下划线(_)和连接号(-)。长度为1-30字节。一个中文汉字占两个字节。
    数据格式 选择该规则处理数据的格式。可选:JSON和二进制。
    说明
    • 因数据流转基于Topic处理数据,此处的数据格式需与被处理Topic中的数据格式保持一致。
    • 若选择为二进制,该规则不能处理系统Topic的消息,且不能将数据转发至表格存储、时序时空数据库和云数据库RDS版。
    规则描述 规则描述信息。
  4. 规则创建成功后,页面将跳转到数据流转规则页。您需编辑处理消息数据的SQL、设置数据转发目的地和设置错误数据转发目的地。
    数据流转
    1. 单击编写SQL,编写处理消息字段的SQL。

      SQL编写方法,可参见SQL表达式函数列表

      参数 描述
      规则查询语句 系统会在这里,根据您设置的字段Topic条件自动补充完整规则查询语句。
      字段

      指定要处理的消息内容字段,即SQL中SELECT后的内容。

      例如,填入deviceName() as deviceName,则表示需筛选出消息中的deviceName字段内容。字段中可使用的函数,请参见函数列表

      说明 系统Topic中的数据为Alink JSON格式,流转到规则引擎前,会经过物模型解析,具体说明请参见数据流转过程。解析后的数据格式,请参见数据格式。编写SQL字段时,需按照解析后的数据格式来编写。
      Topic

      选择需要处理的消息来源Topic,即SQL中FROM后的内容。

      可选类型:

      • 自定义:指定消息源是自定义Topic时,支持使用通配符(+)和(#)。
        • 全部设备(+):表示指定产品下所有设备。
        • /user/#:表示指定设备的所有Topic。

        如果指定为自定义Topic,设备对该Topic的操作权限需为发布。自定义Topic和通配符使用,请参见自定义Topic

      • 设备状态变化通知:表示设备上下线状态变更消息的Topic。规则数据类型是JSON时的可选项。
      • 物模型数据上报:表示设备上报属性和事件信息的Topic。规则数据类型是JSON时的可选项。

        包括:

        • thing/event/property/post:设备上报属性数据的Topic。
        • thing/event/${tsl.identityId}/post:设备上报事件数据的Topic。
        • thing/downlink/reply/message:设备响应云端命令返回消息的Topic。
      • 设备生命周期变更:设备创建、删除、禁用、启用等消息的Topic。规则数据类型是JSON时的可选项。
      • 网关发现子设备上报:网关特有Topic。网关将发现的子设备信息上报给物联网平台的Topic。规则数据类型是JSON时的可选项。
      • 设备拓扑关系变更:网关特有Topic。上报子设备和网关之间的拓扑关系建立和解除消息的Topic。规则数据类型是JSON时的可选项。
      • 物模型历史数据上报:表示设备上报历史属性和事件的Topic。规则数据类型为JSON时的可选项。
      • 固件升级状态通知:设备固件升级结果通知的Topic。规则数据类型为JSON时的可选项。
      条件 设置规则触发条件,即SQL中WHERE后的内容。
    2. 单击转发数据一栏的添加操作,设置数据转发目的地。数据转发配置的具体示例,请参见“数据流转使用示例”目录下的具体文档。
      说明 最多可为一个规则创建10个数据转发操作。
      数据流转

      数据转发时,因选择的目的云产品出现异常情况导致转发失败,物联网平台会间隔1秒、3秒、10秒进行3次重试(重试策略可能会调整)。3次重试均失败后,消息会被丢弃。如果您对消息可靠性要求比较高,可以进行下一步:添加错误操作。重试失败的消息可以通过错误操作转发到其它云产品中。

    3. 单击转发错误数据一栏的添加错误操作,设置参数,将重试失败的错误消息转发至指定位置。
      说明
      • 正常操作和错误操作的转发目的云产品不能相同。例如,不能同时转发到表格存储。
      • 消息转发至云产品失败后,会进行重试。若重试失败,将根据错误操作数据转发的设置转发错误消息。
      • 错误消息转发失败后,不会再进行重试。
      • 这里的错误消息仅针对因其他云产品实例问题导致的规则引擎转发失败错误。
      • 最多支持添加一个错误操作。
      数据流转

      错误消息格式:

      {
            "ruleName":"",
            "topic":"",
            "productKey":"",
            "deviceName":"",
            "messageId":"",
            "base64OriginalPayload":"",
            "failures":[
              {
                "actionType":"OTS",
                "actionRegion":"cn-shanghai",
                "actionResource":"table1",
                "errorMessage":""
              },
              {
                "actionType":"RDS",
                "actionRegion":"cn-shanghai",
                "actionResource":"instance1/table1",
                "errorMessage":""
              }
            ]
      
      }

      错误消息参数说明如下:

      参数 说明
      ruleName 规则名称。
      topic 消息来源Topic。
      productKey 产品Key。
      deviceName 设备名称。
      messageId 云端消息ID。
      base64OriginalPayload Base64编码后的原始数据。
      failures 错误详情。可能会有多个。
      actionType 出错操作的类型。
      actionRegion 出错操作的地域。
      actionResource 出错操作的目的资源。
      errorMessage 错误信息。
  5. 所有设置完成后,返回至云产品流转页,单击规则对应的启动按钮。规则启动后,数据即可按照规则进行转发。
    数据流转
    您也可以:
    • 单击查看进入数据流转规则页,修改规则的具体设置。
    • 单击删除删除对应规则。
      说明 运行中的规则不可删除。
    • 单击停止停止对应规则转发数据。