當需要對裝置資料進行複雜或精細化處理,且單個產品下所有裝置或指定裝置的訊息量小於1,000 QPS時,可以使用雲產品流轉功能將物聯網平台資料轉寄到Simple Message Queue (formerly MNS) (SMQ)中,服務端再從Message Service主題中訂閱訊息,實現裝置端與服務端之間高效能的訊息閉環傳輸。本文以物模型資料上報Topic為例,介紹流轉訊息資料的完整流程。
工作原理
雲產品流轉可將同一產品所有裝置或指定裝置的指定Topic訊息,即時轉寄到MNS隊列已訂閱的主題中。
在上圖中:
資料來源:支援的Topic類型訊息,請參見資料格式(非雲網關產品和裝置)、自訂Topic(MQTT雲網關)、訊息轉寄Topic(GB/T 32960雲網關)、訊息轉寄Topic(JT/T 808雲網關)。
資料目的:建立的MNS主題,用於接收裝置資料,該主題的訊息都會推送到訂閱該主題的MNS隊列中。
解析器指令碼:配置通過資料流轉函數
writeMns(destinationId, payload)
將Topic資料轉寄到MNS主題中。函數詳細說明,請參見函數列表。
使用限制
物聯網平台執行個體及所在地區支援將資料轉寄到Message Service(MNS)。支援的地區詳細資料,請參見各地區功能說明。
新版和舊版雲產品流轉功能均支援將資料流轉到Message Service(MNS)。舊版雲產品流轉使用樣本,請參見資料轉寄到Message Service(舊版)。
物聯網平台執行個體下裝置訊息轉寄的更多使用限制,請參見使用限制。
前提條件
已添加待轉寄的裝置Topic資料來源。例如:建立資料來源DataSource,添加指定裝置的物模型資料上報Topic。具體步驟,請參見添加待流轉的資料來源。
已建立Message Service主題,並在該主題下建立推送類型為HTTP或隊列的訂閱。Message Service使用方法,請參見輕量訊息佇列SMQ(原 MNS)文檔。
重要企業版執行個體中,Message Service主題所在地區必須與該企業版執行個體所在地區一致。
已在您的商務服務器中使用MNS雲端SDK監聽已訂閱MNS主題的MNS隊列,才能實現Message ServiceMNS雲端應用接收物聯網平台裝置訊息。
Simple Message Queue (formerly MNS) (SMQ)雲端SDK調用方法,請參見SDK下載和使用中對應SDK的主題使用手冊。
背景資訊
裝置端與服務端通過Message Service轉寄資料的流程,請參見資料轉寄到Message Service(MNS)。
物聯網平台提供服務端訂閱和雲產品流轉服務,均可將裝置訊息轉寄到Message ServiceMNS用戶端進行消費。對比服務端訂閱功能,雲產品流轉功能支援先指定裝置Topic和加工處理裝置資料再進行訊息轉寄。您可以對比流轉方案及應用情境,選擇您業務需要的合適方案。具體內容,請參見資料流轉方案對比。服務端訂閱者式的配置方法,請參見使用MNS服務端訂閱。
建立資料目的
登入物聯網平台控制台。
在執行個體概覽頁簽的全部環境下,找到對應的執行個體,單擊執行個體卡片。
在左側導覽列,選擇 。
在雲產品流轉頁面,單擊右上方體驗新版,進入新版功能頁面。
說明如果您已執行過此操作,再次進入雲產品流轉頁面,會直接進入新版功能頁面。
- 單擊資料目的頁簽,然後單擊建立資料目的。
在建立資料目的對話方塊,輸入資料目的名稱,例如DataPurpose,按照以下參數說明,完成配置,然後單擊確定。
參數
描述
選擇操作
選擇發送資料到Message Service(MNS)中。
地區
選擇Message Service所在地區。
主題
選擇接收資料的SMQ主題。
SMQ會將接收到的訊息發送給該主題下的HTTP和隊列類型的訂閱。目前,物聯網平台推送至SMQ主題的訊息,僅可以通過HTTP或隊列兩種方式訂閱。
您可以單擊建立主題,跳轉到Simple Message Queue (formerly MNS)控制台,建立SMQ主題以及訂閱。請參見輕量訊息佇列(原 MNS) SMQ(Simple Message Queue (formerly MNS))文檔。
角色
授權物聯網平台將資料寫入Simple Message Queue (formerly MNS)。
如您還未建立相關角色,單擊建立RAM角色,跳轉到RAM控制台,建立角色和授權策略,請參見建立RAM角色。
配置並啟動解析器
- 建立解析器,例如DataParser。具體操作,請參見步驟一:建立解析器。
- 在解析器詳情頁面,關聯資料來源。
- 在設定精靈的資料來源下,單擊關聯資料來源。
- 在彈出的對話方塊中,單擊資料來源下拉式清單,選擇已建立的資料來源DataSource,單擊確定。
- 在解析器詳情頁面,關聯資料目的。
- 單擊設定精靈的資料目的,然後單擊資料目的列表右上方的關聯資料目的。
- 在彈出的對話方塊中,單擊資料目的下拉式清單,選擇已建立的資料目的DataPurpose,單擊確定。
- 在資料目的列表,查看並儲存資料目的ID,例如為1000。後續解析指令碼中,需使用此處的資料目的ID。
- 在解析器詳情頁面,單擊解析器。
在指令碼輸入框,輸入解析指令碼。
解析指令碼類似JavaScript語言,編輯指令碼的文法參考JavaScript文法,詳細的編輯方法,請參見指令碼文法。
函數參數說明,請參見函數列表。
//通過payload函數,擷取裝置上報的訊息內容,並按照JSON格式轉換。 var data = payload("json"); //直接流轉物模型上報資料。 writeMns(1000, data);
單擊調試,根據頁面提示,選擇產品和裝置,輸入Topic和Payload資料,驗證指令碼可執行。
參數樣本如下:
運行結果如下,表示指令碼執行成功。
- 單擊發布。
- 回到雲產品流轉頁面的解析器頁簽,單擊解析器DataParser對應的啟動按鈕,啟動解析器。
後續操作
您可在物聯網平台控制台對應執行個體下雲端作業記錄。
頁面的雲端作業記錄頁簽,查看裝置到雲訊息及雲產品流轉的作業記錄。具體操作,請參見您可登入輕量訊息佇列(原 MNS)控制台,查看MNS主題推送到隊列的訊息。具體操作,請參見接收訊息。
相關文檔
裝置接入物聯網平台上報資料的操作指導,請參見裝置接入引導。
您可在執行個體詳情頁面,查看訊息轉寄TPS可用資源,確保裝置訊息能正常轉寄到Simple Message Queue (formerly MNS)進行消費。具體操作,請參見查看執行個體資訊和運行資料。如果可用資源不足,可進行升配。具體內容,請參見升配。
查看Simple Message Queue (formerly MNS)主題監控項,瞭解接收訊息的數量。具體操作,請參見查看主題監控項。
您可以使用日誌管理功能將訊息主題的訊息作業日誌推送到Log ServiceLog Service。當訊息的消費確認出現異常時,您可以通過MessageId查詢訊息軌跡等資訊,從而進行異常診斷。具體內容,請參見推送日誌到Log Service和查看日誌Log Service。