数据流转
更新时间: 2022-11-11

# 规则引擎

# 批量删除外部数据目的地(限制一次最多删除10条规则链)

基本信息

Path: /v1/instances/:instanceId/rulechains/destinations

Method: DELETE

接口描述:

请求参数 Headers

参数名称 参数值 是否必须 示例 备注
Content-Type application/json

路径参数

参数名称 示例 备注
instanceId

Body

名称类型是否必须默认值备注其他信息
destinationIdsstring []非必须

item 类型: string

├─非必须

返回数据

名称类型是否必须默认值备注其他信息

# 查询和过滤表达式检查和计算

基本信息

Path: /v1/instances/:instanceId/rulechains/compute

Method: POST

接口描述:

请求参数 Headers

参数名称 参数值 是否必须 示例 备注
Content-Type application/json

路径参数

参数名称 示例 备注
instanceId

Body

名称类型是否必须默认值备注其他信息
messagestring非必须测试的输入消息: 1. 需要符合JSON格式; 2. 最大允许4096个字符; 3. 默认是空字符串("")
filterstring非必须 查询语句: 1. 最大允许1024个字符
querystring非必须过滤条件 1. 最大允许256个字符

返回数据

名称类型是否必须默认值备注其他信息
messageobject非必须
├─ validboolean非必须是否符合规范
├─ exceptionstring非必须出现异常时的信息
├─ outputstring非必须正常时的输出,正常时对消息进行原样输出
queryobject非必须
├─ validboolean非必须是否符合规范
├─ exceptionstring非必须出现异常时的信息
├─ outputstring非必须正常时的输出,返回输入在给定查询条件下的输出
filterobject非必须
├─ validboolean非必须是否符合规范
├─ exceptionstring非必须出现异常时的信息,当filter处理结果不是布尔值时,会抛出异常
├─ outputstring非必须正常时的输出,返回输入在给定过滤条件下的输出 如果输入消息满足过滤条件,返回“true” 如果输入消息不满足过滤条件,返回“false"
resultobject非必须
├─ validboolean非必须是否符合规范
├─ exceptionstring非必须出现异常时的信息
├─ outputstring非必须正常时的输出,返回输入在给定查询和过滤条件下的结果

# 查询规则链列表

基本信息

Path: /v1/instances/:instanceId/rulechains

Method: GET

接口描述:

请求参数 Headers

参数名称 参数值 是否必须 示例 备注
Content-Type application/json

路径参数

参数名称 示例 备注
instanceId

Query

参数名称 是否必须 示例 备注
pageNo {pageNo} 默认1
pageSize {pageSize} 每页返回的数目,默认10,限制为100以内
orderBy {orderBy} createTime,默认createTime
order {order} 按升序还是降序返回结果,asc|desc,默认desc
name {name} 用于支撑名称模糊查询字段,

如果不使用,前端发送空字符串""过来
state {state} 操作状态,包括:DISABLED、ENABLED、BANNED

如果不使用,前端发送空字符串""过来
status {status} 运行状态,包括:PENDING、RUNNING、ERROR、BANNED;

如果不使用,前端发送空字符串""过来

返回数据

名称类型是否必须默认值备注其他信息
totalCountnumber非必须
pageNonumber非必须
pageSizenumber非必须
resultobject []非必须

item 类型: object

├─ rulechainIdstring非必须
├─ namestring非必须
├─ descriptionstring非必须
├─ statestring非必须
├─ statusstring非必须
├─ createTimestring非必须

# 上传文件

基本信息

Path: /v1/instances/:instanceId/rulechains/file/external-kafka

Method: POST

接口描述:

请求参数 Headers

参数名称 参数值 是否必须 示例 备注
Content-Type application/json

路径参数

参数名称 示例 备注
instanceId

Query

参数名称 是否必须 示例 备注
file 上传外部Kafka配置文件,一次只能上传一个文件。
限制:

文件大小限制为不超过3k字节
每个文件默认保留时间为1h
单个用户保留的文件数量最大为1000

Body

名称类型是否必须默认值备注其他信息

返回数据

名称类型是否必须默认值备注其他信息
idstring非必须文件唯一标识id

# 创建外部数据目的地

基本信息

Path: /v1/instances/:instanceId/rulechains/destination

Method: POST

接口描述:

请求参数 Headers

参数名称 参数值 是否必须 示例 备注
Content-Type application/json

路径参数

参数名称 示例 备注
instanceId

Query

参数名称 是否必须 示例 备注
file 上传外部Kafka配置文件,一次只能上传一个文件。
限制:

文件大小限制为不超过3k字节
每个文件默认保留时间为1h
单个用户保留的文件数量最大为1000

Body

名称类型是否必须默认值备注其他信息
typestring必须外部目的地类型: EXTERNAL_KAFKA:用户kafka
descriptionstring非必须描述信息,与规则描述保持一致 0-128个字符
argsobject非必须
├─ authTypestring必须认证方式,CERT:证书认证;ACCOUNT_PASSWORD:用户名+密码
├─ addressstring必须数据目的地连接地址,ip:port,用户自建Kafka连接地址允许配置多个ip:port,地址间以英文状态逗号隔开,长度不超过256个字符;必须保证所有地址都可用
├─ truststoreIdstring必须信任文件唯一标识fileId
├─ truststorePasswordstring必须信任文件密码
├─ keystoreIdstring必须密钥文件唯一标识fileId
├─ keystorePasswordstring必须密钥文件密码
├─ topicstring必须kafka的主题topic名称,允许大小写字母、数字和特殊字符_ . - ;长度不超过159个字符

返回数据

名称类型是否必须默认值备注其他信息
idstring非必须外部目的地ID,32个字符UUID

# 创建规则链

基本信息

Path: /v1/instances/:instanceId/rulechains

Method: POST

接口描述:

请求参数 Headers

参数名称 参数值 是否必须 示例 备注
Content-Type application/json

路径参数

参数名称 示例 备注
instanceId

Body

名称类型是否必须默认值备注其他信息
namestring必须2-32个字符,由汉字、大小写英文、数字、中线及下划线组成;需要保证同一个core实例下name的唯一性,后端会对name唯一性进行检查

mock: @string

descriptionstring非必须0-128个字符

mock: @string

返回数据

名称类型是否必须默认值备注其他信息

# 查询规则链

基本信息

Path: /v1/instances/:instanceId/rulechains/:rulechainId

Method: GET

接口描述:

目的地类型 参数
BMS region:区域
topic:存储主题
CFC region:区域
functionName:函数名
qualifier:函数版本/别名
EXTERNAL_KAFKA address: 数据目的地连接地址,ip:porttopic:kafka的主题topic名称
IOT_CORE topic:topic名;
qos:"0"或"1";p0不支持,默认为"1"
TSDB region:区域
database:当前账号下有操作权限的TSDB实例

请求参数 Headers

参数名称 参数值 是否必须 示例 备注
Content-Type application/json

路径参数

参数名称 示例 备注
instanceId
rulechainId

返回数据

名称类型是否必须默认值备注其他信息
namestring非必须规则链名
descriptionstring非必须描述;如果没有,返回空字符串“”
statusstring非必须规则链运行状态, PENDING:等待状态;RUNNING:正常运行状态;ERROR:异常状态;BANNED:封禁状态
createTimestring非必须规则链创建时间,UTC
topicstring非必须数据源topic;如果没有,返回空字符串“”
computeobject非必须处理规则对象; 查询时,前端新版本,根据compute的类型,获取对应的数据: 如果compute为null,表示创建之后还没有进行过编辑; 如果对应规则链是透传,compute参数中query、filter均为null
├─ typestring非必须规则对象类型:Json形式:JSON_FILTER_MAP;sql形式:EMBEDDED_SQL 注意⚠️: 更新时,如果要使用compute参数,只能使用JSON_FILTER_MAP类型
├─ querystring非必须查询语句: 1. JSON_FILTER_MAP 的通配符是"$"; 2. EMBEDDED_SQL 的通配符是"*"
├─ filterstring非必须过滤条件
destinationsobject []非必须目的地列表;如果没有,返回空list[]

item 类型: object

├─ typestring必须目的地类型 属于AIoT云的数据目的地:IOT_CORE:IoTCore;TSDB:时序数据库;BMS:百度消息服务; 属于外部数据目的地:EXTERNAL_KAFKA,用户Kafka
├─ argsobject必须目的地对应的参数 ,见备注
├─ topicstring非必须
├─ qosstring非必须
├─ regionstring非必须
├─ databasestring非必须
errorDestinationsobject []非必须错误目的地;如果没有,返回空list[]

item 类型: object

├─ typestring非必须
├─ argsobject非必须
├─ regionstring非必须
├─ functionNamestring非必须

# 批量删除规则链(限制一次最多删除10条规则链)

基本信息

Path: /v1/instances/:instanceId/rulechains

Method: DELETE

接口描述:

请求参数 Headers

参数名称 参数值 是否必须 示例 备注
Content-Type application/json

路径参数

参数名称 示例 备注
instanceId

Body

名称类型是否必须默认值备注其他信息
rulechainIdsstring []非必须

item 类型: string

├─非必须

返回数据

名称类型是否必须默认值备注其他信息

# 更新规则链

基本信息

Path: /v1/instances/:instanceId/rulechains/:rulechainId

Method: PUT

接口描述: 数据目的地&错误目的地约束条件 同一个规则下,数据目的地和错误操作目的地不能存在配置完全相同的云产品。

数据目的地类型 判定为配置相同的规则
MQTT主题 IoT Core实例和topic同时相同
AIoT消息服务BMS 区域、topic同时相同
用户Kafak 目的地id相同
函数计算CFC 区域、实例同时相同
MQTT动态主题 IoT Core实例相同


**目的地参数说明**
目的地类型 参数
IOT_CORE topic:topic名;
qos:"0"或"1";0 不支持,默认为"1"
TSDB region:区域
database:当前账号下有操作权限的TSDB实例
BMS region:区域
topic:存储主题
EXTERNAL_KAFKA address: 数据目的地连接地址,ip:porttopic:kafka的主题topic名称
CFC region:区域
functionName:函数名
qualifier:函数版本/别名
IOT_CORE_DYNAMIC topic:topic表达式
qos:"0"或"1";0 不支持,默认为"1"

请求参数 Headers

参数名称 参数值 是否必须 示例 备注
Content-Type application/json

路径参数

参数名称 示例 备注
instanceId
rulechainId

Body

名称类型是否必须默认值备注其他信息
descriptionstring必须描述,0-128个字符;如果没有,使用空字符串“”
topicstring必须数据源,对应IoTCore的topic,最多1-256个字符;必须要指定topic
computeobject非必须透传时,compute中filter、query均为null
├─ typestring必须规则对象类型:Json形式:JSON_FILTER_MAP;sql形式:EMBEDDED_SQL 注意⚠️: 更新时,如果要使用compute参数,只能使用JSON_FILTER_MAP类型
├─ querystring非必须查询语句: 1. JSON_FILTER_MAP 的通配符是"$"; 2. EMBEDDED_SQL 的通配符是"*"
├─ filterstring非必须过滤条件
destinationsobject []必须目的地列表,0-10个Destination;如果没有,使用空list[]

item 类型: object

├─ typestring必须IOT_CORE_DYNAMIC: IotCore MQTT动态主题
├─ argsobject必须目的地对应的参数,见备注
├─ topicstring非必须
├─ qosstring非必须
├─ regionstring非必须
├─ databasestring非必须
errorDestinationsobject []非必须目的地列表,0-1个Destination;如果没有,传入null

item 类型: object

├─ typestring非必须
├─ argsobject非必须
├─ regionstring非必须
├─ functionNamestring非必须

返回数据

名称类型是否必须默认值备注其他信息

# 用户操作规则链状态

基本信息

Path: /v1/instances/:instanceId/rulechains/:rulechainId/state

Method: PUT

接口描述:

请求参数 Headers

参数名称 参数值 是否必须 示例 备注
Content-Type application/json

路径参数

参数名称 示例 备注
instanceId
rulechainId

Query

参数名称 是否必须 示例 备注
updateState 用户操作规则链状态,DISABLED:禁用;ENABLED:启用

Body

名称类型是否必须默认值备注其他信息

返回数据

名称类型是否必须默认值备注其他信息

# 获取数据目的地列表

基本信息

Path: /v1/instances/:instanceId/rulechains/destinations

Method: GET

接口描述: args参数说明

类型 参数
EXTERNAL_KAFKA address: 数据目的地连接地址,ip:porttopic:kafka的主题topic名称
TSDB region:区域
database:当前账号下有操作权限的TSDB数据库名
IOT_CORE topic:空
qos:空
BMS region:区域
topic:存储主题
CFC region:区域
functionName:函数名
(数据目的地列表展示时,PRD中指出一个函数只展示一条信息)
IOT_CORE_DYNAMIC topic:空
qos:空

请求参数 Headers

参数名称 参数值 是否必须 示例 备注
Content-Type application/json

路径参数

参数名称 示例 备注
instanceId

Query

参数名称 是否必须 示例 备注
pageNo {pageNo} 默认1
pageSize {pageSize} 每页返回的数目,默认10,限制为100以内
orderBy {orderBy} createTime,默认createTime
order {order} 按升序还是降序返回结果,asc|desc,默认desc
sourceType 要查询的目的地来源

EXTERNAL:外部数据目的地

INTERNAL:AIoT云数据目的地
type 支持按照具体目的地类型进行过滤,包括

属于外部数据目的地的:EXTERNAL_KAFKA

属于AIoT云的数据目的地的:TSDB、IOT_CORE、BMS、CFC
region 当前只支持gz,不填时使用默认"default",后续支持了其他区域之后不填需要查询支持的所有区域

返回数据

名称类型是否必须默认值备注其他信息
totalCountnumber非必须
pageNonumber非必须
pageSizenumber非必须
resultobject []非必须

item 类型: object

├─ idstring非必须目的地id
├─ namestring非必须 目的名称
├─ descriptionstring非必须描述信息
├─ typestring非必须目的地类型 属于外部数据目的地:EXTERNAL_KAFKA 属于AIoT云的数据目的地:TSDB、IOT_CORE、BMS, IOT_CORE_DYNAMIC
├─ statusstring非必须目的地连接是否正常 NORMAL、ERROR AIoT云默认为NORMAL
├─ createTimestring非必须创建时间
├─ enableDeleteboolean非必须 是否允许删除 AIoT云默认为不允许删除
├─ argsobject非必须不同类型数据目的地对应的参数。见备注

# 获取特定目的地类型的参数

基本信息

Path: /v1/instances/:instanceId/rulechains/destinations/:uid/attribute

Method: GET

接口描述:

请求参数 Headers

参数名称 参数值 是否必须 示例 备注
Content-Type application/json

路径参数

参数名称 示例 备注
instanceId
uid 目的地实例的唯一标识:
对于CFC,是函数名

Query

参数名称 是否必须 示例 备注
type 目的地类型,当前只支持CFC
region
区域:
CFC必须,当前仅支持gz
attributes 不同目的地类型对应的特定属性名称,比如CFC的函数版本、函数别名,
属性名称可填多个,以“,”作为分隔符,不允许重复。
CFC必须,当前仅支持Versions

返回数据

名称类型是否必须默认值备注其他信息
typestring非必须目的地类型,当前只支持CFC
uidstring非必须目的地实例的唯一标识
regionstring非必须区域
attributesobject非必须
├─ Versionsobject []非必须

item 类型: object

├─ Uidstring非必须
├─ Descriptionstring非必须
├─ FunctionBrnstring非必须
├─ Regionstring非必须
├─ Timeoutnumber非必须
├─ VersionDescstring非必须
├─ UpdatedAtstring非必须
├─ LastModifiedstring非必须
├─ CodeSha256string非必须
├─ CodeSizenumber非必须
├─ FunctionArnstring非必须
├─ FunctionNamestring非必须
├─ Handlerstring非必须
├─ Versionstring非必须
├─ Runtimestring非必须
├─ MemorySizenumber非必须
├─ Environmentobject非必须
├─ Variablesobject非必须
├─ CommitIdstring非必须
├─ Rolestring非必须
├─ LogTypestring非必须
├─ LogBosDirnull非必须
├─ LogBodDirnull非必须

# 连接测试

基本信息

Path: /v1/instances/:instanceId/rulechains/destinations/connect

Method: GET

接口描述:

请求参数 Headers

参数名称 参数值 是否必须 示例 备注
Content-Type application/json

路径参数

参数名称 示例 备注
instanceId

Query

参数名称 是否必须 示例 备注
destinationId

返回数据

名称类型是否必须默认值备注其他信息