更新时间:2024-08-21 GMT+08:00

异常数据转发目标

概述

在数据被转发至华为云其他服务或第三方应用时,若由于云服务权限不足、 华为云其他服务或第三方应用不可用等原因导致目标服务器不可达,物联网平台会停止消息的推送,并每三分钟进行一次通道恢复探测,若探测成功,通道将恢复正常使用。如果用户消息实时性要求高,为降低通道故障对业务的影响,用户可通过配置异常数据转发目标来获取异常转发数据,以便继续进行业务处理和分析失败原因,从而降低因单一通道异常而对业务产生的影响。

图1 异常数据转发目标示例

在转发规则配置异常数据转发目标后,24小时内若正常数据转发目标不可达,数据将会被直接推送至异常数据转发目标。若超过24小时正常数据转发目标仍未恢复,物联网平台将暂停数据推送。

使用限制

  • 当且仅当存在一个正常数据转发目标时,支持添加一个异常数据转发目标。
  • 每个IoTDA实例最多支持创建5个异常数据转发目标。
  • 支持异常数据转发目标的规则数据来源:设备、设备属性、设备消息、设备消息状态、设备状态、批量任务、产品和设备异步命令状态。
  • 支持配置异常数据转发的正常转发目标类型:数据接入服务(DIS)、分布式消息服务(Kafka)、对象存储服务(OBS)、应用与数据集成平台(ROMA Connect)、第三方应用服务(HTTP推送)、分布式消息服务(RocketMQ)、函数工作流服务 (FunctionGraph)、云数据库(GeminiDB Influx)、云数据库 MySQL(RDS)、MapReduce服务(MRS Kafka)、区块链服务(BCS)和文档数据库服务(DDS)。
  • 支持作为异常转发目标的通道类型:AMQP推送消息队列。

异常转发数据格式

异常转发数据格式示例如下:

{
    "request_id": "2131d048-234f-4564-9190-6030234678ad",
    "rule_id": "6519d048-3b7f-442b-9190-6030773879cc",
    "action_id": "f376ab9f-d060-4fbf-a383-3e52af98ae9d",
    "channel": "MYSQL_FORWARDING",
    "base64_original_payload": "ewogICAgInJlc291cmNlIjogImRldmljZS5tZXNzYWdlIiwKICAgICJldmVudCI6ICJyZXBvcnQiLAogICAgImV2ZW50X3RpbWUiOiAiMjAyNDA2MDFUMDAwMDAwWiIsCiAgICAiZXZlbnRfdGltZV9tcyI6ICIyMDI0LTA2LTAxVDAwOjAwOjAwLjAwMFoiLAogICAgInJlcXVlc3RfaWQiOiAiMjEzMWQwNDgtMjM0Zi00NTY0LTkxOTAtNjAzMDIzNDY3OGFkIiwKICAgICJub3RpZnlfZGF0YSI6IHsKICAgICAgICAiaGVhZGVyIjogewogICAgICAgICAgICAiYXBwX2lkIjogIjU4N2MyMzc3ZGRmYzQzMmI4OTMxZGNhYmNhODkyOTUyIiwKICAgICAgICAgICAgImRldmljZV9pZCI6ICIwMDAwMDAwMDAwMDAwMCIsCiAgICAgICAgICAgICJub2RlX2lkIjogIjIwMjAwNzExMTk5OTkxMDAwIiwKICAgICAgICAgICAgInByb2R1Y3RfaWQiOiAiMTIzNDU2Nzg5MDAiLAogICAgICAgICAgICAiZ2F0ZXdheV9pZCI6ICIyMDIwMDcxMTE5OTk5MTAwMCIKICAgICAgICB9LAogICAgICAgICJib2R5IjogewogICAgICAgICAgICAidG9waWMiOiAidGVzdFRvcGljIiwKICAgICAgICAgICAgImNvbnRlbnQiOiAiV2VsY29tZSB0byBIdWF3ZWkgQ2xvdWQgSW9UIERldmljZSBBY2Nlc3MoSW9UREEpIgogICAgICAgIH0KICAgIH0KfQo=",
    "error_message": "Push failed. Cause:  Table 'xxx' doesn't exist. The iot platform will resume the push within 3 minutes after the channel is restored."
}
表1 异常转发数据说明

参数

参数类型

描述

request_id

String

推送异常的消息ID,由设备侧指定或平台生成,用于跟踪业务流程。

rule_id

String

推送异常的规则触发条件ID,用于唯一标识一条规则触发条件,在创建规则时由物联网平台分配获得。

action_id

String

推送异常的数据转发目标ID,用于唯一标识一个数据转发目标,在创建数据转发目标时由物联网平台分配获得。

channel

String

推送异常的数据转发目标类型。

base64_original_payload

String

经过Base64编码的原始流转数据。

error_message

String

错误的描述和说明。

异常转发数据格式可能存在增加字段的情况,在使用的时候务必做好序列化兼容性。

操作步骤

  1. 访问设备接入服务,单击“管理控制台”进入设备接入控制台。选择您的实例,单击实例卡片进入。
  2. 选择规则 > 数据转发 ,进入数据转发界面,单击 “创建规则” ,进入规则创建界面。

    图2 数据转发-创建规则

  3. 在新建数据转发规则界面中填写相关信息后,单击“创建规则”完成规则创建。

    图3 新建消息上报流转规则-数据转发至Kafka

  4. 创建完成规则后,进入设置转发目标页面,单击“添加”,添加一个正常数据转发目标。

    图4 添加正常数据转发目标

  5. 添加完成后,可以单击“添加”,添加一个异常数据转发目标。

    图5 添加异常数据转发目标

  6. 添加完成后单击启动规则进行规则激活。

    图6 数据转发-启动规则