物联网平台通过设备分发实现设备跨地域、跨实例或跨账号的分发。分发后,云端下发新的连接地址给设备,设备本地固化收到的信息之后,直接连接新的地址,免去二次烧录设备信息。

使用场景

设备分发功能适用于以下场景:

  • 设备提前烧录:无需在设备出厂时对不同地域和不同实例的连接信息进行硬编码,设备统一烧录全球统一接入点信息(无地域信息)。设备出厂后,在物联网平台控制台对设备集中进行跨地域分发,实现设备全球上线。
  • 业务迁移:由于业务的迁移,需要更改设备的接入地域、接入实例或者更换设备的所有者,可以进行设备分发,实现设备跨地域、跨实例或跨账号的变更。
说明
  • 支持在所有已开通物联网平台的地域之间分发设备。
  • 支持多次分发。
  • 设备分发成功后,不能取消。
  • 如果产品下的设备进行过授权或转移操作,则该产品下的所有设备不可以进行分发操作。
  • 设备跨地域、跨实例分发后,您在配置固件升级时需要在物联网平台控制台切换到目标地域、目标实例后操作;设备跨账号分发后,由接收者配置固件升级,固件请从分发者获取。固件升级操作,请参见推送固件到设备端

设备分发对象

设备分发实现设备跨实例、跨地域或跨账号的分发。

设备分发后,除了设备本身,部分设备数据、产品数据也被随之分发,具体分发对象请参见下表。

分发对象 限制、说明
设备 单次分发最大设备数:1,000。
设备数据 随设备分发设备证书(ProductKey、DeviceName和DeviceSecret)。

以下设备数据不会分发:

  • 运行时数据:即设备状态、物模型数据、设备影子、文件、日志等设备上报的数据。设备状态将变为未激活,设备成功重新连接物联网平台后,即被激活,可正常上下线。其他已产生的运行时数据将保留在源地域、实例、账号。
  • 拓扑关系、标签数据、设备分组数据会清空。
产品数据 分发产品信息、Topic类、物模型、数据解析脚本。但接收者在被分发产品下只允许查看,不允许编辑、删除产品数据,即不可在控制台产品详情页的产品信息Topic类列表功能定义数据解析页签进行任何编辑或删除操作,也不可在被分发产品下创建新设备。

设备分发流程

  1. 在物联网平台控制台创建产品与设备,获取物联网平台颁发的设备证书(ProductKey、DeviceName和DeviceSecret),参见创建产品单个创建设备批量创建设备
  2. 使用阿里云提供的4.x版本C SDK完成物理设备开发,使其实现如下功能,其中Bootstrap功能开发参见设备引导服务文档。
    当控制台对设备进行分发时,设备应按如下流程与云端建立连接:调用SDK封装的Bootstrap接口,携带ProductKey和DeviceName,向云端全球统一域名https://iot-auth-global.aliyuncs.com发送请求,云端返回设备的目标接入点,然后设备利用设备证书计算签名,使用云端返回的接入点,通过MQTT协议的Connect报文与云端建立连接。

    设备与云端建立连接后,如果控制台对设备进行重新分发,则设备端应按照如下规则处理:

    • 如果设备不在线,控制台重新分发设备后,设备端不需要做任何处理。
    • 如果设备在线,控制台重新分发设备后,设备会收到如下MQTT消息,代表设备发生了重新分发,则设备应重新调用Bootstrap接口发送请求,通过MQTT协议与云端建立连接。

      MQTT消息,数据下行。

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

      响应Topic:/sys/${productKey}/${deviceName}/thing/bootstrap/notify_reply

      Alink请求数据格式:

      {
          "id": 12345,                         //消息ID号。
          "version": "1.0",                    //Alink协议版本号,目前唯一取值为1.0。
          "method": "thing.bootstrap.notify",  //请求方法。
          "params": {
            "cmd": 0          //0:置换,表示期望设备重新请求bootstrap服务获取接入点。
          }
      }

      Alink响应数据格式:

      {
          "id": "123",   //消息ID号,取值范围0~4294967295,且每个消息ID在当前设备中具有唯一性。
          "code":200,    //返回结果,200代表成功。
          "data" : {}
      }
  3. 向设备烧录设备证书和全球统一域名https://iot-auth-global.aliyuncs.com。向设备烧录设备证书,请参见烧录设备证书
  4. 用户根据业务需求在控制台操作设备分发,将设备分发到指定的地域、实例、账号。
    1. 登录物联网平台控制台
    2. 从顶部导航栏的左侧第二个下拉菜单选择华东2(上海),切换到华东2(上海)地域。
      说明 这里选择地域仅为了进入设备分发功能,与分发设备的源地域、目标地域无关。
    3. 在左侧导航栏,选择设备划归 > 设备分发
    4. 设备分发页,单击设备分发
    5. 按照页面提示填写信息。

      页面参数设置如下:

      参数 描述
      分发方式 设备分发方式:
      • 本账号:分发到本账号的其他地域、实例。
      • 跨账号:分发到其他账号。
      目标账号 分发方式选择为跨账号时,需设置跨账号设备分发的接收者。

      选择目标账号的填写形式:

      • 目标账号名称:填写阿里云账号名称。
      • 目标账号ID:填写阿里云账号ID。
      说明
      • 阿里云账号ID,可登录物联网平台控制台,单击账号头像,跳转至安全设置页面查看。
      • 如果目标账号为国际站账号,则仅支持按阿里云账号ID,不支持按阿里云账号名称进行分发。
      授权码 填写目标账号后,单击获取授权码,系统会向目标账号绑定的手机发送一条授权码。授权码5分钟内有效,请联系设备接收者获取授权码。
      源地域 要分发的设备所在的地域。
      源实例 要分发的设备所在的实例。
      目标地域 设备要分发到的地域。
      目标实例 设备要分发到的实例。
      • 分发方式选择为本账号时,选择目标实例。
      • 分发方式选择为跨账号时,填写目标实例ID,不填写默认为公共实例。
      设备选择方式 可通过二种方式选择要分发的设备:
      • 手动勾选:从产品列表选择设备所在的产品,再从设备列表选择设备。设备列表翻页时会保持设备选中状态。
      • 文件上传:上传设备分发列表文件。一个文件最多包含 1000 条记录,格式为 .csv,可单击下载模板获取文件模板。
    6. 单击确定
    控制台操作完成后,设备将按步骤2中介绍的流程与云端建立连接,上报数据。
    请关注批次列表中显示的任务状态,可能出现以下几种状态:
    状态 说明
    任务初始化中 正在初始化任务信息。
    分发任务进行中 正在执行分发任务。

    如果长时间处于该状态,请您重试。

    分发任务完成 已完成分发任务。

    各设备的分发结果,可以单击任务对应的下载分发结果,下载文件进行查看,比如某个设备因为设备不存在而分发失败等。

    分发任务异常 可能由于网络抖动导致分发任务异常,请您重试。如果重试后仍有问题,请联系客服或提交工单处理。