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

操作步骤

  1. 登录物联网平台控制台
  2. 在左侧导航栏,选择规则引擎 > 云产品流转
  3. 云产品流转页,单击创建规则
  4. 填写参数后,单击确认
    参数 描述
    规则名称 输入规则名称。支持中文、英文字母、日文、数字、下划线(_)和短划线(-),长度为1~30个字符,一个中文或日文占2个字符。
    数据格式 选择该规则处理数据的格式。可选:JSON和二进制。
    说明
    • 因数据流转基于Topic处理数据,此处的数据格式需与被处理Topic中的数据格式保持一致。
    • 若选择为二进制,该规则不能处理基础通信Topic、物模型通信Topic的消息,且不能将数据转发至表格存储、时序时空数据库和云数据库RDS版。
    规则描述 规则描述信息。
    资源组 将该规则划归为某个资源组。默认选择账号全部资源,可以选择已创建的资源组。通过资源组管理,可以授予指定子账号查看和操作该规则,而未授权的子账号则不可以查看和操作该规则。关于资源组,请参见什么是资源组
    说明 该功能目前仅适用于白名单用户。如有需要,请提交工单,提供您的阿里云账号UID,申请成为白名单用户。

    规则创建成功后,可以在资源管理控制台变更规则所属的资源组。

  5. 规则创建成功后,页面将跳转到数据流转规则页。您需编辑处理消息数据的SQL,设置数据转发目的地和设置错误数据转发目的地。
    1. 单击编写SQL,编写处理消息字段的SQL。

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

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

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

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

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

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

      可选类型:

      • 自定义:指定消息源是自定义Topic时,支持使用通配符(+)和(#)。
        • 全部设备(+):表示指定产品下所有设备。
        • /user/#:表示指定设备的所有自定义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。
      • 物模型历史数据上报:设备上报历史属性和事件的Topic。规则数据类型为JSON时的可选项。
      • OTA升级设备状态通知:设备上报OTA升级结果的Topic。规则数据类型为JSON时的可选项。
      • OTA模块版本号上报:设备上报OTA模块版本号变更的Topic。规则数据类型为JSON时的可选项。
      • OTA升级批次状态通知:物联网平台通知OTA升级批次状态变化的Topic。规则数据类型为JSON时的可选项。
      • 边缘即插即用消息:物联网边缘计算的透传模式Topic。规则数据类型为JSON时的可选项。
      条件 设置规则触发条件,即SQL中WHERE后的内容。
    2. 单击转发数据一栏的添加操作,设置数据转发目的地。数据转发配置的具体示例,请参见数据流转使用示例目录下的具体文档。
      说明 最多可为一个规则创建10个数据转发操作。
      数据转发时,因选择的目的云产品出现异常情况导致转发失败时:
      • 转发到RocketMQ、RDS、TSDB等类型的云产品时,若云产品资源变化导致目的云产品无法访问,系统将停止执行转发,并在规则列表中显示状态为规则异常。您需要重新设置数据转发目的地。
      • 其他异常情况,系统将间隔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 产品ProductKey。
      deviceName 设备名称。
      messageId 云端消息ID。
      base64OriginalPayload Base64编码后的原始数据。
      failures 错误详情。可能会有多个。
      actionType 出错操作的类型。
      actionRegion 出错操作的地域。
      actionResource 出错操作的目的资源。
      errorMessage 错误信息。
  6. 所有设置完成后,返回至云产品流转页,单击规则对应的启动按钮。规则启动后,数据即可按照规则进行转发。
    您也可以:
    • 单击查看进入数据流转规则页,修改规则的具体设置。
    • 单击删除删除对应规则。
      说明 运行中的规则不可删除。
    • 单击停止停止对应规则转发数据。