# 规则引擎
# 批量删除外部数据目的地(限制一次最多删除10条规则链)
Path: /v1/instances/:instanceId/rulechains/destinations
Method: DELETE
接口描述:
请求参数 Headers
参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
Content-Type | application/json | 是 |
路径参数
参数名称 | 示例 | 备注 |
---|---|---|
instanceId |
Body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
destinationIds | string [] | 非必须 | item 类型: string | ||
├─ | 非必须 |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|
# 查询和过滤表达式检查和计算
Path: /v1/instances/:instanceId/rulechains/compute
Method: POST
接口描述:
请求参数 Headers
参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
Content-Type | application/json | 是 |
路径参数
参数名称 | 示例 | 备注 |
---|---|---|
instanceId |
Body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
message | string | 非必须 | 测试的输入消息: 1. 需要符合JSON格式; 2. 最大允许4096个字符; 3. 默认是空字符串("") | ||
filter | string | 非必须 | 查询语句: 1. 最大允许1024个字符 | ||
query | string | 非必须 | 过滤条件 1. 最大允许256个字符 |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
message | object | 非必须 | |||
├─ valid | boolean | 非必须 | 是否符合规范 | ||
├─ exception | string | 非必须 | 出现异常时的信息 | ||
├─ output | string | 非必须 | 正常时的输出,正常时对消息进行原样输出 | ||
query | object | 非必须 | |||
├─ valid | boolean | 非必须 | 是否符合规范 | ||
├─ exception | string | 非必须 | 出现异常时的信息 | ||
├─ output | string | 非必须 | 正常时的输出,返回输入在给定查询条件下的输出 | ||
filter | object | 非必须 | |||
├─ valid | boolean | 非必须 | 是否符合规范 | ||
├─ exception | string | 非必须 | 出现异常时的信息,当filter处理结果不是布尔值时,会抛出异常 | ||
├─ output | string | 非必须 | 正常时的输出,返回输入在给定过滤条件下的输出 如果输入消息满足过滤条件,返回“true” 如果输入消息不满足过滤条件,返回“false" | ||
result | object | 非必须 | |||
├─ valid | boolean | 非必须 | 是否符合规范 | ||
├─ exception | string | 非必须 | 出现异常时的信息 | ||
├─ output | string | 非必须 | 正常时的输出,返回输入在给定查询和过滤条件下的结果 |
# 查询规则链列表
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; 如果不使用,前端发送空字符串""过来 |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
totalCount | number | 非必须 | |||
pageNo | number | 非必须 | |||
pageSize | number | 非必须 | |||
result | object [] | 非必须 | item 类型: object | ||
├─ rulechainId | string | 非必须 | |||
├─ name | string | 非必须 | |||
├─ description | string | 非必须 | |||
├─ state | string | 非必须 | |||
├─ status | string | 非必须 | |||
├─ createTime | string | 非必须 |
# 上传文件
Path: /v1/instances/:instanceId/rulechains/file/external-kafka
Method: POST
接口描述:
请求参数 Headers
参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
Content-Type | application/json | 是 |
路径参数
参数名称 | 示例 | 备注 |
---|---|---|
instanceId |
Query
参数名称 | 是否必须 | 示例 | 备注 |
---|---|---|---|
file | 是 | 上传外部Kafka配置文件,一次只能上传一个文件。 限制: 文件大小限制为不超过3k字节 每个文件默认保留时间为1h 单个用户保留的文件数量最大为1000 |
Body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
id | string | 非必须 | 文件唯一标识id |
# 创建外部数据目的地
Path: /v1/instances/:instanceId/rulechains/destination
Method: POST
接口描述:
请求参数 Headers
参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
Content-Type | application/json | 是 |
路径参数
参数名称 | 示例 | 备注 |
---|---|---|
instanceId |
Query
参数名称 | 是否必须 | 示例 | 备注 |
---|---|---|---|
file | 是 | 上传外部Kafka配置文件,一次只能上传一个文件。 限制: 文件大小限制为不超过3k字节 每个文件默认保留时间为1h 单个用户保留的文件数量最大为1000 |
Body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
type | string | 必须 | 外部目的地类型: EXTERNAL_KAFKA:用户kafka | ||
description | string | 非必须 | 描述信息,与规则描述保持一致 0-128个字符 | ||
args | object | 非必须 | |||
├─ authType | string | 必须 | 认证方式,CERT:证书认证;ACCOUNT_PASSWORD:用户名+密码 | ||
├─ address | string | 必须 | 数据目的地连接地址,ip:port,用户自建Kafka连接地址允许配置多个ip:port,地址间以英文状态逗号隔开,长度不超过256个字符;必须保证所有地址都可用 | ||
├─ truststoreId | string | 必须 | 信任文件唯一标识fileId | ||
├─ truststorePassword | string | 必须 | 信任文件密码 | ||
├─ keystoreId | string | 必须 | 密钥文件唯一标识fileId | ||
├─ keystorePassword | string | 必须 | 密钥文件密码 | ||
├─ topic | string | 必须 | kafka的主题topic名称,允许大小写字母、数字和特殊字符_ . - ;长度不超过159个字符 |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
id | string | 非必须 | 外部目的地ID,32个字符UUID |
# 创建规则链
Path: /v1/instances/:instanceId/rulechains
Method: POST
接口描述:
请求参数 Headers
参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
Content-Type | application/json | 是 |
路径参数
参数名称 | 示例 | 备注 |
---|---|---|
instanceId |
Body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
name | string | 必须 | 2-32个字符,由汉字、大小写英文、数字、中线及下划线组成;需要保证同一个core实例下name的唯一性,后端会对name唯一性进行检查 | mock: @string | |
description | string | 非必须 | 0-128个字符 | mock: @string |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|
# 查询规则链
Path: /v1/instances/:instanceId/rulechains/:rulechainId
Method: GET
接口描述:
目的地类型 | 参数 |
---|---|
BMS | region:区域 topic:存储主题 |
CFC | region:区域 functionName:函数名 qualifier:函数版本/别名 |
EXTERNAL_KAFKA | address: 数据目的地连接地址,ip:port topic:kafka的主题topic名称 |
IOT_CORE | topic:topic名; qos:"0"或"1";p0不支持,默认为"1" |
TSDB | region:区域 database:当前账号下有操作权限的TSDB实例 |
请求参数 Headers
参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
Content-Type | application/json | 是 |
路径参数
参数名称 | 示例 | 备注 |
---|---|---|
instanceId | ||
rulechainId |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
name | string | 非必须 | 规则链名 | ||
description | string | 非必须 | 描述;如果没有,返回空字符串“” | ||
status | string | 非必须 | 规则链运行状态, PENDING:等待状态;RUNNING:正常运行状态;ERROR:异常状态;BANNED:封禁状态 | ||
createTime | string | 非必须 | 规则链创建时间,UTC | ||
topic | string | 非必须 | 数据源topic;如果没有,返回空字符串“” | ||
compute | object | 非必须 | 处理规则对象; 查询时,前端新版本,根据compute的类型,获取对应的数据: 如果compute为null,表示创建之后还没有进行过编辑; 如果对应规则链是透传,compute参数中query、filter均为null | ||
├─ type | string | 非必须 | 规则对象类型:Json形式:JSON_FILTER_MAP;sql形式:EMBEDDED_SQL 注意⚠️: 更新时,如果要使用compute参数,只能使用JSON_FILTER_MAP类型 | ||
├─ query | string | 非必须 | 查询语句: 1. JSON_FILTER_MAP 的通配符是"$"; 2. EMBEDDED_SQL 的通配符是"*" | ||
├─ filter | string | 非必须 | 过滤条件 | ||
destinations | object [] | 非必须 | 目的地列表;如果没有,返回空list[] | item 类型: object | |
├─ type | string | 必须 | 目的地类型 属于AIoT云的数据目的地:IOT_CORE:IoTCore;TSDB:时序数据库;BMS:百度消息服务; 属于外部数据目的地:EXTERNAL_KAFKA,用户Kafka | ||
├─ args | object | 必须 | 目的地对应的参数 ,见备注 | ||
├─ topic | string | 非必须 | |||
├─ qos | string | 非必须 | |||
├─ region | string | 非必须 | |||
├─ database | string | 非必须 | |||
errorDestinations | object [] | 非必须 | 错误目的地;如果没有,返回空list[] | item 类型: object | |
├─ type | string | 非必须 | |||
├─ args | object | 非必须 | |||
├─ region | string | 非必须 | |||
├─ functionName | string | 非必须 |
# 批量删除规则链(限制一次最多删除10条规则链)
Path: /v1/instances/:instanceId/rulechains
Method: DELETE
接口描述:
请求参数 Headers
参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
Content-Type | application/json | 是 |
路径参数
参数名称 | 示例 | 备注 |
---|---|---|
instanceId |
Body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
rulechainIds | string [] | 非必须 | 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:port topic:kafka的主题topic名称 |
CFC | region:区域 functionName:函数名 qualifier:函数版本/别名 |
IOT_CORE_DYNAMIC | topic:topic表达式 qos:"0"或"1";0 不支持,默认为"1" |
请求参数 Headers
参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
Content-Type | application/json | 是 |
路径参数
参数名称 | 示例 | 备注 |
---|---|---|
instanceId | ||
rulechainId |
Body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
description | string | 必须 | 描述,0-128个字符;如果没有,使用空字符串“” | ||
topic | string | 必须 | 数据源,对应IoTCore的topic,最多1-256个字符;必须要指定topic | ||
compute | object | 非必须 | 透传时,compute中filter、query均为null | ||
├─ type | string | 必须 | 规则对象类型:Json形式:JSON_FILTER_MAP;sql形式:EMBEDDED_SQL 注意⚠️: 更新时,如果要使用compute参数,只能使用JSON_FILTER_MAP类型 | ||
├─ query | string | 非必须 | 查询语句: 1. JSON_FILTER_MAP 的通配符是"$"; 2. EMBEDDED_SQL 的通配符是"*" | ||
├─ filter | string | 非必须 | 过滤条件 | ||
destinations | object [] | 必须 | 目的地列表,0-10个Destination;如果没有,使用空list[] | item 类型: object | |
├─ type | string | 必须 | IOT_CORE_DYNAMIC: IotCore MQTT动态主题 | ||
├─ args | object | 必须 | 目的地对应的参数,见备注 | ||
├─ topic | string | 非必须 | |||
├─ qos | string | 非必须 | |||
├─ region | string | 非必须 | |||
├─ database | string | 非必须 | |||
errorDestinations | object [] | 非必须 | 目的地列表,0-1个Destination;如果没有,传入null | item 类型: object | |
├─ type | string | 非必须 | |||
├─ args | object | 非必须 | |||
├─ region | string | 非必须 | |||
├─ functionName | string | 非必须 |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|
# 用户操作规则链状态
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:port topic: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",后续支持了其他区域之后不填需要查询支持的所有区域 |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
totalCount | number | 非必须 | |||
pageNo | number | 非必须 | |||
pageSize | number | 非必须 | |||
result | object [] | 非必须 | item 类型: object | ||
├─ id | string | 非必须 | 目的地id | ||
├─ name | string | 非必须 | 目的名称 | ||
├─ description | string | 非必须 | 描述信息 | ||
├─ type | string | 非必须 | 目的地类型 属于外部数据目的地:EXTERNAL_KAFKA 属于AIoT云的数据目的地:TSDB、IOT_CORE、BMS, IOT_CORE_DYNAMIC | ||
├─ status | string | 非必须 | 目的地连接是否正常 NORMAL、ERROR AIoT云默认为NORMAL | ||
├─ createTime | string | 非必须 | 创建时间 | ||
├─ enableDelete | boolean | 非必须 | 是否允许删除 AIoT云默认为不允许删除 | ||
├─ args | object | 非必须 | 不同类型数据目的地对应的参数。见备注 |
# 获取特定目的地类型的参数
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 |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
type | string | 非必须 | 目的地类型,当前只支持CFC | ||
uid | string | 非必须 | 目的地实例的唯一标识 | ||
region | string | 非必须 | 区域 | ||
attributes | object | 非必须 | |||
├─ Versions | object [] | 非必须 | item 类型: object | ||
├─ Uid | string | 非必须 | |||
├─ Description | string | 非必须 | |||
├─ FunctionBrn | string | 非必须 | |||
├─ Region | string | 非必须 | |||
├─ Timeout | number | 非必须 | |||
├─ VersionDesc | string | 非必须 | |||
├─ UpdatedAt | string | 非必须 | |||
├─ LastModified | string | 非必须 | |||
├─ CodeSha256 | string | 非必须 | |||
├─ CodeSize | number | 非必须 | |||
├─ FunctionArn | string | 非必须 | |||
├─ FunctionName | string | 非必须 | |||
├─ Handler | string | 非必须 | |||
├─ Version | string | 非必须 | |||
├─ Runtime | string | 非必须 | |||
├─ MemorySize | number | 非必须 | |||
├─ Environment | object | 非必须 | |||
├─ Variables | object | 非必须 | |||
├─ CommitId | string | 非必须 | |||
├─ Role | string | 非必须 | |||
├─ LogType | string | 非必须 | |||
├─ LogBosDir | null | 非必须 | |||
├─ LogBodDir | null | 非必须 |
# 连接测试
Path: /v1/instances/:instanceId/rulechains/destinations/connect
Method: GET
接口描述:
请求参数 Headers
参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
Content-Type | application/json | 是 |
路径参数
参数名称 | 示例 | 备注 |
---|---|---|
instanceId |
Query
参数名称 | 是否必须 | 示例 | 备注 |
---|---|---|---|
destinationId | 是 |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|