全部產品
Search
文件中心

IoT Platform:裝置分發

更新時間:Jun 30, 2024

因為業務遷移,需要在其他地區、帳號、執行個體下使用登入的裝置,可以使用裝置分發功能。裝置被分發後,物聯網平台下發新的串連地址給裝置,裝置本地固化收到資訊之後,直接連接新的地址,免去二次燒錄裝置資訊。

使用限制

支援在所有已開通物聯網平台的地區之間分發裝置。

使用情境

  • 裝置提前燒錄:在裝置出廠時,無需對裝置的不同地區和不同執行個體的串連資訊進行寫入程式碼,僅需對裝置統一燒錄全球統一存取點資訊(無地區資訊)。裝置出廠後,在物聯網平台控制台對裝置集中進行跨地區分發,實現裝置全球接入。

  • 業務遷移:由於業務的遷移,需要更改裝置的接入地區或接入執行個體,可通過裝置分發,實現裝置跨地區、跨執行個體、跨帳號的變更。

針對使用情境,支援以下分發策略:

  • 指定地區:將裝置分發到指定的地區、執行個體。如果能提前確認裝置會接入到的地區、執行個體,推薦使用該策略,分發效率更高。

  • 就近接入:裝置可能會被拿到全球不同的地區使用,配置分發時在每個地區選擇一個執行個體,裝置接入時根據裝置的IP位置動態接入其中距離最近的地區。這樣裝置無論在哪,都能就近接入到指定地區。

使用說明

專案

說明

分發範圍

  • 支援多次分發。

跨帳號分發

指定地區分發

  • 若僅分發產品,分發對象僅為產品資料,且不包含該產品下的裝置資料。

  • 若分發裝置,分發對象為分發策略中指定裝置的資料,及其所屬產品資料。

分發對象說明,請參見分發對象

就近接入分發

  • 不支援僅分發產品。

  • 分發裝置時,裝置所屬產品資料立即分發,裝置資料根據裝置接入的IP位置進行分發。

分發對象

裝置分發實現裝置跨執行個體、跨地區或跨帳號的分發。

裝置分發後,除了裝置本身,部分裝置資料、產品資料也被隨之分發,具體分發對象請參見下表。

分發對象

限制與說明

裝置

單次分發最大裝置數:10,000。

裝置資料

隨裝置分發裝置認證(ProductKey、DeviceName和DeviceSecret),用於裝置串連新執行個體時的認證。

以下裝置資料不會分發:

  • 運行時資料:即裝置狀態、物模型資料、裝置影子、檔案、日誌等裝置運行時產生的資料。

    分發後,裝置狀態將變為未啟用,裝置成功重新串連物聯網平台後,即被啟用,可正常上下線。其他已產生的運行時資料將保留在源地區、執行個體、帳號,如裝置再次分發回原位置,可以繼續使用。

  • 拓撲關係、標籤資料、裝置分組資料會清空。

產品資料

分發產品資訊、Topic類、物模型、資料解析指令碼。但接收者在被分發產品下只允許查看,不允許編輯、刪除產品資料,即不可在控制台產品詳情頁面的產品資訊Topic類列表功能定義資料解析頁簽,進行任何編輯或刪除操作,也不可在被分發產品下建立新裝置。

重要

裝置分發成功後:

  • 在源執行個體的源產品下再建立裝置時,DeviceName的值不可與已分發裝置相同。

  • 若需刪除已分發的裝置,不可在目標執行個體中執行刪除操作,請先將裝置分發回源執行個體,然後在源執行個體的源產品中進行刪除。

注意事項

裝置分發影響的功能

說明

執行個體遷移

對於使用分發功能全球統一接入的裝置,若裝置所屬產品建立了執行個體遷移任務,裝置的全球統一接入網域名稱說明如下:

  • 當執行裝置灰階或者全量遷移任務時,裝置會從公用執行個體遷移到目標企業版執行個體。裝置接入請求全球統一接入網域名稱時,會返回企業版執行個體接入網域名稱。

  • 當執行遷移任務復原時,裝置會從企業版執行個體遷移回公用執行個體。裝置接入請求全球統一接入網域名稱時,會返回公用執行個體的接入網域名稱。

執行個體詳細說明,請參見執行個體概述。執行個體遷移的詳細說明,請參見執行個體遷移

計費影響

  • 裝置所屬源執行個體和要分發的目標執行個體是否欠費,均不會影響裝置分發。

  • 裝置分發成功後,在目標執行個體下按照物聯網平台計費方式正常計費。

裝置分發任務執行

  • 裝置分發執行後,不能取消。

  • 裝置分發時,若裝置線上,該裝置會被迫下線。

訊息通訊

裝置分發成功後,若需使用AMQP服務端訂閱和雲產品流轉功能,需在裝置分發到的目標執行個體中重新進行AMQP服務端訂閱和雲產品流轉配置。

OTA升級

裝置分發成功後,若配置OTA升級,需注意:

  • 裝置跨地區、跨執行個體分發成功:必須將物聯網平台控制台切換到目標地區、目標執行個體後,再配置OTA升級。

  • 裝置跨帳號分發成功:由接收者配置OTA升級,升級包請從分發者擷取。

OTA升級的更多資訊,請參見OTA升級概述

產品資料更新

產品分發成功後,在源執行個體源產品詳情頁面的任何操作(自訂Topic、定義物模型和編輯資料解析指令碼等),均不會同步到目標執行個體的產品中。

分發流程

  1. 對於新裝置,需先在物聯網平台控制台建立產品與裝置,擷取物聯網平台頒發的裝置認證(ProductKey、DeviceName和DeviceSecret)。具體操作,請參見建立產品單個建立裝置大量建立裝置

  2. 選擇阿里雲提供的4.x版本C Link SDK完成物理裝置開發,或根據互動協議自行完成裝置開發,使其實現如下功能。

    說明

    推薦使用阿里雲的C Link SDK完成裝置開發,請參見裝置分發概述

    控制台對裝置進行分發後,裝置應按如下流程與物聯網平台建立串連:

    1. 根據裝置開發情境,選擇以下方式,發起介面Bootstrap請求。

      • 阿里雲C Link SDK接入方式

        裝置調用SDK封裝的Bootstrap介面,攜帶ProductKey和DeviceName,向裝置分發中心的全球統一網域名稱https://iot-auth-global.aliyuncs.com發送請求。

        其中,Bootstrap功能開發的具體操作,請參見概述

      • 非SDK的自行接入方式

        按照如下協議內容,向https://iot-auth-global.aliyuncs.com/auth/bootstrap發送請求。

        表 1. 請求參數

        參數

        是否必選

        說明

        productKey

        必選

        裝置所屬產品的ProductKey,從物聯網平台控制台擷取。

        具體操作,請參見單個建立裝置

        deviceName

        必選

        裝置名稱DeviceName,從物聯網平台控制台擷取。

        clientId

        可選

        用戶端ID,長度不大於64個字元。

        version

        可選

        認證服務的版本號碼。

        timestamp

        可選

        時間戳記。時間戳記不做時間視窗校正。

        resources

        可選

        希望擷取的資源描述,如MQTT。 多個資源名稱用逗號隔開。

        表 2. 返回參數

        參數

        類型

        說明

        resources

        Struct

        資源資訊,如MQTT伺服器位址等。

        請求樣本

        POST /auth/bootstrap HTTP/1.1
        Host: iot-auth-global.aliyuncs.com
        Content-Type: application/x-www-form-urlencoded
        Content-Length: 123
        productKey=123&timestamp=123&version=default&clientId=123&resources=mqtt&deviceName=test

        返回樣本

        HTTP/1.1 200 OK
        Server: Tengine
        Date: Wed, 29 Mar 2017 13:08:36 GMT
        Content-Type: application/json;charset=utf-8
        Connection: close
        {
          "code" : 200,
          "data" : {
            "resources" : {
              "mqtt" : {
                "host" : "xxx.iot-as-mqtt.cn-shanghai.aliyuncs.com",
                "port" : 1883
              }
            }
          },
          "message" : "success"
        }
    2. 裝置分發中心根據分發的目標地區和執行個體(就近接入時,將根據裝置IP位置動態判斷目標地區和執行個體),返回裝置目標執行個體存取點。

    3. 裝置可以通過裝置認證(ProductKey、DeviceName、DeviceSecret)和分發服務返回給裝置的執行個體存取點資訊,使用MQTT協議與物聯網平台建立串連。

      • 阿里雲C Link SDK接入方式

        建議使用SDK 4.x版本進行裝置接入。具體操作,請參見概述

      • 非SDK的自行接入方式

        使用Paho提供的嵌入式C語言MQTT開源工程進行裝置接入。具體操作,請參見Paho-MQTT C接入樣本

    4. (可選)控制台分發裝置後,裝置會收到如下MQTT訊息,提示裝置發生了分發,裝置將被迫下線。

      MQTT訊息,資料下行。

      請求Topic:/sys/${productKey}/${deviceName}/thing/bootstrap/notify

      Alink請求資料格式:

      {
          "id": "****",
          "version": "1.0", 
          "method": "thing.bootstrap.notify", 
          "params": {
            "cmd": 0
          }
      }

      響應Topic:/sys/${productKey}/${deviceName}/thing/bootstrap/notify_reply

      Alink響應資料格式:

      {
          "id": "****",
          "code":200,
          "data" : {}
      }
    重要

    每次串連裝置時,建議先完成上述的前3個流程,以免裝置儲存的存取點與物聯網平台不一致,而導致裝置串連失敗。

    裝置也支援本機存放區存取點資訊,當本地串連資訊丟失或串連失敗時,可發起Bootstrap請求,重新擷取存取點資訊。

  3. 完成裝置開發後,針對不同情況進行以下操作:

    • 對於不具有裝置分發能力的存量裝置,通過OTA升級,升級到上一步中開發完成的版本,使裝置獲得分發能力。具體操作,請參見OTA升級概述

      重要

      不具有裝置分發能力的存量裝置,在進行裝置分發前,必須通過OTA升級獲得分發能力,否則在控制台操作分發後,裝置將無法正常串連到物聯網平台。

    • 對於新裝置,要向裝置燒錄裝置認證。具體操作,請參見燒錄裝置認證

  4. 根據業務需求在控制台操作裝置分發,將裝置分發到指定的地區、執行個體、帳號。

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

    2. 從頂部導覽列的地區下拉式功能表選擇華東2(上海),切換到華東2(上海)地區。

      重要

      裝置分發功能僅在物聯網平台控制台的華東2(上海)地區的標準型、尊享型企業版執行個體和公用執行個體下顯示。裝置分發功能的源地區和目標地區沒有限制。

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

    4. 在左側導覽列,選擇裝置劃歸 > 裝置分發

    5. 裝置分發頁面,單擊裝置分發

    6. 按照頁面提示填寫資訊。

      頁面參數設定如下:

      參數

      描述

      分發方式

      裝置分發方式:

      • 本帳號:分發到本帳號的其他地區、執行個體。

      • 跨帳號:分發到其他帳號。

        說明

        跨帳號分發時,分發策略不支援就近接入。

      目標帳號

      分發方式選擇為跨帳號時,需設定跨帳號裝置分發的接收者。

      選擇目標帳號的填寫形式:

      • 目標帳號名稱:填寫阿里雲帳號名稱。

      • 目標帳號ID:填寫阿里雲帳號ID。

      說明

      阿里雲帳號ID,可登入物聯網平台控制台,單擊帳號頭像,跳轉至安全設定頁面查看。

      授權碼

      填寫目標帳號後,單擊擷取授權碼,系統會向目標帳號綁定的手機發送一條授權碼。授權碼5分鐘內有效,請聯絡裝置接收者擷取授權碼。

      源地區

      要分發的裝置所在的地區。

      源執行個體

      要分發的裝置所在的執行個體。

      分發策略

      裝置分發策略:

      • 指定地區:將裝置分發到指定地區。

      • 就近接入:選擇多個地區,裝置將根據裝置的IP位置動態接入其中距離最近的地區。

      目標地區

      分發策略選擇為指定地區時的參數。

      選擇裝置要分發到的地區。

      目標執行個體

      分發策略選擇為指定地區時的參數。

      設定裝置要分發到的執行個體。

      • 分發方式選擇為本帳號時,選擇目標執行個體。

      • 分發方式選擇為跨帳號時,填寫目標執行個體ID,不填寫預設為舊版公用執行個體。

        重要

        如果目標執行個體為新版公用執行個體或企業版執行個體,必須填寫執行個體ID。

        執行個體的詳細說明,請參見查看和配置執行個體終端節點資訊(Endpoint)

      地區範圍

      分發策略選擇為就近接入時的參數。

      選擇裝置可能分發到的多個目標地區。當可能分發到源地區時,源地區也需要選擇。

      若地區下有多個執行個體,可從下拉框選擇要分發到的執行個體。

      裝置選擇方式

      可通過兩種方式選擇要分發的裝置:

      • 手動勾選:從產品列表選擇裝置所在的產品,再從裝置列表選擇裝置。裝置列表翻頁時會保持裝置選中狀態。

        分發策略選擇為指定地區時,如果不選擇裝置,則僅分發產品。

      • 檔案上傳:上傳裝置分發列表檔案。一個檔案最多包含1,000條記錄,格式為CSV,可單擊下載模板擷取檔案模板。

    7. 單擊確認

    物聯網平台立即執行分發任務:

    • 分發策略為指定地區:將產品資料和裝置資料分發到指定地區。

    • 分發策略為就近接入:將產品資料分發到所有地區。而裝置資料會在裝置串連時,根據裝置的IP位置動態分發到就近地區。

    請關注批次列表中顯示的任務狀態,可能出現以下幾種狀態:

    狀態

    說明

    任務初始化中

    正在初始化任務資訊。

    分發任務進行中

    正在執行分發任務。

    如果長時間處於該狀態,請您重試。

    分發任務完成

    已完成分發任務。

    分發任務完成不代表所有裝置都分發成功。各裝置是否分發成功,可以單擊任務對應的下載分髮結果,下載檔案進行查看。部分裝置分發失敗可能是由於裝置不存在等原因。

    分發任務異常

    可能由於網路抖動導致分發任務異常,請您重試。如果重試後仍有問題,請聯絡客服或提交工單處理。

    分發任務完成後,裝置串連物聯網平台時,將按步驟2中介紹的流程與目標地區和執行個體建立串連。

相關API

API

描述

CreateDeviceDistributeJob

建立裝置分發任務,預設同時分發裝置所屬產品。

CreateProductDistributeJob

建立產品分發任務,分髮指定產品到指定的目標執行個體。

QueryDeviceDistributeDetail

擷取裝置分發任務執行完成後的結果資訊。

QueryDeviceDistributeJob

擷取裝置分發任務的詳細資料。

ListDeviceDistributeJob

擷取裝置分發工作清單。

DeleteDeviceDistributeJob

刪除裝置分發任務。

ListDistributedDevice

查詢已分發的裝置列表。

ListDistributedProduct

查詢已分發的產品列表。

QueryDeviceProvisioning

查詢指定裝置的分髮結果。