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

使用场景

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

  • 设备提前烧录:无需在设备出厂时对不同地域和不同实例的连接信息进行硬编码,设备统一烧录全球统一接入点信息(无地域信息)。设备出厂后,在物联网平台控制台对设备集中进行跨地域分发,实现设备全球接入。
  • 业务迁移:由于业务的迁移,需要更改设备的接入地域或接入实例,可以进行设备分发,实现设备跨地域、跨实例、跨账号的变更。

支持两种分发策略:

  • 指定地域:将设备分发到指定的地域、实例。如果能提前确认设备会接入到的地域、实例,推荐使用该策略,分发效率更高。
  • 就近接入:设备可能会被拿到全球不同的地域使用,配置分发时在每个地域选择一个实例,设备接入时根据设备的IP位置动态接入其中距离最近的地域。这样设备无论在哪,都能就近接入到指定地域。
说明
  • 支持在所有已开通物联网平台的地域之间分发设备。
  • 跨账号分发不支持在同地域的公共实例内部进行,即不支持在同一个实例内跨账号分发。
  • 跨账号分发不支持就近接入。
  • 支持多次分发。
  • 设备分发成功后,不能取消。
  • 如果产品下的设备进行过授权或转移操作,则该产品下的所有设备不可以进行分发操作。
  • 设备跨地域、跨实例分发后,您在配置OTA升级时需要在物联网平台控制台切换到目标地域、目标实例后操作;设备跨账号分发后,由接收者配置OTA升级,升级包请从分发者获取。OTA升级操作,请参见推送升级包到设备端

设备分发对象

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

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

分发对象 限制、说明
设备 单次分发最大设备数:1,000。
设备数据 随设备分发设备证书(ProductKey、DeviceName和DeviceSecret),用于设备连接新实例时的认证。

以下设备数据不会分发:

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

设备分发流程

  1. 对于新设备,在物联网平台控制台创建产品与设备,获取物联网平台颁发的设备证书(ProductKey、DeviceName和DeviceSecret),参见创建产品单个创建设备批量创建设备
  2. 使用阿里云提供的4.x版本C SDK完成物理设备开发,使其实现如下功能,其中Bootstrap功能开发参见设备分发服务文档。
    控制台对设备进行分发后,设备应按如下流程与云端建立连接:
    1. 控制台分发设备后,设备会收到如下MQTT消息,代表设备发生了分发。

      MQTT消息,数据下行。

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

      Alink请求数据格式:

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

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

      Alink响应数据格式:

      {
          "id": "XXX",
          "code":200,
          "data" : {}
      }
    2. 设备调用SDK封装的Bootstrap接口,携带ProductKey和DeviceName,向设备分发中心的全球统一域名https://iot-auth-global.aliyuncs.com发送请求。
    3. 设备分发中心根据分发的目标地域和实例(就近接入时将根据设备IP位置动态判断目标地域和实例),返回设备的目标接入点。
    4. 设备利用设备证书计算签名,使用云端返回的接入点,通过MQTT协议的Connect报文与目标地域和实例建立连接。
  3. 完成设备开发后,针对不同情况进行以下操作:
    • 对于不具有设备分发能力的存量设备,通过OTA升级,升级到上一步中开发完成的版本,使设备获得分发能力。OTA升级操作请参见推送升级包到设备端
      注意

      不具有设备分发能力的存量设备,在进行设备分发前,必须通过OTA升级获得分发能力,否则在控制台操作分发后,设备将无法正常连接物联网平台。

    • 对于新设备,向设备烧录设备证书,请参见烧录设备证书
  4. 根据业务需求在控制台操作设备分发,将设备分发到指定的地域、实例、账号。
    1. 登录物联网平台控制台
    2. 从顶部导航栏的地域下拉菜单选择华东2(上海),切换到华东2(上海)地域。
      说明 这里选择地域仅为了进入设备分发功能,与分发设备的源地域、目标地域无关。
    3. 实例概览页,找到对应的实例,单击实例进入实例详情页。
      实例概览
    4. 在左侧导航栏,选择设备划归 > 设备分发
    5. 设备分发页,单击设备分发
    6. 按照页面提示填写信息。

      页面参数设置如下:

      参数 描述
      分发方式 设备分发方式:
      • 本账号:分发到本账号的其他地域、实例。
      • 跨账号:分发到其他账号。
        说明 跨账号分发时,分发策略不支持就近接入。
      目标账号 分发方式选择为跨账号时,需设置跨账号设备分发的接收者。

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

      • 目标账号名称:填写阿里云账号名称。
      • 目标账号ID:填写阿里云账号ID。
      说明 阿里云账号ID,可登录物联网平台控制台,单击账号头像,跳转至安全设置页面查看。
      授权码 填写目标账号后,单击获取授权码,系统会向目标账号绑定的手机发送一条授权码。授权码5分钟内有效,请联系设备接收者获取授权码。
      源地域 要分发的设备所在的地域。
      源实例 要分发的设备所在的实例。
      分发策略 设备分发策略:
      • 指定地域:将设备分发到指定地域。
      • 就近接入:选择多个地域,设备将根据设备的IP位置动态接入其中距离最近的地域。
      目标地域 分发策略选择为指定地域时的参数。

      选择设备要分发到的地域。

      目标实例 分发策略选择为指定地域时的参数。

      设置设备要分发到的实例。

      • 分发方式选择为本账号时,选择目标实例。
      • 分发方式选择为跨账号时,填写目标实例ID,不填写默认为公共实例。
      地域范围 分发策略选择为就近接入时的参数。

      选择设备可能分发到的多个目标地域。当可能分发到源地域时,源地域也需要选择。

      若地域下有多个实例,可从下拉框选择要分发到的实例。

      设备选择方式 可通过两种方式选择要分发的设备:
      • 手动勾选:从产品列表选择设备所在的产品,再从设备列表选择设备。设备列表翻页时会保持设备选中状态。
      • 文件上传:上传设备分发列表文件。一个文件最多包含1,000条记录,格式为 .csv,可单击下载模板获取文件模板。
    7. 单击确认
    物联网平台立即执行分发任务:
    • 分发策略为指定地域:将产品数据和设备数据分发到指定地域。
    • 分发策略为就近接入:将产品数据分发到所有地域。而设备数据会在设备连接时,根据设备的IP位置动态分发到就近地域。

    请关注批次列表中显示的任务状态,可能出现以下几种状态:

    状态 说明
    任务初始化中 正在初始化任务信息。
    分发任务进行中 正在执行分发任务。

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

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

    分发任务完成不代表所有设备都分发成功。各设备是否分发成功,可以单击任务对应的下载分发结果,下载文件进行查看。部分设备分发失败可能是由于设备不存在等原因。

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

    分发任务完成后,设备连接物联网平台时,将按步骤2中介绍的流程与目标地域和实例建立连接。