全部產品
Search
文件中心

IoT Platform:提交訊息解析指令碼

更新時間:Jun 30, 2024

裝置通過攜帶解析標記?_sn=default的自訂Topic上報自訂格式訊息時,物聯網平台收到訊息資料後,需調用訊息解析指令碼將自訂格式資料轉換為JSON結構體,再流轉給後續業務系統。本文介紹如何在物聯網平台控制台提交訊息解析指令碼實現自訂格式資料解析。

使用與限制

  • 僅華東2(上海)、日本(東京)地區支援自訂Topic訊息解析。

  • 僅通過MQTT協議接入的裝置支援自訂Topic訊息解析。

  • 僅解析裝置上報物聯網平台雲端的訊息資料,不解析雲端下行資料。

  • 解析上報訊息的Payload,並返回解析後的Payload。

  • 解析前後,訊息所在Topic不變。例如,裝置發送到/${productKey}/${deviceName}/user/update的訊息,解析後仍在該Topic中。

解析標記

配置裝置端時,需在發布訊息的自訂Topic後添加訊息解析標記?_sn=default

警告

物聯網平台僅解析裝置通過攜帶標記的Topic發布的訊息資料。

例如,裝置發送到Topic /${productKey}/${deviceName}/user/update的訊息需要解析為JSON格式。在開發裝置端時,就需配置該Topic為:/${productKey}/${deviceName}/user/update?_sn=default

說明

在物聯網平台建立自訂Topic時按正常Topic定義,不添加該解析標記。

操作步驟

  1. 登入物聯網平台控制台

  2. 執行個體概覽頁簽的全部環境下,找到對應的執行個體,單擊執行個體卡片。

  3. 在左側導覽列,選擇裝置管理 > 產品

  4. 產品頁面,單擊產品對應的查看

  5. 產品詳情頁面,單擊訊息解析頁簽。

  6. 選擇指令碼語言,然後在編輯指令碼下的輸入框中輸入指令碼。

    支援的指令碼語言

    需定義的函數

    範例程式碼

    JavaScript(ECMAScript 5)

    transformPayload()

    JavaScript指令碼樣本

    Python 2.7

    transform_payload()

    Python指令碼樣本

    PHP 7.2

    transformPayload()

    PHP指令碼樣本

    說明

    如果產品的資料格式透傳/自訂,還需編寫物模型訊息解析指令碼。物模型訊息解析指令碼編寫指導,請參見提交物模型訊息解析指令碼

  7. 測試指令碼。

    1. 類比輸入下,選擇類比類型自訂,並選擇裝置和Topic。

    2. 輸入類比的裝置上報資料,單擊執行

  8. 確認指令碼可用後,單擊提交,將指令碼提交到物聯網平台系統。

可選:更新訊息解析指令碼

提交訊息解析指令碼成功後,您可在訊息解析頁簽,修改或刪除指令碼代碼後,參考本文操作步驟重新測試和提交。提交成功後,等待一分鐘,就會對該產品下已有裝置和新增裝置的訊息解析服務生效。

警告
  • 修改指令碼代碼重新提交後,請同步修改訊息解析服務相關商務邏輯,否則可能導致相關業務中斷。

  • 刪除指令碼代碼重新提交後,該產品下裝置訊息解析服務不可用、使用者業務中斷。

請謹慎操作。

相關文檔