创建规则动作
接口说明
应用服务器可调用此接口在物联网平台创建一条规则动作。
调试
您可以在API Explorer中直接运行调试该接口。
URI
|
请求方法 |
POST |
|---|---|
|
URI |
/v5/iot/{project_id}/routing-rule/actions |
|
传输协议 |
HTTPS |
请求参数
|
名称 |
必选/可选 |
类型 |
位置 |
说明 |
|---|---|---|---|---|
|
X-Auth-Token |
必选 |
String |
Header |
参数说明:用户Token。通过调用IAM服务 获取IAM用户Token接口获取,接口返回的响应消息头中“X-Subject-Token”就是需要获取的用户Token。简要的获取方法样例请参见 Token认证。 |
|
Instance-Id |
可选 |
String |
Header |
参数说明:实例ID。物理多租下各实例的唯一标识,一般华为云租户无需携带该参数,仅在物理多租场景下从管理面访问API时需要携带该参数。 |
|
project_id |
必选 |
String |
Path |
参数说明:项目ID。获取方法请参见 获取项目ID。 |
|
rule_id |
必选 |
String |
Body |
参数说明:规则触发条件ID,用于唯一标识一条规则触发条件,在创建规则时由物联网平台分配获得。 取值范围:长度不超过36,只允许字母、数字、下划线(_)、连接符(-)的组合。 |
|
channel |
必选 |
String |
Body |
参数说明:规则动作的类型。 取值范围:
|
|
channel_detail |
必选 |
ChannelDetail Object |
Body |
参数说明:通道参数。 |
|
名称 |
必选/可选 |
类型 |
说明 |
|---|---|---|---|
|
http_forwarding |
可选 |
HttpForwarding Object |
参数说明:http服务器转发消息内容。当type为HTTP_FORWARDING时,必填。 |
|
dis_forwarding |
可选 |
DisForwarding Object |
参数说明:转发DIS服务消息内容。当type为DIS_FORWARDING时,必填。 |
|
obs_forwarding |
可选 |
ObsForwarding Object |
参数说明:转发OBS服务消息内容。当type为OBS_FORWARDING时,必填。 |
|
amqp_forwarding |
可选 |
AmqpForwarding Object |
参数说明:转发AMQP服务消息内容。当type为AMQP_FORWARDING时,必填。 |
|
dms_kafka_forwarding |
可选 |
DmsKafkaForwarding Object |
参数说明:转发Kafka消息内容。当type为DMS_KAFKA_FORWARDING时,必填。 |
|
名称 |
必选/可选 |
类型 |
说明 |
|---|---|---|---|
|
url |
必选 |
String |
参数说明:用于接收满足规则条件数据的http服务器地址。 |
|
cert_id |
可选 |
String |
参数说明:证书id,请参见获取证书ID |
|
cn_name |
可选 |
String |
参数说明:当sni_enable为true时,此字段需要填写,内容为将要请求的服务端证书的域名,举例:www.example.com:8443;当sni_enbale为false时,此字段默认不填写。 |
|
sni_enable |
可选 |
Boolean |
参数说明:需要https服务端和客户端都支持此功能,默认为false,设成true表明Https的客户端在发起请求时,需要携带cn_name;https服务端根据cn_name返回对应的证书;设为false可关闭此功能。 |
|
名称 |
必选/可选 |
类型 |
说明 |
|---|---|---|---|
|
region_name |
必选 |
String |
参数说明:DIS服务对应的region区域 |
|
project_id |
必选 |
String |
参数说明:DIS服务对应的projectId信息 |
|
stream_name |
可选 |
String |
参数说明:DIS服务对应的通道名称,stream_id和stream_name两个参数必须携带一个,优先使用stream_id |
|
stream_id |
可选 |
String |
参数说明:DIS服务对应的通道ID,stream_id和stream_name两个参数必须携带一个,优先使用stream_id |
|
名称 |
必选/可选 |
类型 |
说明 |
|---|---|---|---|
|
region_name |
必选 |
String |
参数说明:OBS服务对应的region区域 |
|
project_id |
必选 |
String |
参数说明:OBS服务对应的projectId信息 |
|
bucket_name |
必选 |
String |
参数说明:OBS服务对应的桶名称 |
|
location |
可选 |
String |
参数说明:OBS服务对应桶的区域 |
|
名称 |
必选/可选 |
类型 |
说明 |
|---|---|---|---|
|
region_name |
必选 |
String |
参数说明:Kafka服务对应的region区域 |
|
project_id |
必选 |
String |
参数说明:Kafka服务对应的projectId信息 |
|
addresses |
必选 |
List<NetAddress> |
参数说明:转发kafka消息对应的地址列表 |
|
topic |
必选 |
String |
参数说明:转发kafka消息关联的topic信息。 |
|
username |
可选 |
String |
参数说明:转发kafka关联的用户名信息。 |
|
password |
可选 |
String |
参数说明:转发kafka关联的密码信息。 |
|
mechanism |
可选 |
String |
参数说明:转发kafka关联的鉴权机制。 取值范围:
|
响应参数
|
名称 |
类型 |
说明 |
|---|---|---|
|
action_id |
String |
规则动作ID,用于唯一标识一条规则动作,在创建规则动作时由物联网平台分配获得,创建时无需携带,由平台统一分配唯一的action_id。 |
|
rule_id |
String |
规则动作对应的的规则触发条件ID。 |
|
app_id |
String |
资源空间ID。 |
|
channel |
String |
规则动作的类型,取值范围:
|
|
channel_detail |
ChannelDetail Object |
通道配置信息。 |
|
名称 |
类型 |
说明 |
|---|---|---|
|
http_forwarding |
HttpForwarding Object |
参数说明:http服务器转发消息内容。当type为HTTP_FORWARDING时,必填。 |
|
dis_forwarding |
DisForwarding Object |
参数说明:转发DIS服务消息内容。当type为DIS_FORWARDING时,必填。 |
|
obs_forwarding |
ObsForwarding Object |
参数说明:转发OBS服务消息内容。当type为OBS_FORWARDING时,必填。 |
|
amqp_forwarding |
AmqpForwarding Object |
参数说明:转发AMQP服务消息内容。当type为AMQP_FORWARDING时,必填。 |
|
dms_kafka_forwarding |
DmsKafkaForwarding Object |
参数说明:转发Kafka消息内容。当type为DMS_KAFKA_FORWARDING时,必填。 |
|
名称 |
类型 |
说明 |
|---|---|---|
|
url |
String |
参数说明:用于接收满足规则条件数据的http服务器地址。 |
|
cert_id |
String |
参数说明:证书id,请参见获取证书ID |
|
cn_name |
String |
参数说明:当sni_enable为true时,此字段需要填写,内容为将要请求的服务端证书的域名,举例:www.example.com:8443;当sni_enbale为false时,此字段默认不填写。 |
|
sni_enable |
Boolean |
参数说明:需要https服务端和客户端都支持此功能,默认为false,设成true表明Https的客户端在发起请求时,需要携带cn_name;https服务端根据cn_name返回对应的证书;设为false可关闭此功能。 |
|
名称 |
类型 |
说明 |
|---|---|---|
|
region_name |
String |
参数说明:DIS服务对应的region区域 |
|
project_id |
String |
参数说明:DIS服务对应的projectId信息 |
|
stream_name |
String |
参数说明:DIS服务对应的通道名称,stream_id和stream_name两个参数必须携带一个,优先使用stream_id |
|
stream_id |
String |
参数说明:DIS服务对应的通道ID,stream_id和stream_name两个参数必须携带一个,优先使用stream_id |
|
名称 |
类型 |
说明 |
|---|---|---|
|
region_name |
String |
参数说明:OBS服务对应的region区域 |
|
project_id |
String |
参数说明:OBS服务对应的projectId信息 |
|
bucket_name |
String |
参数说明:OBS服务对应的桶名称 |
|
location |
String |
参数说明:OBS服务对应桶的区域 |
|
名称 |
类型 |
说明 |
|---|---|---|
|
region_name |
String |
参数说明:Kafka服务对应的region区域 |
|
project_id |
String |
参数说明:Kafka服务对应的projectId信息 |
|
addresses |
List<NetAddress> |
参数说明:转发kafka消息对应的地址列表 |
|
topic |
String |
参数说明:转发kafka消息关联的topic信息。 |
|
username |
String |
参数说明:转发kafka关联的用户名信息。 |
|
password |
String |
参数说明:转发kafka关联的密码信息。 |
|
mechanism |
String |
参数说明:转发kafka关联的鉴权机制。 取值范围:
|
请求示例
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" : {
"project_id" : "project_id",
"bucket_name" : "bucket_name",
"region_name" : "region_name",
"location" : "location"
},
"http_forwarding" : {
"sni_enable" : false,
"cn_name" : "www.example.com:8443",
"cert_id" : "0ae892cfeff641158920300b2292d2ca",
"url" : "http://10.10.10.10:443/callbackurltest"
},
"dis_forwarding" : {
"stream_name" : "stream_name",
"project_id" : "project_id",
"stream_id" : "stream_id",
"region_name" : "region_name"
},
"dms_kafka_forwarding" : {
"addresses" : [ {
"port" : 443,
"ip" : "10.1.1.1",
"domain" : "huawei.com"
} ],
"password" : "password",
"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://10.10.10.10:443/callbackurltest"
}
}
}
错误码
|
HTTP状态码 |
错误码 |
错误码英文描述 |
错误码中文描述 |
处理建议 |
|---|---|---|---|---|
|
400 |
IOTDA.009005 |
The request callbackurl is invalid. |
请求中的callbackurl地址不合法 |
请排查请求中的callbackurl参数是否符合华为云文档要求。 |
|
IOTDA.009005 |
The request callbackurl is invalid. |
请求中的callbackurl地址不合法 |
请排查请求中的callbackurl参数是否符合华为云文档要求。 |
|
|
IOTDA.009007 |
The request channel is invalid. |
请求中channel参数不合法 |
请排查请求中的channel参数是否符合华为云文档要求。 |
|
|
IOTDA.010023 |
the rule action with the same channeldetail is already exist |
规则动作中的channeldetail重复 |
规则已存在,无需重复注册或者删除无用规则后重试。 |
|
|
IOTDA.016004 |
The queue name is invalid |
队列名称不合法 |
请排查请求参数是否符合华为云文档要求。 |
|
|
403 |
IOTDA.000021 |
Operation not allowed. User not found by IAM token or the authorized user has not subscribed IOTDA service. |
没有找到IAM Token所对应的用户信息或该用户没有订阅设备接入服务(IOTDA) |
请排查IAM Token所在用户是否订阅了设备接入服务(IOTDA)。 |
|
IOTDA.000022 |
Operation not allowed. The user does not have the permission |
该用户没有权限 |
请排查该用户是否有权限访问。 |
|
|
IOTDA.001000 |
The application does not exist. |
该应用不存在 |
请确定是否已在平台注册应用并检查应用ID是否正确。 |
|
|
IOTDA.001005 |
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. |
该用户下有多个应用的情况下未携带appId访问接口 |
请携带对应的appId或联系华为工程师合并应用数据。 |
|
|
IOTDA.001006 |
Operation not allowed. Application not found by authorized user or the authorized user has no application. |
用户下没有应用或应用与用户不匹配 |
请排查用户下是否有应用或是否有指定的应用。 |
|
|
IOTDA.001007 |
Operation not allowed. The application does not belong to the authorized user. |
应用与用户信息不匹配 |
请排查该用户下是否有指定的应用。 |
|
|
IOTDA.009001 |
The count of subscription subject exceeds the limit. |
应用订阅记录数达到上限。 |
请删除多余订阅记录,该应用订阅数量已达到上线。 |
|
|
404 |
IOTDA.010002 |
The rule does not exist. |
该规则不存在 |
请确认平台是否存在该规则或请求参数是否正确。 |
|
500 |
IOTDA.000001 |
Internal server error. |
服务器内部错误 |
请联系华为工程师分析解决。 |
|
IOTDA.000020 |
Decrypt IAM token failed. |
IAM Token解析失败 |
请联系华为工程师分析解决。 |
Did this article solve your problem?
Thank you for your score!Your feedback would help us improve the website.