全部產品
Search
文件中心

IoT Platform:CreateRuleAction

更新時間:Feb 11, 2025

調用該介面在指定的規則下建立一個規則動作,定義將處理後的Topic資料,轉寄至物聯網平台的其他Topic,或所支援的其他阿里雲服務。

使用說明

  • 服務地區不同,所支援的目標雲產品有所不同。規則引擎支援的地區及目標雲產品,請參見地區與可用性區域
  • 一個規則下面最多可建立10個規則動作。

  • 您可以通過調用該API建立規則動作,定義將資料轉寄至物聯網平台其他Topic、AMQP消費組和其他阿里雲產品(Message Service、Function Compute和Table Store)。如果您想將資料轉寄至雲資料庫RDS版,請在物聯網平台控制台進行操作。

QPS限制

單個阿里雲帳號調用該介面的每秒請求數(QPS)最大限制為50。

說明 RAM使用者共用該阿里雲帳號配額。

調試

您可以在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

規則動作類型,取值:

  • REPUBLISH:將根據規則處理後的Topic資料轉寄至另一個物聯網平台 Topic。
  • AMQP:資料流轉到AMQP消費組。

  • MNS:將根據規則處理後的Topic資料發送至阿里雲Message Service中,進行訊息傳輸。
  • FC:將根據規則處理後的Topic資料發送至阿里雲Function Compute服務,進行事件計算。
  • OTS:將根據規則處理後的Topic資料發送至阿里雲Table Store(Tablestore),進行NoSQL資料存放區。
說明 資料格式為二進位的規則(即規則的DataType參數是BINARY)不支援轉寄資料至OTS(Table Store)。
IotInstanceId String iot-cn-0pp1n8t****

執行個體ID。您可在物聯網平台控制台的執行個體概覽頁面,查看當前執行個體的ID

重要
  • 若有ID值,必須傳入該ID值,否則調用會失敗。
  • 若無執行個體概覽頁面或ID值,則無需傳入。

執行個體的更多資訊,請參見執行個體概述

ErrorActionFlag Boolean false

該規則動作是否為轉寄錯誤操作資料的轉寄動作,即轉寄流轉到其他雲產品失敗且重試失敗的資料。 可選值:

  • true:該規則動作轉寄錯誤操作資料。
  • false:該規則動作不轉寄錯誤操作資料,而是正常轉寄操作。

預設值為false

REPUBLISH類型Configuration定義

名稱

描述

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"}

請將6541***替換成您的阿里雲帳號ID。您可以登入控制台,在帳號安全設定頁面查看您的帳號ID。

AliyunIOTAccessingDataHubRole是存取控制中定義的服務角色。用於授予物聯網平台訪問DataHub。關於角色的更多資訊,請在存取控制RAM控制台的角色管理頁面進行角色管理。

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

Table Store中用來接收資訊的執行個體名稱。

tableName

Table Store中用來接收資訊的資料表名稱。

regionName

目標執行個體所在的阿里雲地區代碼,例如cn-shanghai。

role

授權角色資訊。通過授予物聯網平台指定的系統服務角色,您可以授權物聯網平台訪問您的Table Store。授權角色資訊:

{"roleArn":"acs:ram::6541***:role/aliyuniotaccessingotsrole","roleName": "AliyunIOTAccessingOTSRole"}

請將6541***替換成您的阿里雲帳號ID。您可以登入控制台,在帳號安全設定頁面查看您的帳號ID。

AliyunIOTAccessingOTSRole是存取控制中定義的服務角色。用於授予物聯網平台訪問Table Store。關於角色的更多資訊,請在存取控制RAM控制台的角色管理頁面進行角色管理。

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

Message Service中用來接收資訊的目標主題名稱。

regionName

目標Message Service所在的阿里雲地區代碼,例如cn-shanghai。

role

授權角色資訊。通過授予物聯網平台指定的系統服務角色,您可以授權物聯網平台訪問您的Message Service。授權角色資訊:

{"roleArn":"acs:ram::6541***:role/aliyuniotaccessingmnsrole","roleName": "AliyunIOTAccessingMNSRole"}

請將6541***替換成您的阿里雲帳號ID。您可以登入控制台,在帳號安全設定頁面查看您的帳號ID。

AliyunIOTAccessingMNSRole是存取控制中定義的服務角色。用於授予物聯網平台訪問Message Service。關於角色的更多資訊,請在存取控制RAM控制台的角色管理頁面進行角色管理。

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

授權角色資訊。通過授予物聯網平台指定的系統服務角色,您可以授權物聯網平台訪問您的Function Compute服務。授權角色資訊:

{"roleArn":"acs:ram::6541***:role/aliyuniotaccessingfcrole","roleName": "AliyunIOTAccessingFCRole"}

請將6541***替換成您的阿里雲帳號ID。您可以登入控制台,在帳號安全設定頁面查看您的帳號ID。

AliyunIOTAccessingFCRole是存取控制中定義的服務角色。用於授予物聯網平台訪問Function Compute。關於角色的更多資訊,請在存取控制RAM控制台的角色管理頁面進行角色管理。

FC類型Configuration樣本:


{
    "regionName": "cn-shanghai",
    "role": {
        "roleArn": "acs:ram::5645***:role/aliyuniotaccessingfcrole",
        "roleName": "AliyunIOTAccessingFCRole"
    },
    "functionName": "weatherForecast",
    "serviceName": "weather"
}
ONS類型Configuration定義
說明 您需通過調用訊息佇列RocketMQ的SDK,或在訊息佇列RocketMQ控制台,授權物聯網平台訪問訊息佇列RocketMQ(至少要授予物聯網平台發布許可權),然後才能夠成功建立將Topic資料轉寄至訊息佇列RocketMQ的規則動作。

名稱

描述

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"}

請將6541***替換成您的阿里雲帳號ID。您可以登入控制台,在帳號安全設定頁面查看您的帳號ID。

AliyunIOTAccessingONSRole是存取控制中定義的服務角色。用於授予物聯網平台訪問訊息佇列RocketMQ。關於角色的更多資訊,請在存取控制RAM控制台的角色管理頁面進行角色管理。

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

是否調用成功。

  • true:調用成功。
  • false:調用失敗。

樣本

請求樣本

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
}

錯誤碼

訪問錯誤中心查看更多錯誤碼。