本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。
通過規則引擎的云產品流轉功能,物聯網平臺可將指定Topic的數據流轉至其他的Topic和阿里云產品中。本文將為您介紹設置數據流轉規則的完整操作步驟,依次是創建規則、編寫處理數據的SQL、設置數據流轉目的地、設置流轉失敗的數據轉發目的地。
操作步驟
- 登錄物聯網平臺控制臺。
在實例概覽頁簽的全部環境下,找到對應的實例,單擊實例卡片。
- 在左側導航欄,選擇 。
在云產品流轉頁面,單擊創建規則。
重要若當前頁面顯示新版功能,先單擊右上角返回舊版,進入舊版功能頁面,再單擊創建規則。
填寫參數后,單擊確認。
參數
描述
規則名稱
輸入規則名稱。支持中文、英文字母、日文、數字、下劃線(_)和短劃線(-),長度為1~30個字符,一個中文或日文占2個字符。
數據格式
選擇該規則處理數據的格式。可選:JSON和二進制。
說明因數據流轉基于Topic處理數據,此處的數據格式需與被處理Topic中的數據格式保持一致。
若選擇為二進制,該規則不能處理基礎通信Topic、物模型通信Topic的消息,且不能將數據轉發至實例內的時序數據存儲、時序數據庫、表格存儲和云數據庫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}/job/${jobId}/lifecycle
。流轉實例遷移任務狀態通知的Topic:
/sys/uid/${uid}/distribution/${jobId}/lifecycle
。說明遷移產品的名稱為實例遷移的任務名稱。
孿生節點屬性變更
流轉孿生節點屬性數據的Topic:
/sys/uid/${uid}/digitaltwin/${dtInstanceId}/${nodeId}/property/update
。單擊轉發數據一欄的添加操作,設置數據轉發目的地。數據轉發配置的具體示例,請參見數據流轉使用示例目錄下的具體文檔。
說明最多可為一個規則創建10個數據轉發操作。
數據轉發時,因選擇的數據目的地(云產品)出現異常情況導致轉發失敗時:
轉發到RocketMQ、RDS、TSDB等類型的云產品時,若云產品資源變化導致云產品無法訪問,系統將停止執行轉發,并在規則列表中顯示狀態為規則異常。您需要重新設置數據轉發目的地。
其他異常情況,系統將間隔1秒、3秒、10秒進行3次重試(重試策略可能會調整)。3次重試均失敗后,消息會被丟棄。如果您對消息可靠性要求比較高,可以進行:添加錯誤操作,將重試失敗的消息,轉發到其他云產品中。
單擊轉發錯誤操作數據一欄的添加錯誤操作,設置參數,將重試失敗的錯誤消息轉發至指定位置。
重要最多支持添加一個錯誤操作。
正常操作和錯誤操作的轉發目的地不能是相同的云產品。例如,不能同時轉發到表格存儲。
錯誤消息轉發失敗后,不會再進行重試。
這里的錯誤消息僅針對因其他云產品實例問題導致的規則引擎轉發失敗錯誤。
消息轉發至云產品失敗后,會進行重試。若重試失敗,將根據錯誤操作數據轉發的設置轉發錯誤消息。
錯誤消息格式:
{ "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、數據轉發的目的地。
刪除
刪除對應規則。
重要運行中的規則不可刪除。
停止
停止對應規則轉發數據。
警告刪除、停止規則,或刪除數據轉發目的地成功后,如果用戶在其他業務中使用了流轉的設備數據,會導致服務不可用或影響用戶的業務。請謹慎操作。
后續步驟
您在對應數據流轉規則頁面查看數據目的對應狀態,確認數據目的是否配置完成,或數據流轉至數據目是否正常等。