分类:
Azure物联网
◆
标签:
#Azure
#IoT Hub
#
◆
发布于: 2023-06-13 21:14:53
Azure IoT Hub默认拥有灾难恢复(DR: Disaster Recovery)的功能。当灾难发生时,微软内置的触发器会触发DR, 自动将主要的数据自动转移到其他区域(这些区域已经由微软规划好),这包括所有的设备Identity, Device Twin等数据,并恢复服务。
在DR的概念中我们有一个重要的指标:Recovery time objective(RTO), 这个指标主要用于评估恢复的时长,也可以用于评估当灾害发生时,DR过程中会有多大的业务损失。
默认的DR必须要微软的触发器在灾害发生时自动触发,这个过程是非常少见的。在方案设计的时候如果要考虑DR,必须要有能参考的指标。有了参考的指标,当设计应用冗余的时候,可以有针对性的做出更多设计。针对这个需求, Azur
Read more
分类:
Azure物联网
◆
标签:
#Azure
#IoT Hub
#
◆
发布于: 2023-06-13 21:11:46
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。
MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设
Read more
分类:
Azure物联网
◆
标签:
#Azure
#IoT Hub
#
◆
发布于: 2023-06-13 21:09:59
Azure IoT Hub目前正式支持的是MQTT v3.1.1协议,针对于MQTT 5.0的支持在本文写作时还是public preview的阶段,同时需要注意的是Azure IoT Hub对于MQTT的实现,并没有全部实现协议本身的说明。
Azure IoT Hub使用端口8883支持MQTT v3.1.1
Azure IoT Hub使用端口443支持WebSocket之上的MQTT
设备和Azure IoT Hub相连必须使用TLS/SSL加密,因此不支持非加密端口1883。
链接到Azure IoT Hub
使用MQTT协议的设备可以使用如下两种方式链接到Azure IoT Hub:
使用Azure提供的SDK
直接使用MQTT协议。
大多数的公司会阻挡端口8
Read more
分类:
Azure物联网
◆
标签:
#Azure
#IoT Hub
#
◆
发布于: 2023-06-13 21:07:58
AMQP协议不仅可以使用在设备端,也可以使用在服务端,MQTT只能使用在设备端。Azure IoT Hub支持AMQP 1.0。除了大家可以直接使用Azure SDK之外,你可以直接使用AMQP client通过Azure IoT Hub提供的两个endpoint完成同样的操作。
Service Client
通过认证链接到Azure IoT Hub
为了链接到Azure IoT Hub, 客户端可是使用CBS或者SASL认证。Service Client要求如下的信息:
IoT Hub Hostname: 例如:<iot-hub-name>.azure-devices.net
Key Name: service
Access Key: 主要或者是次要的服务key
SA
Read more
分类:
Azure物联网
◆
标签:
#Azure
#IoT Hub
#
◆
发布于: 2023-06-13 21:05:36
AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件同产品,不同的开发语言等条件的限制。
AMQP协议这种降低耦合的机制是基于与上层产品,语言无关的协议。是一种二进制协议,提供客户端应用与消息中间件之间多通道、协商、异步、安全、中立和高效地交互。从整体来看,AMQP协议可划分为两层:
Read more
分类:
Azure物联网
◆
标签:
#Azure
#IoT Hub
#
◆
发布于: 2023-06-13 21:03:09
本章我们根据github上的实例来学习一遍如何设计一个良好的设备客户端,该客户端设计上考虑了:
监听设备的连接状态,根据设备的连接状态决定要如何对设备连接进行处理
一个设备上只有一个设备客户端实例在线。
响应必要的动作
注意
本节代码都是基于.Net 6。
创建新项目
使用如下的命令创建一个新的项目:
Read more
分类:
Azure物联网
◆
标签:
#Azure
#IoT Hub
#
◆
发布于: 2023-06-13 21:00:30
前面我们学习了很多在.Net Device SDK上处理消息的情况,我们这里来总结一下:
连接到Azure IoT Hub
连接到Azure IoT Hub首先需要考虑几个要素:
连接认证的方式
连接的字符串
连接使用的协议
关于连接的认证方式,我们之前已经学习过了,基本上有三种:
使用SAS Key连接
使用CA签发的证书连接
使用自签发证书的指纹连接
我们之前已经有代码的例子,大家可以找来试一试。
Read more
分类:
Azure物联网
◆
标签:
#Azure
#
#IoT Hub
◆
发布于: 2023-06-13 20:56:14
使用Azure IoT Hub的计划任务可以同时操作多个设备,使用计划任务可以处理如下的场景:
批量更新预期属性
批量更新Tags
批量调用直接方法。
本章向大家展示如何使用.Net Service SDK来创建计划任务,并使用该任务调用直接方法,本章需要使用到之前创建的一个实例,DirectMethodCallSample, 您可以参考文档重新创建该实例:
Read more
分类:
Azure物联网
◆
标签:
#Azure
#IoT Hub
#
◆
发布于: 2023-06-13 20:51:56
如果需要从设备上向IoT Hub上传文件,首先需要配置文件上传的功能,也需要创建一个和Azure IoT Hub在同一个区域的Storage Account, 关于如何创建Storage Account和blob, 您可以参考文档:https://docs.microsoft.com/zh-cn/azure/storage/common/storage-account-create?tabs=azure-portal, 创建好之后找到您的Azure IoT Hub, 从左边找到File Upload这个功能,进行配置,如下图:
Read more
分类:
Azure物联网
◆
标签:
#Azure
#IoT Hub
#
◆
发布于: 2023-06-13 20:49:25
本节我们学习设备代码如何影响孪生设备的预期属性更新以及上报属性的更新,希望大家能够直接从代码中学习到更多,另外需要注意的是,我们所有的代码都是基于.Net 6,所以如果你想从我们的这些代码中收益,您需要安装.Net 6的SDK。
创建一个新的项目
首先使用如下的命令取得设备simDevice的连接字符串,当然这之前你需要先创建好Azure IoT Hub资源以及该设备:
az iot hub device-identity connection-string show --device-id simDevice --hub-name MyIoThubByCli
得到连接字符串之后,先保存起来,后面的代码中需要使用到这个连接字符串。
使用下述的命令创建我们的项目:
Read more