通過規則引擎的雲產品流轉功能,物聯網平台可將指定Topic的資料流轉至其他的Topic和阿里雲產品中。本文將為您介紹設定資料流轉規則的完整操作步驟,依次是建立規則、編寫處理資料的SQL、設定資料流轉目的地、設定流轉失敗的資料轉寄目的地。
操作步驟
登入物聯網平台控制台。
在執行個體概覽頁簽的全部環境下,找到對應的執行個體,單擊執行個體卡片。
在左側導覽列,選擇 。
在雲產品流轉頁面,單擊建立規則。
重要若當前頁面顯示新版功能,先單擊右上方返回舊版,進入舊版功能頁面,再單擊建立規則。
填寫參數後,單擊確認。
參數
描述
規則名稱
輸入規則名稱。支援中文、英文字母、日文、數字、底線(_)和短劃線(-),長度為1~30個字元,一個中文或日文佔2個字元。
資料格式
選擇該規則處理資料的格式。可選:JSON和二進位。
說明因資料流轉基於Topic處理資料,此處的資料格式需與被處理Topic中的資料格式保持一致。
若選擇為二進位,該規則不能處理基礎通訊Topic、物模型通訊Topic的訊息,且不能將資料轉寄至Table Store和雲資料庫RDS版。
規則描述
規則描述資訊。
規則建立成功後,將跳轉到資料流轉規則頁面。您需編輯處理訊息資料的SQL、設定資料轉寄目的地、流轉失敗資料轉寄目的地。
單擊編寫SQL,編寫處理訊息欄位的SQL。
參數
描述
規則查詢語句
系統會在這裡,根據您設定的欄位、Topic和條件自動補充完整規則查詢語句。
欄位
指定要處理的訊息內容欄位,即SQL中SELECT後的內容。
例如,填入deviceName() as deviceName,則表示需篩選出訊息中的deviceName欄位內容。欄位中可使用的函數,請參見函數列表。
Topic
選擇需要處理的訊息Topic,即SQL中FROM後的內容。可選Topic,請參見下表《Topic說明》。
重要當規則的資料格式是二進位時,僅支援選擇自訂。
條件
設定規則引發條件,即SQL中WHERE後的內容。
表 1. Topic說明 Topic
說明
相關文檔
自訂
流轉自訂資料格式訊息的Topic,與自訂Topic的格式相同。格式為:
/${productKey}/${deviceName}/user/${TopicShortName}
。其中
${TopicShortName}
為自訂的Topic類,即自訂Topic的尾碼。支援使用萬用字元(+)和(#):
全部裝置(
+
):指定產品下所有裝置。/user/#
:指定裝置的所有自訂Topic。
裝置狀態變化通知
流轉裝置上下線狀態變更訊息的Topic:
/as/mqtt/status/${productKey}/${deviceName}
。物模型資料上報
包含:
流轉裝置上報屬性資料的Topic:
/${productKey}/${deviceName}/thing/event/property/post
。流轉裝置上報事件數目據的Topic:
/${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/post
。流轉裝置批量上報屬性資料的Topic:
/${productKey}/${deviceName}/thing/property/batch/post
。流轉裝置批量上報事件數目據的Topic:
/${productKey}/${deviceName}/thing/event/batch/post
。流轉裝置響應雲端命令返回訊息的Topic:
/${productKey}/${deviceName}/thing/downlink/reply/message
。
對應裝置上報未經處理資料的Topic如下:
裝置上報屬性的Topic:
/sys/${productKey}/${deviceName}/thing/event/property/post
。裝置上報事件的Topic:
/sys/${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/post
、/sys/${productKey}/${deviceName}/thing/event/${tsl.functionBlockId}:{tsl.event.identifier}/post
。裝置批量上報屬性、事件數目據的Topic:
/sys/${productKey}/${deviceName}/thing/event/property/batch/post
。
裝置生命週期變更
流轉裝置建立、刪除、禁用、啟用等訊息的Topic:
/${productKey}/${deviceName}/thing/lifecycle
。網關發現子裝置上報
網關裝置特有的Topic:
/${productKey}/${deviceName}/thing/list/found
,將發現的子裝置資訊上報給物聯網平台,然後進行流轉。裝置拓撲關係變更
網關裝置特有Topic:
/${productKey}/${deviceName}/thing/topo/lifecycle
,流轉子裝置和網關之間的拓撲關係建立和解除訊息的Topic。對應裝置上報未經處理資料的Topic:
/sys/${productKey}/${deviceName}/thing/topo/change
。裝置標籤變更
流轉裝置標籤資訊變更的Topic:
/${productKey}/${deviceName}/thing/deviceinfo/update
。對應裝置上報未經處理資料的Topic:
/sys/${productKey}/${deviceName}/thing/deviceinfo/update
。物模型歷史資料上報
包含:
流轉裝置上報歷史屬性資料的Topic:
/${productKey}/${deviceName}/thing/event/property/history/post
。流轉裝置上報歷史事件數目據的Topic:
/${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/history/post
。
對應裝置上報物模型歷史資料的Topic:
/sys/${productKey}/${deviceName}/thing/event/property/history/post
。OTA升級裝置狀態通知
包含:
流轉裝置上報OTA升級結果的Topic:
/${productKey}/${deviceName}/ota/upgrade
。流轉裝置上報OTA升級進度的Topic:
/${productKey}/${deviceName}/ota/progress/post
。
對應裝置上報升級進度的Topic:
/ota/device/progress/${productKey}/${deviceName}
。OTA模組版本號碼上報
流轉裝置上報OTA模組版本號碼變更的Topic:
/${productKey}/${deviceName}/ota/version/post
。對應裝置上報OTA模組版本的Topic:
/ota/device/inform/${productKey}/${deviceName}
。OTA升級批次狀態通知
物聯網平台通知OTA升級批次狀態變化的Topic:
/${productKey}/${packageId}/${jobId}/ota/job/status
。任務事件
流轉執行個體遷移任務狀態通知的Topic:
/sys/uid/${uid}/distribution/${jobId}/lifecycle
。說明遷移產品的名稱為執行個體遷移的任務名稱。
單擊轉寄資料一欄的添加操作,設定資料轉寄目的地。資料轉寄配置的具體樣本,請參見資料流轉使用樣本目錄下的具體文檔。
說明最多可為一個規則建立10個資料轉寄操作。
資料轉寄時,因選擇的資料目的地(雲產品)出現異常情況導致轉寄失敗時:
轉寄到RocketMQ、RDS、TSDB等類型的雲產品時,若雲產品資源變化導致雲產品無法訪問,系統將停止執行轉寄,並在規則列表中顯示狀態為規則異常。您需要重新設定資料轉寄目的地。
其他異常情況,系統將間隔1秒、3秒、10秒進行3次重試(重試策略可能會調整)。3次重試均失敗後,訊息會被丟棄。如果您對訊息可靠性要求比較高,可以進行:添加錯誤操作,將重試失敗的訊息,轉寄到其他雲產品中。
單擊轉寄錯誤操作資料一欄的添加錯誤操作,設定參數,將重試失敗的錯誤訊息轉寄至指定位置。
重要最多支援添加一個錯誤操作。
正常操作和錯誤操作的轉寄目的地不能是相同的雲產品。例如,不能同時轉寄到Table Store。
錯誤訊息轉寄失敗後,不會再進行重試。
這裡的錯誤訊息僅針對因其他雲產品執行個體問題導致的規則引擎轉寄失敗錯誤。
訊息轉寄至雲產品失敗後,會進行重試。若重試失敗,將根據錯誤操作資料轉寄的設定轉寄錯誤訊息。
錯誤訊息格式:
{ "ruleName":"", "topic":"", "productKey":"", "deviceName":"", "messageId":"", "base64OriginalPayload":"", "failures":[ { "actionType":"OTS", "actionRegion":"cn-shanghai", "actionResource":"table1", "errorMessage":"" }, { "actionType":"RDS", "actionRegion":"cn-shanghai", "actionResource":"instance1/table1", "errorMessage":"" } ] }
錯誤訊息參數說明如下:
參數
說明
ruleName
規則名稱。
topic
訊息來源Topic。
productKey
產品ProductKey。
deviceName
裝置名稱。
messageId
雲端訊息ID。
base64OriginalPayload
Base64編碼後的未經處理資料。
failures
錯誤詳情。可能會有多個。
actionType
出錯操作的類型。
actionRegion
出錯操作的地區。
actionResource
出錯操作的目的資源。
errorMessage
錯誤資訊。
所有設定完成後,返回至雲產品流轉頁面,單擊規則對應的啟動。規則啟動後,資料即可按照規則進行轉寄。
您也可以單擊以下操作:
操作
說明
查看
在資料流轉規則頁面,更新規則的具體設定。例如,修改或刪除資料來源Topic、資料轉寄的目的地。
刪除
刪除對應規則。
重要運行中的規則不可刪除。
停止
停止對應規則轉寄資料。
警告刪除、停止規則,或刪除資料轉寄目的地成功後,如果使用者在其他業務中使用了流轉的裝置資料,會導致服務不可用或影響使用者的業務。請謹慎操作。
後續步驟
您在對應資料流轉規則頁面查看資料目的對應狀態,確認資料目的是否配置完成,或資料流轉至資料目是否正常等。