云服务器内容精选

  • 场景说明 随着厂商IoT设备的不断增加,或者厂商设备本来就面向多个销售中心(不同的销售中心有着自己的IoT接入实例),面对这样的场景,厂商在设备出厂的时候不知道设备最终需要连接到哪个IoT接入实例,设备出厂后不希望再对设备进行二次烧录。为此,华为IoT解决方案推出设备发放服务,设备出厂统一烧录设备发放的地址,通过在设备发放服务预置不同的发放策略,设备上电后自动发放到对应的IoT接入实例,并把对应的IoT接入实例地址下发给设备,设备就可以和目的接入实例实现通信。
  • 注册设备 本次以注册单个MQTT密钥设备为示例,登录设备发放控制台,进入到“设备”页面,单击“注册”,选择对应接入点的产品进行设备注册,设备名称为“Model1_001”,填写设备的密钥,发放策略选择“静态策略”,创建设备。 实际使用中,用户可以使用批量注册功能注册大量设备。下载批量注册模板,按照模板说明正确填写后上传批量注册文件以批量注册设备。建议每个设备名称的以策略的关键字开头(比如策略关键字为Model1,设备名称为Model1_XXX001)。 图3 设备列表 图4 注册设备产品列表 图5 创建密钥模式静态策略设备
  • 创建策略 有两种使用场景:设备发放控制台 用户预先开通了多个实例,通过设备的不同销售数据,根据对应的策略,设备上电自动发放到对应的实例。 用户预先只开通一个实例,预先创建对应的策略把设备发放到当前实例。当对应实例达到上限,动态开通新的接入实例,用户删除当前策略,添加新的策略,把新上电的设备发放到新开通的实例。 本示例讲述的是第二种使用场景。 登录设备发放控制台,进入到策略页面的静态策略页面,单击添加实例,根据关键字发放到指定的IoTDA实例。 图1 创建静态策略 图2 上传CA证书
  • 业务流程 创建策略。其中以静态策略为例。 注册设备。注册MQTT协议的设备,体验发放业务。可以注册单个,也可以批量注册设备。 设备请求引导。 设备接收信息,解析出IoT接入实例地址,与IoT接入实例1进行通信。 动态扩容设备接入实例,创建对应实例的资源空间,在对应资源空间下上传产品。 注册设备。选择对应实例的产品创建设备。 新增策略。添加新实例的静态策略,以不同的关键字命名静态策略。 设备请求引导。 设备接收信息,解析出IoT接入实例地址,与IoT接入实例2进行通信。 应用主动设备发放控制台与设备侧通信。
  • 设备引导请求 终端节点 区域名称 区域 终端节点(Endpoint) 端口 协议 华北-北京四 cn-north-4 iot-bs.cn-north-4.myhuaweicloud.com 8883 MQTTS 下载并修改华为SDK示例代码进行设备引导(这里以java sdk代码为示例)。 用IDEA/Eclipse打开SDK代码工程,修改iot-device-demo目录下的DEMO示例“BootstrapSample”中的参数,其中deviceId和secret替换为注册设备中生成的设备ID和密钥即可,bootstrapUri为上述终端节点。 运行DEMO程序,看到如下日志,代表设备发放成功,并且已经收到设备发放下发的设备接入地址。如果程序运行没报错,在对应的设备接入平台可以看到设备,并已在线。 收到设备发放下发的设备接入地址后,需要关闭设备侧的设备发放的连接,用的新的URL地址与设备接入通信,进行相关业务。
  • 使用限制 设备发放服务具有以下使用限制。 对象 类别/描述 限制 设备 集成Agent Lite的设备(MQTT) 不支持 原生MQTT协议设备 支持,设备需要开发设备引导接口,具备设备发放能力。 集成LiteOS的设备(LwM2M) 支持 证书 数字证书保证系统内各服务及系统与外部通信的安全性,防止通信数据在传输过程被篡改造成安全风险。 100 策略 自定义策略最多可添加的实例数 10 静态策略最多可添加的实例数 20 证书策略最多可添加的实例数 20 父主题: 设备发放
  • 创建授权关系 被授权方进入“授权”界面,单击在“被授权列表”下的“发起授权请求”。 被授权方填写授权方的账号名称或者账号ID(即IAM的Domain Name或Domain ID),单击“获取短信验证码”。 系统将向授权方绑定的手机号发送短信验证码,被授权方从授权方获取到短信验证码,填入验证码输入框,填写“描述”信息。 被授权方单击“确定”,授权请求完成,授权关系建立。 被授权方将在“被授权列表”中查看到与其他租户建立的授权关系,授权方将在“授权列表”中查看到与其他租户建立的授权关系。被授权方可删除某一条授权关系,授权方可禁用或删除某一条授权关系。
  • 设备引导 下载并修改华为SDK示例代码进行设备引导(这里以java sdk代码为示例)。 用IDEA/Eclipse打开SDK代码工程,修改DEMO示例BootstrapSample中的参数,其中deviceId和secret替换为步骤3中生成的设备ID和密钥即可,bootstrapUri为获取设备发放终端节点对应的终端节点。 运行DEMO程序,看到如下日志,代表设备发放成功,并且已经收到设备发放下发的设备接入地址。如果程序运行没报错,在对应的设备接入平台可以看到设备,并已在线。
  • 场景示例矩阵 表1 注册/注册组 认证类型 策略类型 示例 注册 证书认证 证书策略 MQTT X.509证书认证设备使用证书策略发放示例 注册 密钥认证 静态策略 MQTT 密钥设备使用静态策略发放示例 注册组 证书认证 自定义策略 MQTT 注册组自定义策略发放示例 注册组 云证书认证 证书策略 MQTT 华为云证书注册组发放示例 注册组 证书认证 自定义策略 MQTT 注册组自定义策略发放示例 注册 密钥认证 静态策略(跨账号) MQTT 密钥设备跨账号使用静态策略发放示例
  • Topic说明 设备发放平台作为消息接收方时,已默认订阅了相关Topic,设备只要向对应Topic发送消息,设备发放平台就可以接收。 设备作为消息接收方时,需要先订阅相关Topic,这样设备发放平台向对应Topic发送消息时,设备才能接收到。设备需要根据具体实现的业务来决定订阅哪些Topic。 Topic 消息发送方 (Publisher) 消息接收方 (Subscriber) 说明 $oc/devices/{device_id}/sys/bootstrap/up 设备 设备发放平台 设备向发放服务请求对应设备接入实例的引导信息。 $oc/devices/{device_id}/sys/bootstrap/down 设备发放平台 设备 设备接收发放服务下发的引导信息。
  • MQTT概述 MQTT标准规范参见《mqtt-v3.1.1-os.pdf》。 MQTT的语法和接口细节,请以此标准为准。设备发放目前仅支持MQTTS/HTTPS这种安全接入的设备进行发放,暂不支持MQTT/HTTP这种非安全接入的设备进行发放。 MQTT消息分为固定报头(Fixed header)、可变报头(Variable header)和有效载荷(Payload)部分。 固定报头(Fixed header)和可变报头(Variable header)格式的填写直接MQTT标准规范。有效载荷(Payload)部分在PUB消息中可以由应用定义,即设备和设备发放平台之间自己定义。 下面主要介绍CONNECT、SUB和PUB消息格式的填写。 CONNECT - Client requests a connection to a server 有效载荷(Payload)中的主要参数填写,具体参见MQTT CONNECT连接鉴权。 SUBSCRIBE - Subscribe to named topics 有效载荷(Payload)中的主要参数填写:Topic name,填写为设备想要订阅的主题消息,目前填写为设备自己的topic,具体参见Topic说明。 PUBLISH - Publish message 可变报头(Variable header):Topic name,设备发往设备发放平台时,为平台的Topic name,设备接收消息时,为设备的Topic name,具体参见Topic说明。 有效载荷(Payload)中的主要参数填写:为完整的数据上报和命令下发的消息内容,目前是一个JSON对象。
  • 连接鉴权 MQTT.fx 是目前主流的MQTT桌面客户端,它支持 Windows, Mac, Linux,可以快速验证是否可以与设备发放服务进行连接并发布或订阅消息。 本文主要介绍 MQTT.fx 如何与华为设备发放交互,其中设备发放服务MQTT的南向接入地址请参考获取终端节点。 下载 MQTT.fx(默认是64位操作系统,如果是32位操作系统,单击此处下载 MQTT.fx ),安装MQTT.fx工具。 打开 MQTT.fx 客户端程序,单击“设置”。 填写 Connection Profile 相关信息和 General 信息。其中General 信息可以用工具默认的参数配置。 填写 User Credentials 信息。 其中Username 和Password 参数参考MQTT CONNECT连接鉴权参数说明。 选择开启 SSL/TLS,勾选CA certificate file,CA Certificate File指定为物联网平台根证书(请先下载物联网平台的根证书,解压后,选择其中c或java目录下PEM后缀的文件)的本地路径。 完成以上步骤后,单击“Apply”和“OK”保存,并在配置文件框中选择刚才创建的文件名,单击“Connect”,当右上角圆形图标为绿色时,说明连接设备发放服务成功,可进行订阅(Subscribe)和消息推送(Publish)操作。
  • 使用限制 设备发放服务具有以下使用限制。 对象 类别/描述 限制 设备 集成Agent Lite的设备(MQTT) 不支持 原生MQTT协议设备 支持,设备需要开发设备引导接口,具备设备发放能力。 集成LiteOS的设备(LwM2M) 支持 证书 数字证书保证系统内各服务及系统与外部通信的安全性,防止通信数据在传输过程被篡改造成安全风险。 100 策略 自定义策略最多可添加的实例数 10 静态策略最多可添加的实例数 20 证书策略最多可添加的实例数 20
  • 和其他服务的关系 设备发放服务与其他服务的关系如表1所示。 表1 与其他服务的关系 交互功能 相关服务 位置 创建设备时,需要使用设备接入服务创建的产品 设备接入服务(IoT Device Access,IoTDA) 创建产品 创建自定义策略时需要使用函数 函数工作流服务(FunctionGraph) 创建并初始化函数 创建证书策略使用云证书时,需要去云证书管理服务创建云证书 云证书管理服务(Cloud Certificate Manager Service,CCM) 创建私有CA
  • 动态完成不同批次设备初始化配置 当不同型号的设备在首次连接设备接入时需要具备不同的初始化状态,可以通过设备发放完成不同批次设备初始化配置。 具体使用示例参考: MQTT 密钥设备使用静态策略发放示例 MQTT 密钥设备使用静态策略发放是设备预注册的场景,需要为每个设备预置初始化的值。 MQTT 注册组静态策略发放示例 MQTT 注册组静态策略发放是设备注册组的场景,只需要为注册组设置一个初始化的值,那么对应这个组的设备都可以收到下发的初始化配置。一般来说:设备初始化配置会配合注册组使用。