因为业务迁移,需要在其他地域、账号、实例下使用已注册的设备,可以使用设备分发功能。设备被分发后,物联网平台下发新的连接地址给设备,设备本地固化收到信息之后,直接连接新的地址,免去二次烧录设备信息。
使用限制
支持在所有已开通物联网平台的地域之间分发设备。
使用场景
设备提前烧录:在设备出厂时,无需对设备的不同地域和不同实例的连接信息进行硬编码,仅需对设备统一烧录全球统一接入点信息(无地域信息)。设备出厂后,在物联网平台控制台对设备集中进行跨地域分发,实现设备全球接入。
业务迁移:由于业务的迁移,需要更改设备的接入地域或接入实例,可通过设备分发,实现设备跨地域、跨实例、跨账号的变更。
针对使用场景,支持以下分发策略:
指定地域:将设备分发到指定的地域、实例。如果能提前确认设备会接入到的地域、实例,推荐使用该策略,分发效率更高。
就近接入:设备可能会被拿到全球不同的地域使用,配置分发时在每个地域选择一个实例,设备接入时根据设备的IP位置动态接入其中距离最近的地域。这样设备无论在哪,都能就近接入到指定地域。
使用说明
项目 | 说明 |
分发范围 |
|
跨账号分发 |
|
指定地域分发 |
分发对象说明,请参见分发对象。 |
就近接入分发 |
|
分发对象
设备分发实现设备跨实例、跨地域或跨账号的分发。
设备分发后,除了设备本身,部分设备数据、产品数据也被随之分发,具体分发对象请参见下表。
分发对象 | 限制与说明 |
设备 | 单次分发最大设备数:10,000。 |
设备数据 | 随设备分发设备证书(ProductKey、DeviceName和DeviceSecret),用于设备连接新实例时的认证。 以下设备数据不会分发:
|
产品数据 | 分发产品信息、Topic类、物模型、数据解析脚本。但接收者在被分发产品下只允许查看,不允许编辑、删除产品数据,即不可在控制台产品详情页面的产品信息、Topic类列表、功能定义、数据解析页签,进行任何编辑或删除操作,也不可在被分发产品下创建新设备。 重要 设备分发成功后:
|
注意事项
设备分发影响的功能 | 说明 |
实例迁移 | 对于使用分发功能全球统一接入的设备,若设备所属产品创建了实例迁移任务,设备的全球统一接入域名说明如下:
|
计费影响 |
|
设备分发任务执行 |
|
消息通信 | 设备分发成功后,若需使用AMQP服务端订阅和云产品流转功能,需在设备分发到的目标实例中重新进行AMQP服务端订阅和云产品流转配置。 |
OTA升级 | 设备分发成功后,若配置OTA升级,需注意:
OTA升级的更多信息,请参见OTA升级概述。 |
产品数据更新 | 产品分发成功后,在源实例源产品详情页面的任何操作(自定义Topic、定义物模型和编辑数据解析脚本等),均不会同步到目标实例的产品中。 |
分发流程
对于新设备,需先在物联网平台控制台创建产品与设备,获取物联网平台颁发的设备证书(ProductKey、DeviceName和DeviceSecret)。具体操作,请参见创建产品、单个创建设备或批量创建设备。
选择阿里云提供的4.x版本C Link SDK完成物理设备开发,或根据交互协议自行完成设备开发,使其实现如下功能。
说明推荐使用阿里云的C Link SDK完成设备开发,请参见设备分发概述。
控制台对设备进行分发后,设备应按如下流程与物联网平台建立连接:
根据设备开发场景,选择以下方式,发起接口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×tamp=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" }
设备分发中心根据分发的目标地域和实例(就近接入时,将根据设备IP位置动态判断目标地域和实例),返回设备目标实例接入点。
设备可以通过设备证书(ProductKey、DeviceName、DeviceSecret)和分发服务返回给设备的实例接入点信息,使用MQTT协议与物联网平台建立连接。
阿里云C Link SDK接入方式
建议使用SDK 4.x版本进行设备接入。具体操作,请参见概述。
非SDK的自行接入方式
使用Paho提供的嵌入式C语言MQTT开源工程进行设备接入。具体操作,请参见Paho-MQTT C接入示例。
(可选)控制台分发设备后,设备会收到如下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请求,重新获取接入点信息。
完成设备开发后,针对不同情况进行以下操作:
根据业务需求在控制台操作设备分发,将设备分发到指定的地域、实例、账号。
登录物联网平台控制台。
从顶部导航栏的地域下拉菜单选择华东2(上海),切换到华东2(上海)地域。
重要设备分发功能仅在物联网平台控制台的华东2(上海)地域的标准型、尊享型企业版实例和公共实例下显示。设备分发功能的源地域和目标地域没有限制。
在实例概览页签的全部环境下,找到对应的实例,单击实例卡片。
在左侧导航栏,选择 。
在设备分发页面,单击设备分发。
按照页面提示填写信息。
页面参数设置如下:
参数
描述
分发方式
设备分发方式:
本账号:分发到本账号的其他地域、实例。
跨账号:分发到其他账号。
说明跨账号分发时,分发策略不支持就近接入。
目标账号
分发方式选择为跨账号时,需设置跨账号设备分发的接收者。
选择目标账号的填写形式:
目标账号名称:填写阿里云账号名称。
目标账号ID:填写阿里云账号ID。
说明阿里云账号ID,可登录物联网平台控制台,单击账号头像,跳转至安全设置页面查看。
授权码
填写目标账号后,单击获取授权码,系统会向目标账号绑定的手机发送一条授权码。授权码5分钟内有效,请联系设备接收者获取授权码。
源地域
要分发的设备所在的地域。
源实例
要分发的设备所在的实例。
分发策略
设备分发策略:
指定地域:将设备分发到指定地域。
就近接入:选择多个地域,设备将根据设备的IP位置动态接入其中距离最近的地域。
目标地域
分发策略选择为指定地域时的参数。
选择设备要分发到的地域。
目标实例
分发策略选择为指定地域时的参数。
设置设备要分发到的实例。
分发方式选择为本账号时,选择目标实例。
分发方式选择为跨账号时,填写目标实例ID,不填写默认为旧版公共实例。
重要如果目标实例为新版公共实例或企业版实例,必须填写实例ID。
实例的详细说明,请参见查看和配置实例终端节点信息(Endpoint)。
地域范围
分发策略选择为就近接入时的参数。
选择设备可能分发到的多个目标地域。当可能分发到源地域时,源地域也需要选择。
若地域下有多个实例,可从下拉框选择要分发到的实例。
设备选择方式
可通过两种方式选择要分发的设备:
手动勾选:从产品列表选择设备所在的产品,再从设备列表选择设备。设备列表翻页时会保持设备选中状态。
分发策略选择为指定地域时,如果不选择设备,则仅分发产品。
文件上传:上传设备分发列表文件。一个文件最多包含1,000条记录,格式为CSV,可单击下载模板获取文件模板。
单击确认。
物联网平台立即执行分发任务:
分发策略为指定地域:将产品数据和设备数据分发到指定地域。
分发策略为就近接入:将产品数据分发到所有地域。而设备数据会在设备连接时,根据设备的IP位置动态分发到就近地域。
请关注批次列表中显示的任务状态,可能出现以下几种状态:
状态
说明
任务初始化中
正在初始化任务信息。
分发任务进行中
正在执行分发任务。
如果长时间处于该状态,请您重试。
分发任务完成
已完成分发任务。
分发任务完成不代表所有设备都分发成功。各设备是否分发成功,可以单击任务对应的下载分发结果,下载文件进行查看。部分设备分发失败可能是由于设备不存在等原因。
分发任务异常
可能由于网络抖动导致分发任务异常,请您重试。如果重试后仍有问题,请联系客服或提交工单处理。
分发任务完成后,设备连接物联网平台时,将按步骤2中介绍的流程与目标地域和实例建立连接。
相关API
API | 描述 |
创建设备分发任务,默认同时分发设备所属产品。 | |
创建产品分发任务,分发指定产品到指定的目标实例。 | |
获取设备分发任务执行完成后的结果信息。 | |
获取设备分发任务的详细信息。 | |
获取设备分发任务列表。 | |
删除设备分发任务。 | |
查询已分发的设备列表。 | |
查询已分发的产品列表。 | |
查询指定设备的分发结果。 |