• 沒有找到結果。

注意事项

HTTP 状态码

1.11 数据流转规则管理

1.11.7 创建规则动作

接口说明

应用服务器可调用此接口在物联网平台创建一条规则动作。

调试

您可以在API Explorer中调试该接口。

URI

请求方法 POST

URI /v5/iot/{project_id}/routing-rule/actions 传输协议 HTTPS

请求参数

名称 必选/可

类型 位置 说明

X-Auth-Token 必选 String Head

er 参数说明:用户Token。通过调用 IAM服务 获取IAM用户Token接口 获取,接口返回的响应消息头中

“X-Subject-Token”就是需要获 取的用户Token。简要的获取方法 样例请参见 Token认证。

Instance-Id 可选 String Head

er 参数说明:实例ID。物理多租下各 实例的唯一标识,一般华为云租户 无需携带该参数,仅在物理多租场 景下从管理面访问API时需要携带 该参数。

project_i

d 必选 String Path 参数说明:项目ID。获取方法请参 见 获取项目ID。

名称 必选/可 选

类型 位置 说明

rule_id 必选 String Body 参数说明:规则触发条件ID,用于 唯一标识一条规则触发条件,在创 建规则时由物联网平台分配获得。

取值范围:长度不超过36,只允许 字母、数字、下划线(_)、连接 符(-)的组合。

channel 必选 String Body 参数说明:规则动作的类型。

取值范围:

● HTTP_FORWARDING:HTTP 服务消息类型。

● DIS_FORWARDING:转发DIS 服务消息类型。

● OBS_FORWARDING:转发 OBS服务消息类型。

● AMQP_FORWARDING:转发 AMQP服务消息类型。

● DMS_KAFKA_FORWARDING:

转发kafka消息类型。

channel_

detail 必选 ChannelDeta

il Object Body 参数说明:通道参数。

1-63 ChannelDetail

名称 必选/可选 类型 说明

http_forwa

rding 可选 HttpForwardi

ng Object 参数说明:http服务器转发消息内容。

当type为HTTP_FORWARDING时,必 填。

dis_forwar

ding 可选 DisForwardin

g Object 参数说明:转发DIS服务消息内容。当 type为DIS_FORWARDING时,必填。

obs_forwa

rding 可选 ObsForwardi

ng Object 参数说明:转发OBS服务消息内容。当 type为OBS_FORWARDING时,必填。

amqp_for

warding 可选 AmqpForwar

ding Object 参数说明:转发AMQP服务消息内容。

当type为AMQP_FORWARDING时,必 填。

dms_kafka _forwardin g

可选 DmsKafkaFor warding Object

参数说明:转发Kafka消息内容。当 type为DMS_KAFKA_FORWARDING 时,必填。

1-64 HttpForwarding

名称 必选/可选 类型 说明

url 必选 String 参数说明:用于接收满足规则条件数据

的http服务器地址。

cert_id 可选 String 参数说明:证书id,请参见获取证书ID cn_name 可选 String 参数说明:当sni_enable为true时,此

字段需要填写,内容为将要请求的服务 端证书的域名,举例:domain:8443;当 sni_enbale为false时,此字段默认不填 写。

sni_enable 可选 Boolean 参数说明:需要https服务端和客户端 都支持此功能,默认为false,设成true 表明Https的客户端在发起请求时,需 要携带cn_name;https服务端根据 cn_name返回对应的证书;设为false 可关闭此功能。

1-65 DisForwarding

名称 必选/可选 类型 说明

region_na

me 必选 String 参数说明:DIS服务对应的region区域 project_id 必选 String 参数说明:DIS服务对应的projectId信

息 stream_na

me 可选 String 参数说明:DIS服务对应的通道名称,

stream_id和stream_name两个参数必 须携带一个,优先使用stream_id stream_id 可选 String 参数说明:DIS服务对应的通道ID,

stream_id和stream_name两个参数必 须携带一个,优先使用stream_id

1-66 ObsForwarding

名称 必选/可选 类型 说明

region_na

me 必选 String 参数说明:OBS服务对应的region区域 project_id 必选 String 参数说明:OBS服务对应的projectId信

息 bucket_na

me 必选 String 参数说明:OBS服务对应的桶名称

名称 必选/可选 类型 说明

location 可选 String 参数说明:OBS服务对应桶的区域 file_path 可选 String 参数说明:OBS服务中存储通道文件的

自定义目录,多级目录可用(/)进行分 隔,不可以斜杠(/)开头或结尾,不能 包含两个以上相邻的斜杠(/)

取值范围: 英文字母(a-zA-Z)、数字 (0-9)、下划线(_)、中划线(-)、斜杠 (/)和大括号({}),最大字符长度256个 字符。其中大括号只能用于对应模板参 数。

模板参数:

- \{YYYY\} 年 - \{MM\} 月 - \{DD\} 日 - \{HH\} 小时

例如:自定义目录结构为\{YYYY\}/\

{MM\}/\{DD\}/\{HH\},则会在转发数 据时,根据当前时间往对应的目录结构 2021>08>11>09下生成对应的数据。

1-67 AmqpForwarding

名称 必选/可选 类型 说明

queue_na

me 必选 String 参数说明:用于接收满足规则条件数据

的amqp queue。

1-68 DmsKafkaForwarding

名称 必选/可选 类型 说明

region_na

me 必选 String 参数说明:Kafka服务对应的region区 域

project_id 必选 String 参数说明:Kafka服务对应的projectId 信息

addresses 必选 List<NetAddr

ess> 参数说明:转发kafka消息对应的地址 列表

topic 必选 String 参数说明:转发kafka消息关联的topic 信息。

username 可选 String 参数说明:转发kafka关联的用户名信

名称 必选/可选 类型 说明

password 可选 String 参数说明:转发kafka关联的密码信 息。

mechanis

m 可选 String 参数说明:转发kafka关联的鉴权机

制。

取值范围:

● PAAS:非SASL鉴权。

● PLAIN:SASL/PLAIN模式。需要填 写对应的用户名密码信息。

1-69 NetAddress

名称 必选/可选 类型 说明

ip 可选 String 参数说明:服务的对应IP

port 可选 Integer 参数说明:服务对应端口

domain 可选 String 参数说明:服务对应的域名

响应参数

名称 类型 说明

action_id String 规则动作ID,用于唯一标识一条规则动作,在创 建规则动作时由物联网平台分配获得,创建时无 需携带,由平台统一分配唯一的action_id。

rule_id String 规则动作对应的的规则触发条件ID。

app_id String 资源空间ID。

channel String 规则动作的类型,取值范围:

● HTTP_FORWARDING:HTTP服务消息类型。

● DIS_FORWARDING:转发DIS服务消息类型。

● OBS_FORWARDING:转发OBS服务消息类 型。

● AMQP_FORWARDING:转发AMQP服务消息 类型。

● DMS_KAFKA_FORWARDING:转发kafka消息 类型。

channel_det

ail ChannelDetail

Object 通道配置信息。

1-70 ChannelDetail

名称 类型 说明

http_forwar

ding HttpForwardin

g Object 参数说明:http服务器转发消息内容。当type为 HTTP_FORWARDING时,必填。

dis_forwardi

ng DisForwarding

Object 参数说明:转发DIS服务消息内容。当type为 DIS_FORWARDING时,必填。

obs_forward

ing ObsForwardin

g Object 参数说明:转发OBS服务消息内容。当type为 OBS_FORWARDING时,必填。

amqp_forwa

rding AmqpForwardi

ng Object 参数说明:转发AMQP服务消息内容。当type为 AMQP_FORWARDING时,必填。

dms_kafka_f

orwarding DmsKafkaForw

arding Object 参数说明:转发Kafka消息内容。当type为 DMS_KAFKA_FORWARDING时,必填。

1-71 HttpForwarding

名称 类型 说明

url String 参数说明:用于接收满足规则条件数据的http服 务器地址。

cert_id String 参数说明:证书id,请参见获取证书ID

cn_name String 参数说明:当sni_enable为true时,此字段需要填 写,内容为将要请求的服务端证书的域名,举 例:domain:8443;当sni_enbale为false时,此字段 默认不填写。

sni_enable Boolean 参数说明:需要https服务端和客户端都支持此功 能,默认为false,设成true表明Https的客户端在 发起请求时,需要携带cn_name;https服务端根 据cn_name返回对应的证书;设为false可关闭此 功能。

1-72 DisForwarding

名称 类型 说明

region_nam

e String 参数说明:DIS服务对应的region区域 project_id String 参数说明:DIS服务对应的projectId信息 stream_nam

e String 参数说明:DIS服务对应的通道名称,stream_id 和stream_name两个参数必须携带一个,优先使 用stream_id

名称 类型 说明

stream_id String 参数说明:DIS服务对应的通道ID,stream_id和 stream_name两个参数必须携带一个,优先使用 stream_id

1-73 ObsForwarding

名称 类型 说明

region_nam

e String 参数说明:OBS服务对应的region区域 project_id String 参数说明:OBS服务对应的projectId信息 bucket_nam

e String 参数说明:OBS服务对应的桶名称

location String 参数说明:OBS服务对应桶的区域

file_path String 参数说明:OBS服务中存储通道文件的自定义目 录,多级目录可用(/)进行分隔,不可以斜杠(/)开 头或结尾,不能包含两个以上相邻的斜杠(/) 取值范围: 英文字母(a-zA-Z)、数字(0-9)、下划 线(_)、中划线(-)、斜杠(/)和大括号({}),最大字 符长度256个字符。其中大括号只能用于对应模 板参数。

模板参数:

- \{YYYY\} 年 - \{MM\} 月 - \{DD\} 日 - \{HH\} 小时

例如:自定义目录结构为\{YYYY\}/\{MM\}/\{DD

\}/\{HH\},则会在转发数据时,根据当前时间往对 应的目录结构2021>08>11>09下生成对应的数 据。

1-74 AmqpForwarding

名称 类型 说明

queue_nam

e String 参数说明:用于接收满足规则条件数据的amqp

queue。

1-75 DmsKafkaForwarding

名称 类型 说明

region_nam

e String 参数说明:Kafka服务对应的region区域 project_id String 参数说明:Kafka服务对应的projectId信息 addresses List<NetAddres

s> 参数说明:转发kafka消息对应的地址列表

topic String 参数说明:转发kafka消息关联的topic信息。

username String 参数说明:转发kafka关联的用户名信息。

password String 参数说明:转发kafka关联的密码信息。

mechanism String 参数说明:转发kafka关联的鉴权机制。

取值范围:

● PAAS:非SASL鉴权。

● PLAIN:SASL/PLAIN模式。需要填写对应的用 户名密码信息。

1-76 NetAddress

名称 类型 说明

ip String 参数说明:服务的对应IP

port Integer 参数说明:服务对应端口 domain String 参数说明:服务对应的域名

请求示例

POST https://{Endpoint}/v5/iot/{project_id}/routing-rule/actions Content-Type: application/json

X-Auth-Token: ********

Instance-Id: ********

{ "rule_id" : "1a7ffc5c-d89c-44dd-8265-b1653d951ce0", "channel" : "HTTP_FORWARDING",

"channel_detail" : { "amqp_forwarding" : { "queue_name" : "test"

},

"obs_forwarding" : {

"file_path" : "device_property_report/{YYYY}/{MM}/{DD}/{HH}", "project_id" : "project_id",

"bucket_name" : "bucket_name", "region_name" : "region_name", "location" : "location"

"cn_name" : "domain:8443",

"cert_id" : "0ae892cfeff641158920300b2292d2ca", "url" : "http://host:port/callbackurltest"

},

"dis_forwarding" : {

"stream_name" : "stream_name", "project_id" : "project_id", "stream_id" : "stream_id", "region_name" : "region_name"

},

"dms_kafka_forwarding" : { "addresses" : [ { "project_id" : "project_id", "topic" : "topic",

"region_name" : "region_name", "mechanism" : "PLAIN", "username" : "username"

} }}

响应示例

Status Code: 201 Created

Content-Type: application/json

{ "action_id" : "1a7ffc5c-d89c-44dd-8265-b1653d951ce1", "rule_id" : "1a7ffc5c-d89c-44dd-8265-b1653d951ce0", "app_id" : "1a7ffc5c-d89c-44dd-8265-b1653d951ce2", "channel" : "HTTP_FORWARDING",

"channel_detail" : { "http_forwarding" : {

"url" : "http://host:port/callbackurltest"

}

400 IOTDA .00900 5

The request callbackurl is invalid.

请求中的callbackurl地址不 合法

The request callbackurl is invalid.

请求中的callbackurl地址不 合法

The request

channel is invalid. 请求中channel参数 不合法

请排查请求中的 channel参数是否符 合华为云文档要 求。

HTTP

the rule action with the same channeldetail is already exist

规则动作中的

channeldetail重复 规则已存在,无需 重复注册或者删除 无用规则后重试。

IOTDA .01600 4

The queue name is

invalid 队列名称不合法 请排查请求参数是

否符合华为云文档 要求。

403 IOTDA .00002 1

Operation not allowed. User not found by IAM token or the authorized user has not subscribed IOTDA service.

没有找到IAM Token所对应的用户 信息或该用户没有 订阅设备接入服务

(IOTDA)

请排查IAM Token 所在用户是否订阅

Operation not allowed. The user does not have the permission

The application

does not exist. 该应用不存在 请确定是否已在平

Operation not allowed. The parameter 'app_id' is not carried, and the authorized user has more than one applications.

Include the

parameter 'app_id', or contact Huawei technical support engineers to merge application data.

HTTP

Operation not allowed.

Application not found by

authorized user or the authorized user has no application.

Operation not allowed. The application does not belong to the authorized user.

应用与用户信息不

The count of subscription subject exceeds the limit.

应用订阅记录数达 到上限。

请删除多余订阅记 录,该应用订阅数 量已达到上线。

404 IOTDA .01000 2

The rule does not

exist. 该规则不存在 请确认平台是否存

在该规则或请求参 数是否正确。

500 IOTDA .00000