调用该接口在指定的规则下创建一个规则动作,定义将处理后的Topic数据,转发至物联网平台的其他Topic,或所支持的其他阿里云服务。
使用说明
QPS限制
单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
请求参数
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
Action | String | 是 | CreateRuleAction |
系统规定参数。取值:CreateRuleAction。 |
Configuration | String | 是 | {"topic":"/a1POX0c****/device1/user/get","topicType":1} |
该规则动作的配置信息,传入格式为JSON String。不同规则动作类型所需内容不同,具体要求和示例见下文请求参数补充说明。 |
RuleId | Long | 是 | 100000 |
要为其创建动作的规则ID。可在物联网平台控制台对应实例下,规则引擎>云产品流转页查看规则ID,或调用ListRule从返回结果中查看。 |
Type | String | 是 | REPUBLISH |
规则动作类型,取值:
说明 数据格式为二进制的规则(即规则的DataType参数是BINARY)不支持转发数据至OTS(表格存储)。
|
IotInstanceId | String | 否 | iot-cn-0pp1n8t**** |
实例ID。您可在物联网平台控制台的实例概览页面,查看当前实例的ID。 注意
实例的更多信息,请参见实例概述。 |
ErrorActionFlag | Boolean | 否 | false |
该规则动作是否为转发错误操作数据的转发动作,即转发流转到其他云产品失败且重试失败的数据。 可选值:
默认值为false。 |
名称 |
描述 |
---|---|
topic |
转发的目标Topic(物模型通信Topic或自定义Topic)。支持将数据转发至数据下行的物模型通信Topic: /sys/${YourProductKey}/${YourDeviceName}/thing/service/property/set
/sys/${YourProductKey}/${YourDeviceName}/thing/service/${tsl.service.identifier}
变量${tsl.service.identifier}的内容由该产品物模型中的服务决定。 |
topicType |
Topic的类型。 0:表示数据下行的物模型通信Topic。 1:表示自定义Topic。 |
REPUBLISH 类型Configuration示例:
sys类型:{"topic":"/sys/a1TXXXXXWSN/xxx_cache001/thing/service/property/set","topicType":0}
自定义类型:{"topic":"/a1TXXXXXWSN/xxx_cache001/user/update","topicType":1}
DATAHUB类型Configuration定义
名称 |
描述 |
---|---|
projectName |
目标DataHub中用来接收信息的具体Project。 |
topicName |
目标DataHub中用来接收信息的具体Topic。 |
regionName |
目标DataHub所在的阿里云地域代码,例如cn-shanghai。 |
role |
授权角色信息。通过授予IoT指定的系统服务角色,您可以授权物联网平台访问您的DataHub。授权角色信息格式: {"roleArn":"acs:ram::6541***:role/aliyuniotaccessingdatahubrole","roleName": "AliyunIOTAccessingDataHubRole"}
请将
|
schemaVals |
目标DataHub中的Schema列表,详情参见下表schemaVals。 |
schemaVals
名称 |
描述 |
---|---|
name |
列名。 |
value |
列值。 |
type |
列类型。 BIGINT:大整数型。 DOUBLE:双精度浮点型。 BOOLEAN:布尔型。 TIMESTAMP:时间戳型。 STRING:字符串型。 DECIMAL:小数型。 |
DATAHUB类型Configuration示例:
{
"schemaVals": [
{
"name": "devicename",
"value": "${deviceName}",
"type": "STRING"
},
{
"name": "msgtime",
"value": "${msgTime}",
"type": "TIMESTAMP"
}
],
"role": {
"roleArn": "acs:ram::6541***:role/aliyuniotaccessingdatahubrole",
"roleName": "AliyunIOTAccessingDataHubRole"
},
"projectName": "iot_datahub_stream",
"topicName": "device_message",
"regionName": "cn-shanghai"
}
OTS类型Configuration定义
名称 |
描述 |
---|---|
instanceName |
表格存储中用来接收信息的实例名称。 |
tableName |
表格存储中用来接收信息的数据表名称。 |
regionName |
目标实例所在的阿里云地域代码,例如cn-shanghai。 |
role |
授权角色信息。通过授予物联网平台指定的系统服务角色,您可以授权物联网平台访问您的表格存储。授权角色信息: {"roleArn":"acs:ram::6541***:role/aliyuniotaccessingotsrole","roleName": "AliyunIOTAccessingOTSRole"}
请将
|
primaryKeys |
目标表中的主键列表。详情参见下表PrimaryKeys。 |
PrimaryKeys
名称 |
描述 |
---|---|
columnType |
主键类型。 INTEGER:整型。 STRING:字符串。 BINARY:二进制。 |
columnName |
主键名称。 |
columnValue |
主键值。 |
option |
主键是否为自增列,取值AUTO_INCREMENT或为空。当主键类型为INTEGER,且该字段为AUTO_INCREMENT时,主键为自增列。 |
OTS类型Configuration示例:
{
"instanceName": "testaaa",
"tableName": "tt",
"primaryKeys": [
{
"columnType": "STRING",
"columnName": "ttt",
"columnValue": "${tt}",
"option": ""
},
{
"columnType": "INTEGER",
"columnName": "id",
"columnValue": "",
"option": "AUTO_INCREMENT"
}
],
"regionName": "cn-shanghai",
"role": {
"roleArn": "acs:ram::5645***:role/aliyuniotaccessingotsrole",
"roleName": "AliyunIOTAccessingOTSRole"
}
}
MNS类型Configuration定义
名称 |
描述 |
---|---|
themeName |
消息服务中用来接收信息的目标主题名称。 |
regionName |
目标消息服务所在的阿里云地域代码,例如cn-shanghai。 |
role |
授权角色信息。通过授予物联网平台指定的系统服务角色,您可以授权物联网平台访问您的消息服务。授权角色信息: {"roleArn":"acs:ram::6541***:role/aliyuniotaccessingmnsrole","roleName": "AliyunIOTAccessingMNSRole"}
请将
|
MNS类型Configuration示例:
{
"themeName": "mns-test-topic1",
"regionName": "cn-shanghai",
"role": {
"roleArn": "acs:ram::5645***:role/aliyuniotaccessingmnsrole",
"roleName": "AliyunIOTAccessingMNSRole"
}
}
FC类型Configuration定义
名称 |
描述 |
---|---|
functionName |
函数服务中用来接收信息的目标函数名称。 |
serviceName |
函数服务中用来接收信息的目标服务名称。 |
regionName |
目标函数服务实例所在阿里云地域的代码,如cn-shanghai。 |
role |
授权角色信息。通过授予物联网平台指定的系统服务角色,您可以授权物联网平台访问您的函数计算服务。授权角色信息: {"roleArn":"acs:ram::6541***:role/aliyuniotaccessingfcrole","roleName": "AliyunIOTAccessingFCRole"}
请将
|
FC类型Configuration示例:
{
"regionName": "cn-shanghai",
"role": {
"roleArn": "acs:ram::5645***:role/aliyuniotaccessingfcrole",
"roleName": "AliyunIOTAccessingFCRole"
},
"functionName": "weatherForecast",
"serviceName": "weather"
}
ONS类型Configuration定义
名称 |
描述 |
---|---|
instanceId |
RocketMQ中用来接收消息的目标Topic所属的实例ID。 |
topic |
RocketMQ中用来接收信息的目标Topic。 |
regionName |
目标RocketMQ实例所在的阿里云地域代码,例如cn-shanghai。 > 公网和同区流转,使用普通版RocketMQ实例即可;如果您需要跨区流转,则RocketMQ实例必需是铂金版实例。 |
tag |
(可选)设置标签。长度限制为128字节。 |
role |
授权角色信息。通过授予物联网平台指定的系统服务角色,您可以授权物联网平台访问您的消息队列RocketMQ服务。授权角色信息: {"roleArn":"acs:ram::6541***:role/aliyuniotaccessingonsrole","roleName": "AliyunIOTAccessingONSRole"}
请将
|
ONS类型Configuration示例:
{
"instanceId": "MQ_INST_123157908552****_XXXXXX"
"topic": "aliyun-iot-XXXXX",
"regionName": "cn-hangzhou",
"role": {
"roleArn": "acs:ram::6541***:role/aliyuniotaccessingonsrole",
"roleName": "AliyunIOTAccessingONSRole"
}
}
AMQP类型Configuration定义
名称 |
描述 |
---|---|
groupId |
消费组ID。 |
AMQP类型Configuration示例:
{
"groupId":"ZTh1JmyLGuZcUfv44p4z00****"
}
调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见公共参数文档。
返回数据
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
ActionId | Long | 10003 |
调用成功时,规则引擎为该规则动作生成的规则动作ID,作为其标识符。 说明 请妥善保管该信息。在调用与规则动作相关的接口时,您可能需要提供对应的规则动作ID。
|
Code | String | iot.system.SystemException |
调用失败时,返回的错误码。更多信息,请参见错误码。 |
ErrorMessage | String | 系统异常 |
调用失败时,返回的出错信息。 |
RequestId | String | 21D327AF-A7DE-4E59-B5D1-ACAC8C024555 |
阿里云为该请求生成的唯一标识符。 |
Success | Boolean | true |
是否调用成功。
|
示例
请求示例
https://iot.cn-shanghai.aliyuncs.com/?Action=CreateRuleAction
&RuleId=100000
&Type=REPUBLISH
&Configuration={"topic":"/a1POX0c****/device1/user/get","topicType":1}
&<公共请求参数>
正常返回示例
XML
格式
<CreateRuleActionResponse>
<RequestId>21D327AF-A7DE-4E59-B5D1-ACAC8C024555</RequestId>
<ActionId>10003</ActionId>
<Success>true</Success>
</CreateRuleActionResponse>
JSON
格式
{
"RequestId": "21D327AF-A7DE-4E59-B5D1-ACAC8C024555",
"ActionId": 10003,
"Success": true
}