更新时间:2024-10-23 GMT+08:00

查询规则动作列表

功能介绍

应用服务器可调用此接口查询物联网平台中设置的规则动作列表。

调试

您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。

URI

GET /v5/iot/{project_id}/routing-rule/actions

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

参数说明:项目ID。获取方法请参见 获取项目ID

表2 Query参数

参数

是否必选

参数类型

描述

rule_id

String

参数说明:规则触发条件ID。

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

channel

String

参数说明:规则动作的类型。

取值范围

  • HTTP_FORWARDING:HTTP服务消息类型。

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

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

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

  • DMS_KAFKA_FORWARDING:转发kafka消息类型。

  • INFLUXDB_FORWARDING:转发InfluxDB消息类型。

  • MYSQL_FORWARDING:转发MySQL消息类型。

  • FUNCTIONGRAPH_FORWARDING:转发FunctionGraph消息类型。

app_type

String

参数说明:租户规则的生效范围。

取值范围

  • GLOBAL:生效范围为租户级。

  • APP:生效范围为资源空间级。如果类型为APP,可携带app_id查询指定资源空间下的规则动作列表,不携带app_id则查询默认资源空间下的规则动作列表。

app_id

String

参数说明:资源空间ID。此参数为非必选参数,rule_id不携带且app_type为APP时,该参数生效,可携带app_id查询指定资源空间下的规则动作列表,不携带app_id则查询默认资源空间下的规则动作列表。

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

limit

Integer

参数说明:分页查询时每页显示的记录数。默认每页10条记录,最大设定每页50条记录。

取值范围:1-50的整数,默认值为10。

marker

String

参数说明:上一次分页查询结果中最后一条记录的ID,在上一次分页查询时由物联网平台返回获得。分页查询时物联网平台是按marker也就是记录ID降序查询的,越新的数据记录ID也会越大。若填写marker,则本次只查询记录ID小于marker的数据记录。若不填写,则从记录ID最大也就是最新的一条数据开始查询。如果需要依次查询所有数据,则每次查询时必须填写上一次查询响应中的marker值。

取值范围:长度为24的十六进制字符串,默认值为ffffffffffffffffffffffff。

offset

Integer

参数说明:表示从marker后偏移offset条记录开始查询。默认为0,取值范围为0-500的整数。当offset为0时,表示从marker后第一条记录开始输出。 - 限制offset最大值是出于API性能考虑,您可以搭配marker使用该参数实现翻页,例如每页50条记录,1-11页内都可以直接使用offset跳转到指定页,但到11页后,由于offset限制为500,您需要使用第11页返回的marker作为下次查询的marker,以实现翻页到12-22页。

取值范围:0-500的整数,默认为0。

请求参数

表3 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

参数说明:用户Token。通过调用IAM服务 获取IAM用户Token接口获取,接口返回的响应消息头中“X-Subject-Token”就是需要获取的用户Token。简要的获取方法样例请参见 Token认证

Instance-Id

String

参数说明:实例ID。物理多租下各实例的唯一标识,一般华为云租户无需携带该参数,仅在物理多租场景下从管理面访问API时需要携带该参数。您可以在IoTDA管理控制台界面,选择左侧导航栏“总览”页签查看当前实例的ID。

响应参数

状态码: 200

表4 响应Body参数

参数

参数类型

描述

actions

Array of RoutingRuleAction objects

规则动作信息列表。

count

Integer

满足查询条件的记录总数。

marker

String

本次分页查询结果中最后一条记录的ID,可在下一次分页查询时使用。

表5 RoutingRuleAction

参数

参数类型

描述

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消息类型。

  • INFLUXDB_FORWARDING:转发InfluxDB消息类型。

  • MYSQL_FORWARDING:转发MySQL消息类型。

  • FUNCTIONGRAPH_FORWARDING:转发FunctionGraph消息类型。

channel_detail

ChannelDetail object

通道配置信息。

表6 ChannelDetail

参数

参数类型

描述

http_forwarding

HttpForwarding object

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

dis_forwarding

DisForwarding object

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

obs_forwarding

ObsForwarding object

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

amqp_forwarding

AmqpForwarding object

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

dms_kafka_forwarding

DmsKafkaForwarding object

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

mysql_forwarding

MysqlForwarding object

参数说明:转发MySQL消息内容。当channel为MYSQL_FORWARDING时,必填。

influxdb_forwarding

InfluxDBForwarding object

参数说明:转发influxdb的配置参数。当channel为INFLUXDB_FORWARDING时,必填。

functiongraph_forwarding

FunctionGraphForwarding object

参数说明:转发云服务函数服务消息内容。当channel为FUNCTIONGRAPH_FORWARDING时,必填。

表7 HttpForwarding

参数

参数类型

描述

url

String

参数说明:用于接收满足规则条件数据的http服务器地址。HTTP为非数据加密传输模式,此模式下数据传输不安全, 建议使用更安全的HTTPS方式

cert_id

String

参数说明:证书id,请参见加载推送证书第3步获取证书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可关闭此功能。

signature_enable

Boolean

参数说明:是否启用签名。填写token时, 该参数必须为true, token才可以生效,否则token不生效。推荐设置成true,使用token签名验证消息是否来自平台。

token

String

参数说明:用作生成签名的Token,客户端可以使用该token按照规则生成签名并与推送消息中携带的签名做对比, 从而验证安全性。取值范围: 长度不超过32, 不小于3, 只允许字母、数字的组合。请参见HTTP/HTTPS推送基于Token认证物联网平台

表8 DisForwarding

参数

参数类型

描述

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

表9 ObsForwarding

参数

参数类型

描述

region_name

String

参数说明:OBS服务对应的region区域

project_id

String

参数说明:OBS服务对应的projectId信息

bucket_name

String

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

location

String

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

file_path

String

参数说明:OBS服务中存储通道文件的自定义目录,多级目录可用(/)进行分隔,不可以斜杠(/)开头或结尾,不能包含两个以上相邻的斜杠(/)

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

模板参数:

  • {YYYY} 年

  • {MM} 月

  • {DD} 日

  • {HH} 小时

  • {appId} 应用ID

  • {deviceId} 设备ID

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

表10 AmqpForwarding

参数

参数类型

描述

queue_name

String

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

表11 DmsKafkaForwarding

参数

参数类型

描述

region_name

String

参数说明:Kafka服务对应的region区域

project_id

String

参数说明:Kafka服务对应的projectId信息

addresses

Array of SupportPrivateLinkNetAddress objects

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

topic

String

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

username

String

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

password

String

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

mechanism

String

参数说明:转发kafka关联的SASL认证机制。

取值范围

  • PAAS:明文传输,此模式下为非数据加密传输模式,数据传输不安全,建议您使用更安全的数据加密模式。

  • PLAIN:SASL/PLAIN模式。需要填写对应的用户名密码信息。一种简单的用户名密码校验机制,在SASL_PLAINTEXT场景下,不建议使用。

  • SCRAM-SHA-512:SASL/SCRAM-SHA-512模式。需要填写对应的用户名密码信息。采用哈希算法对用户名与密码生成凭证,进行身份校验的安全认证机制,比PLAIN机制安全性更高。

security_protocol

String

参数说明:kafka传输安全协议,此字段不填默认为SASL_SSL。当mechanism为PAAS或不填时,该字段不生效。

取值范围

  • SASL_SSL:采用SSL证书进行加密传输,支持账号密码认证,安全性更高。

  • SASL_PLAINTEXT:明文传输,支持账号密码认证,性能更好,建议mechanism使用SCRAM-SHA-512机制。

表12 SupportPrivateLinkNetAddress

参数

参数类型

描述

ip

String

参数说明:服务的对应IP

port

Integer

参数说明:服务对应端口

domain

String

参数说明:服务对应的域名

表13 MysqlForwarding

参数

参数类型

描述

address

NetAddress object

转发roma消息对应的地址列表

db_name

String

参数说明:连接MYSQL数据库的库名。

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

username

String

参数说明:连接MYSQL数据库的用户名

password

String

参数说明:连接MYSQL数据库的密码

enable_ssl

Boolean

参数说明:客户端是否使用SSL连接服务端,默认为true, 若为false,则为非数据加密传输模式,此模式下数据传输不安全,建议您使用SSL模式。

table_name

String

参数说明:MYSQL数据库的表名

column_mappings

Array of ColumnMapping objects

参数说明:MYSQL数据库的列和流转数据的对应关系列表,最多支持32条映射关系。

表14 InfluxDBForwarding

参数

参数类型

描述

address

NetAddress object

参数说明:转发InfluxDB消息对应的地址

db_name

String

参数说明:连接InfluxDB数据库的库名,不存在会自动创建

username

String

参数说明:连接InfluxDB数据库的用户名

password

String

参数说明:连接InfluxDB数据库的密码

measurement

String

参数说明:InfluxDB数据库的measurement,不存在会自动创建

column_mappings

Array of ColumnMapping objects

参数说明:InfluxDB数据库和流转数据的对应关系列表,最多支持32条映射关系。

表15 NetAddress

参数

参数类型

描述

ip

String

参数说明:服务的对应IP

port

Integer

参数说明:服务对应端口

domain

String

参数说明:服务对应的域名

表16 ColumnMapping

参数

参数类型

描述

column_name

String

参数说明:数据库的列名

json_key

String

参数说明:流转数据的属性名

表17 FunctionGraphForwarding

参数

参数类型

描述

func_urn

String

参数说明:函数的URN(Uniform Resource Name),唯一标识函数。

func_name

String

参数说明:函数名称。

请求示例

列表查询规则动作。

GET https://{endpoint}/v5/iot/{project_id}/routing-rule/actions

响应示例

状态码: 200

Successful response

{
  "actions" : [ {
    "rule_id" : "1a7ffc5c-d89c-44dd-8265-b1653d951ce1",
    "action_id" : "1a7ffc5c-d89c-44dd-8265-b1653d951ce0",
    "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"
      },
      "http_forwarding" : {
        "sni_enable" : false,
        "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" : [ {
          "port" : 443,
          "ip" : "host",
          "domain" : "huawei.com"
        } ],
        "password" : "password",
        "project_id" : "project_id",
        "topic" : "topic",
        "region_name" : "region_name",
        "mechanism" : "PLAIN",
        "security_protocol" : "SASL_SSL",
        "username" : "username"
      }
    },
    "channel" : "HTTP_FORWARDING",
    "app_id" : "1a7ffc5c-d89c-44dd-8265-b1653d951ce2"
  } ],
  "count" : 10,
  "marker" : "5c90fa7d3c4e4405e8525079"
}

状态码

状态码

描述

200

Successful response

400

Bad Request

401

Unauthorized

403

Forbidden

500

Internal Server Error

错误码

请参见错误码