异常数据转发目标
概述
在数据被转发至华为云其他服务或第三方应用时,若由于云服务权限不足、 华为云其他服务或第三方应用不可用等原因导致目标服务器不可达,物联网平台会停止消息的推送,并每三分钟进行一次通道恢复探测,若探测成功,通道将恢复正常使用。如果用户消息实时性要求高,为降低通道故障对业务的影响,用户可通过配置异常数据转发目标来获取异常转发数据,以便继续进行业务处理和分析失败原因,从而降低因单一通道异常而对业务产生的影响。
在转发规则配置异常数据转发目标后,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." }
参数 |
参数类型 |
描述 |
---|---|---|
request_id |
String |
推送异常的消息ID,由设备侧指定或平台生成,用于跟踪业务流程。 |
rule_id |
String |
推送异常的规则触发条件ID,用于唯一标识一条规则触发条件,在创建规则时由物联网平台分配获得。 |
action_id |
String |
推送异常的数据转发目标ID,用于唯一标识一个数据转发目标,在创建数据转发目标时由物联网平台分配获得。 |
channel |
String |
推送异常的数据转发目标类型。 |
base64_original_payload |
String |
经过Base64编码的原始流转数据。 |
error_message |
String |
错误的描述和说明。 |
异常转发数据格式可能存在增加字段的情况,在使用的时候务必做好序列化兼容性。
操作步骤
- 访问设备接入服务,单击“管理控制台”进入设备接入控制台。选择您的实例,单击实例卡片进入。
- 选择“创建规则” ,进入规则创建界面。
,进入数据转发界面,单击 图2 数据转发-创建规则
- 在新建数据转发规则界面中填写相关信息后,单击“创建规则”完成规则创建。
图3 新建消息上报流转规则-数据转发至Kafka
- 创建完成规则后,进入设置转发目标页面,单击“添加”,添加一个正常数据转发目标。
图4 添加正常数据转发目标
- 添加完成后,可以单击“添加”,添加一个异常数据转发目标。
图5 添加异常数据转发目标
- 添加完成后单击
进行规则激活。图6 数据转发-启动规则