調用該接口對指定Topic新建一個規則。

使用說明

調用該接口時,請求參數ProductKey必須傳入。

QPS限制

單個阿里云賬號調用該接口的每秒請求數(QPS)最大限制為50。

說明 單個阿里云賬號下的所有RAM用戶共享該阿里云賬號的配額。

調試

您可以在OpenAPI Explorer中直接運行該接口,免去您計算簽名的困擾。運行成功后,OpenAPI Explorer可以自動生成SDK代碼示例。

請求參數

名稱 類型 是否必選 示例值 描述
Action String CreateRule

系統規定參數。取值:CreateRule。

Name String iot_test1

規則名稱。支持中文、英文字母、日文、數字、下劃線(_)和短劃線(-),長度為1~30個字符,一個中文或日文占2個字符。

IotInstanceId String iot-cn-0pp1n8t****

實例ID。您可在物聯網平臺控制臺的實例概覽頁面,查看當前實例的ID。

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

實例的更多信息,請參見實例概述

Select String deviceName() as deviceName, items.Humidity.value as Humidity, items.Temperature.value as Temperature

要執行的SQL SELECT語句。具體內容參照SQL表達式。

說明 此處傳入的是SELECT下的內容。例如,如果SELECT語句為SELECT a,b,c,則此處傳入a,b,c。
ShortTopic String +/thing/event/property/post

應用該規則的具體Topic,格式一般為:${deviceName}/topicShortName。其中,${deviceName}是具體設備的名稱,topicShortName是Topic短名稱。

  • 基礎通信Topic或物模型通信Topic的ShortTopic,格式一般為:${deviceName}/topicShortName。其中,${deviceName}可以使用通配符+代替,表示產品下所有設備名稱。topicShortName取值如下:
    • /thing/event/property/post 設備上報的屬性消息。
    • /thing/event/${tsl.event.identifier}/post設備上報的事件消息,${}中是產品物模型中事件identifier。
    • /thing/lifecycle 設備生命周期變更消息。
    • /thing/downlink/reply/message設備響應云端指令的結果消息。
    • /thing/list/found網關上報發現子設備消息。
    • /thing/topo/lifecycle設備拓撲關系變更消息。
    • /thing/event/property/history/post設備歷史屬性上報消息。
    • /thing/event/${tsl.event.identifier}/history/post設備歷史事件上報消息,${}中是產品物模型中事件identifier。
    • /ota/upgrade設備OTA升級狀態通知消息。
    • /ota/version/post設備OTA模塊版本號上報消息。
    • /thing/deviceinfo/update設備標簽變更消息。
    • /edge/driver/${driver_id}/point_post物聯網邊緣計算的透傳模式Topic消息,${}中是物聯網邊緣計算的設備接入驅動ID。

      OTA升級批次狀態通知Topic也屬于基礎通信Topic,ShortTopic格式為:${packageId}/${jobId}/ota/job/status。其中,${packageId}是升級包ID,${jobId}是升級批次ID。

  • 自定義Topic的ShortTopic,如:${deviceName}/user/get。

    調用QueryProductTopic接口,可以查看產品下的所有自定義Topic類。

    指定自定義Topic時,可以使用通配符+#。

    • ${deviceName}可以使用通配符+代替,表示產品下所有設備;
    • 之后字段可以用/user/#,#表示/user層級之后的所有層級名稱。

      使用通配符,請參見Topic類中的通配符

  • 設備狀態變化通知Topic的ShortTopic:${deviceName}。

    可以直接使用通配符+,表示產品下所有設備的狀態變化通知。

Where String Temperature>35

規則的觸發條件。具體內容參照SQL表達式。

說明 此處傳入的是Where中的內容。例如,如果Where語句為Where a>10,則此處傳入a>10
ProductKey String a1T27vz****

應用該規則的產品ProductKey。

RuleDesc String rule test

規則的描述信息。長度限制為100個字符,一個中文字符計為1個字符。

DataType String JSON

規則處理的數據格式,需與待處理的設備數據格式一致。取值:

  • JSON(默認):JSON數據。
  • BINARY:二進制數據。
說明 若選擇為BINARY,TopicType不能選擇為0(基礎通信Topic或物模型通信Topic),且不支持將數據轉發至實例內的時序數據存儲、時序數據庫、表格存儲和云數據庫RDS版。
TopicType Integer 1
  • 0ShortTopic參數描述中的基礎通信Topic或物模型通信Topic,包含OTA升級批次狀態通知Topic。
  • 1:自定義Topic。
  • 2:設備狀態變化通知Topic:/as/mqtt/status/${productKey}/${deviceName}。
ResourceGroupId String rg-acfmxazb4ph****

資源組ID。

重要
  • 目前,物聯網平臺僅支持實例維度的資源組管理。請求參數ResourceGroupId配置已無效,無需再傳入。
  • 歷史調用本API設置的資源組仍有效。
Topic String /sys/g18l***/device1/thing/event/property/post

待添加規則的完整Topic。

如果傳入此參數,無需再傳入參數ShortTopicTopicType

調用API時,除了本文介紹的該API的特有請求參數,還需傳入公共請求參數。公共請求參數說明,請參見公共參數文檔

說明 如需啟動規則,請求中需包含ProductKey、ShortTopic、Select三個參數的信息。

返回數據

名稱 類型 示例值 描述
Code String iot.system.SystemException

調用失敗時,返回的錯誤碼。更多信息,請參見錯誤碼

ErrorMessage String 系統異常

調用失敗時,返回的出錯信息。

RequestId String E4C0FF92-2A86-41DB-92D3-73B60310D25E

阿里云為該請求生成的唯一標識符。

RuleId Long 100000

調用成功時,規則引擎為該規則生成的規則ID,作為該規則的標識符。

說明 請妥善保管該信息。在調用和規則相關的接口時,您可能需要提供對應的規則ID。
Success Boolean true

是否調用成功。

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

示例

請求示例

https://iot.cn-shanghai.aliyuncs.com/?Action=CreateRule
&Name=iot_test1
&ProductKey=a1T27vz****
&ShortTopic=+/thing/event/property/post
&Select=deviceName() as deviceName, items.Humidity.value as Humidity, items.Temperature.value as Temperature
&RuleDesc=rule test
&DataType=JSON
&Where=Temperature>35
&TopicType=1
&<公共請求參數>

正常返回示例

XML格式

<CreateRuleResponse>
      <RequestId>E4C0FF92-2A86-41DB-92D3-73B60310D25E</RequestId>
      <RuleId>100000</RuleId>
      <Success>true</Success>
</CreateRuleResponse>

JSON格式

{
  "RequestId": "E4C0FF92-2A86-41DB-92D3-73B60310D25E", 
  "RuleId": 100000, 
  "Success": true
}