11.1 概述
数据类
说明
CoAP协议接入的设备考虑到功耗和带宽的影响,当前只支持设备上报原始的二进制码流,由平 台根据编解码插件,将码流转换为产品模型中定义的JSON格式数据后,再进行后续处理。
查看历史数据
如果已开通物联网数据分析服务,则可以针对此设备最近一段时间上报的历史数据进 行时序洞察分析。
说明
查看历史数据是自动跳转到IoT数据分析服务,支持属性上报的数据和消息上报的数据。
若要正常使用数据分析服务查看针对属性和消息的分析,需要提前完成:
● 已完成产品模型开发。
● 属性上报时,上报的属性跟产品模型中定义的一致。
● 对于消息上报的数据以及无产品模型的属性上报的数据,IoT数据分析服务默认以数据的原始 格式保存,请在IoT数据分析服务中定义需要进行数据分析的字段格式。
步骤1 访问设备接入服务,单击“立即使用”进入设备接入控制台。
步骤2 在设备列表中,单击具体的设备进入到设备的详情页面,单击“查看历史数据”跳转 到数据分析服务进行时序洞察分析。
另外,界面上还支持查看当前资源空间下所有设备的历史数据,并支持导出历史数
● HTTP/HTTPS订阅推送:应用服务器通过调用物联网平台的创建规则触发条件、
创建规则动作、修改规则触发条件接口配置并激活规则,在指定应用服务器的
11.3.2 使用 HTTP/HTTPS 订阅推送
概述
订阅:是指应用服务器通过调用物联网平台的创建规则触发条件、创建规则动作、修
改规则触发条件接口配置并激活规则,或者在控制台创建订阅任务,向平台获取发生
变更的设备业务信息(如设备生命周期管理、设备数据上报、设备消息状态、设备状 态等)和管理信息(软固件升级状态和升级结果)。订阅时必须指定应用服务器的 URL,也称为回调地址。(什么是回调地址?)。推送:是指订阅成功后,物联网平台根据应用服务器订阅的数据类型,将对应的变更 信息(推送的通知内容可参考流转数据)推送给指定的URL地址。如果应用服务器没 有订阅该类型的数据通知,即使数据发生了变更也不会进行推送。物联网平台进行数 据推送时,数据格式为JSON格式,推送协议可以采用HTTP或HTTPS协议,其中 HTTPS协议为加密传输协议,需要进行安全认证,更加安全,推荐使用。
订阅推送的示意图如下图所示:
物联网平台采用HTTPS协议向应用服务器进行消息推送时,物联网平台需要校验应用 服务器的真实性,需要在物联网平台上加载CA证书,该证书由应用服务器侧提供(调 测时可自行制作调测证书,商用时建议更换为商用证书,否则会带来安全风险)。
推送机制:物联网平台向应用服务器推送消息后,如果应用服务器接收消息成功,会 向物联网平台返回200 OK响应码。如果应用服务器无响应(或响应时间超过15秒),或 者应用服务器向物联网平台返回非200响应码(如500,501,502,503,504等),表示消息 推送失败,推送失败连续累计达到10次,物联网平台会将该订阅URL的主机地址加入 黑名单保持5分钟,拉黑期间物联网平台对该主机地址暂停推送,5分钟后对该地址解 除黑名单,重新进行推送。如果推送地址仍然无效,达到拉黑条件会再次触发黑名单机 制;如果恢复,则会重新恢复正常推送。
如何进行数据订阅
应用服务器接入到“设备接入服务”后,在控制台创建订阅任务,也可以通过调用API 接口进行数据订阅。
● 在控制台配置HTTP/HTTPS订阅请参考配置HTTP/HTTPS服务端订阅、加载推送
证书。
● 通过API接口进行数据订阅请参考如何调用API和创建规则触发条件、创建规则动
作、修改规则触发条件。
● 如果应用服务器新增了订阅类型(新增URL),需要在物联网平台上加载与该URL 对应的CA证书。即使新增URL使用的CA证书与原来推送的URL使用相同的证书,
CA证书 需要提前申请和购买CA证书文件,CA证书由应用服务器侧提供。
说明
----结束
制作调测证书
调测证书,又叫做自签名证书,用于客户端通过HTTPS访问服务端时进行安全认证。
在物联网平台的使用中,可用于物联网平台向应用服务器采用HTTPS协议推送数据 时,物联网平台认证应用服务器的合法性。本文以Windows环境为例,介绍通过 Openssl工具制作调测证书的方法,生成的证书为PEM编码格式的证书,后缀为.cer。
常见的证书存储格式如下表所示。
存储格式 说明
DER 二进制编码,后缀名.der/.cer/.crt PEM BASE 64编码,后缀名.pem/.cer/.crt JKS Java的证书存储格式,后缀名.jks
说明
自签名证书仅用于调测阶段,在商用时,您需要向知名CA机构申请证书,否则可能会带来安全 风险。
步骤1 在浏览器中访问这里,下载并安装OpenSSL工具。
步骤2 以管理员身份运行cmd命令行窗口。
步骤3 执行cd c:\openssl\bin(请替换为openssl实际安装路径),进入openssl命令视图。
步骤4 执行如下命令生成CA根证书私钥文件ca_private.key。
openssl genrsa -passout pass:123456 -aes256 -out ca_private.key 2048
● aes256:代表加密算法。
● passout pass:代表私钥密码。
● 2048:代表密钥长度。
步骤5 执行如下命令使用CA根证书私钥文件生成csr文件ca.csr,用于6生成CA根证书。
openssl req -passin pass:123456 -new -key ca_private.key -out ca.csr -subj "/C=CN/ST=GD/L=SZ/O=Huawei/
● O:组织,如Huawei。
● OU:组织单位,如IoT。
● CN:Common Name,填写为CA的组织名,如CA。
步骤6 执行如下命令生成CA根证书ca.cer。
openssl x509 -req -passin pass:123456 -in ca.csr -out ca.cer -signkey ca_private.key -CAcreateserial -days 3650
如下信息您可以根据实际情况进行修改。
● passin pass:必须与4中设置的私钥密码保持一致。
● days:代表证书有效期。
步骤7 执行如下命令生成应用服务器端私钥文件。
openssl genrsa -passout pass:123456 -aes256 -out server_private.key 2048
步骤8 执行如下命令生成应用服务器端csr文件,用于生成服务端证书。
openssl req -passin pass:123456 -new -key server_private.key -out server.csr -subj "/C=CN/ST=GD/L=SZ/
O=Huawei/OU=IoT/CN=appserver.iot.com"
如下信息您可以根据实际情况进行修改。
● C:代表国家,填写CN。
● ST:地区,如GD。
● L:城市,如SZ。
● O:组织,如Huawei。
● OU:组织单位,如IoT。
● CN:Common Name,一般填写为应用服务器的域名或IP。
步骤9 通过CA私钥文件ca_private.key对服务端csr文件server.csr进行签名,生成服务端证书 文件server.cer。
openssl x509 -req -passin pass:123456 -in server.csr -out server.cer -sha256 -CA ca.cer -CAkey ca_private.key -CAserial ca.srl -CAcreateserial -days 3650
步骤10 (可选)如果您需要.crt/.pem后缀的证书,可以根据如下命令进行转换。下面将以 server.cer转为为server.crt为例进行说明,需要转换ca.cer证书时,请将命令中的server 替换为ca。
openssl x509 -inform PEM -in server.cer -out server.crt
步骤11 在openssl安装目录的bin文件夹下,获取生成的CA证书(ca.cer/ca.crt/ca.pem)、应 用服务器证书(server.cer/server.crt/server.pem)和私钥文件
(server_private.key)。其中CA证书用于加载到物联网平台,应用服务器证书和私钥 文件用于加载到应用服务器。
----结束
配置 HTTP/HTTPS 服务端订阅
● 设备异步命令状态:针对LwM2M/CoAP协议的设备,物联网平 台支持下发异步命令给设备。将异步命令的状态变更设置为数据
参数名 参数说明
SQL语句 您需要编辑处理消息数据的SQL,设置数据转发目的地。
单击“编辑SQL”,编写处理消息字段的SQL。
推送URL 物联网平台推送消息到应用服务器的URL。例如,推送URL为
“https://www.example.com:8443/example/”,则加载推送证
书时“域名/IP与端口”为“www.example.com:8443”。
● 如果“推送URL”使用HTTP协议,不需要使用CA证书;
● 如果“推送URL”使用HTTPS协议,需要上传CA证书,证书 的上传可参考加载推送证书。
步骤5 完成完整的规则定义后,单击“启动规则”,实现数据转发至HTTP/HTTPS消息队 列。
●
调用删除单个订阅接口时,subscriptionId如何获取
相关 API 接口
创建规则动作 创建规则触发条件 修改规则触发条件 流转数据
11.3.3 使用 AMQP 订阅推送
11.3.3.1 AMQP 订阅推送
订阅:AMQP(Advanced Message Queuing Protocol)即高级队列消息协议。用户 通过控制台创建订阅任务,也可以通过调用物联网平台的创建规则触发条件、创建规
则动作、修改规则触发条件接口配置并激活规则,向平台获取发生变更的设备业务信
息(如设备生命周期管理、设备数据上报、设备消息状态、设备状态等)和管理信息(软固件升级状态和升级结果)。订阅时必须指定具体的AMQP消息通道。
推送:订阅成功后,物联网平台根据用户订阅的数据类型,将对应的变更信息推送给 指定的AMQP消息队列。如果用户没有订阅该类型的数据通知,即使数据发生了变更 也不会进行推送。用户可通过AMQP的客户端与IoT平台建立链接,来接收数据。订阅 推送的示意图如下图所示:
推送机制:物联网平台向用户推送消息后,如果用户接收成功,会向物联网平台回复 响应(推荐自动响应方式)。如果用户建立链接后不拉取数据,则会导致数据积压在 服务端。服务端仅保存最近24小时,且占用磁盘容量小于1G的数据,如果用户不及时 拉取数据,物联网平台会滚动清除超期和超出容量限制的数据。若用户收到消息后来 不及响应,长链接中断,则未响应的数据会在下次链接后重新推送。
如何进行数据订阅
应用服务器接入到“设备接入服务”后,在控制台创建订阅任务,也可以通过调用API 接口进行数据订阅。
● 在控制台配置AMQP订阅请参考11.3.3.2 配置AMQP服务端订阅。
● 通过API接口进行数据订阅请参考如何调用API、创建规则触发条件、创建规则动
作和修改规则触发条件。
推送数据格式
数据订阅成功后,物联网平台推送到应用侧的数据格式样例请参考流转数据。
说明
http协议消息头中,媒体类型信息Content-Type为application/json;字符集为utf-8;
相关 API 参考
创建规则动作 创建规则触发条件 修改规则触发条件 流转数据
创建AMQP队列 查询AMQP列表 查询单个AMQP队列 生成接入凭证
11.3.3.2 配置 AMQP 服务端订阅
本文介绍如何在物联网平台设置和管理AMQP服务端订阅。
步骤1 访问设备接入服务,单击“立即使用”进入设备接入控制台。
步骤2 选择左侧导航栏的“规则 > 数据转发”,单击页面右上角的“创建规则”。
步骤3 参考下表填写参数后,单击“创建规则”。
参数名 参数说明
规则名称 创建的规则名称。
规则描述 对该规则的描述。
参数名 参数说明
● 设备异步命令状态:针对LwM2M/CoAP协议的设备,物联网平 台支持下发异步命令给设备。将异步命令的状态变更设置为数据
SQL语句 您需要编辑处理消息数据的SQL,设置数据转发目的地。
单击“编辑SQL”,编写处理消息字段的SQL。