作者:俏巴
概述
使用物聯網平台規則引擎的資料流轉功能,可将Topic中的資料消息轉發至其他Topic或其他阿裡雲産品進行存儲或處理。本文主要結合物模型的結構體類型屬性資料,示範payLoad的設定及規則引擎的配置。
前提準備
1、物模型定義
2、上行消息payLoad
request.topic = "/sys/" + pk + "/" + dn + "/thing/event/property/post";
request.payloadObj = <span class="hljs-string">"{\"id\":\"230788029\",\"method\":\"thing.event.property.post\",\"params\":{\"Status\":1,\"Data\": [\n"</span> +
<span class="hljs-string">" {\n"</span> +
<span class="hljs-string">" \"P\": 25,\n"</span> +
<span class="hljs-string">" \"I\": 105,\n"</span> +
<span class="hljs-string">" \"E\": 11\n"</span> +
<span class="hljs-string">" },\n"</span> +
<span class="hljs-string">" {\n"</span> +
<span class="hljs-string">" \"P\": 121,\n"</span> +
<span class="hljs-string">" \"E\": 119,\n"</span> +
<span class="hljs-string">" \"I\": 11\n"</span> +
<span class="hljs-string">" }\n"</span> +
<span class="hljs-string">" ]},\"version\":\"1.0\"}"</span>;</code></pre>
3、日志服務監控上行消息情況
4、Table Store準備
操作步驟
操作步驟
1、在規則的資料流轉詳情頁,建立規則 --> 編輯查詢規則語句:
SELECT deviceName() as deviceName, "items.Data.value[0].P" as P, "items.Data.value[0].I" as I,"items.Data.value[0].E" as E FROM "/sys/a1D8NwXCe56/device1/thing/event/property/post"
此處編寫相對比較複雜,可以參考
SQL表達式
數組使用說明部分及
資料流轉過程
系統Topic部分。
小技巧:如果使用者對具體上行消息經過物模型解析後的格式不是特别清楚,建議可以直接使用
服務端訂閱
訂閱上行消息,這樣就可以直接參考具體的消息格式類型了,如下是測試訂閱擷取的消息格式:
"deviceName":"device1","items":{"Status":{"value":1,"time":1561886161283},"Data":{"value":[{"P":25,"E":11,"I":105},{"P":121,"E":119,"I":11}],"time":1561886161283}}}
2、轉發資料
3、資料流轉詳情
4、開啟規則引擎(注意配置完成後務必記住要開啟,否則配置不生效)
5、表格存儲中檢查資料