本文介绍:
将一台Ubuntu Server 配置为Azure IoT Hub 的 Edge Device。
完整视频演示见文末。
图文步骤:
1.创建资源组
登录 portal.azure.cn, 在上方搜索框中输入“资源组”,进入到资源组页面:
点击添加按钮,创建一个新的资源组:
创建以自己姓名拼音为名称的资源组,资源组位置可以随意选择:
创建完成点击右上角 转到资源组完成创建:
2. 创建Linux Ubuntu 18.04 虚拟机作为边缘设备
在市场中输入 ubuntu 进行查询,找到Ubuntu Server 18.04 LTS,点击创建按钮:
输入虚拟机名称,以姓名拼音或英文为名称,虚拟机大小选择2核8G:
虚拟机设置以密码方式登录,输入用户名和密码,入站端口选择 22 和 80:
验证信息无误后,点击创建按钮。稍等2-3分钟,虚拟机即可创建完成:
3.创建Azure IoT Hub 和IoT Edge Device
在资源组中点击“添加”,找到物联网:
在物联网中找到IoT 中心,点击开始创建:
检查资源组无误后,输入一个IoT 中心的名称,点击查看创建:
默认会创建一个 S1 的IoT Hub,每日消息限额40万条。点击创建按钮稍等2-3分钟即可完成创建。
创建完成欧,转到资源即可进入IoT Hub 配置页面:
点击右侧IoT Edge,并点击上方的添加IoT Edge 设备:
输入一个设备名称,其余配置保持不变,点击保存:
刷新页面,可以看到设备创建成功:
点击设备,可以看到设备连接字符串,稍后会用到:
4.登录Ubuntu Server 配置Azure IoT Edge Runtime
找到Ubuntu 虚拟机的IP地址
在命令提示符中,输入 ssh 用户名@IP地址,按照提示输入密码:
登录成功看到如下提升:
接下来参照官网文档安装Azure IoT Edge 运行时:
https://docs.microsoft.com/zh-cn/azure/iot-edge/how-to-install-iot-edge?view=iotedge-2020-11&WT.mc_id=AZ-MVP-5003757
主要的步骤有:
安装与操作系统匹配的存储库配置:
curl https://packages.microsoft.com/config/ubuntu/18.04/multiarch/prod.list > ./microsoft-prod.list
将生成的列表复制到 sources.list.d 目录:
sudo cp ./microsoft-prod.list /etc/apt/sources.list.d/
安装 Microsoft GPG 公钥:
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg sudo cp ./microsoft.gpg /etc/apt/trusted.gpg.d/
更新包:
sudo apt-get update
安装容器引擎:
sudo apt-get install moby-engine
安装最新版IoT Edge 运行时:
sudo apt-get install aziot-edge
接下来配置设备身份:
基于在安装 IoT Edge 的过程中提供的模板文件为你的设备创建配置文件:
sudo cp /etc/aziot/config.toml.edge.template /etc/aziot/config.toml
在 IoT Edge 设备上,打开配置文件:
sudo nano /etc/aziot/config.toml
找到文件的预配部分,并取消注释“ Manual provisioning with connection string”下边的三行
将真实的设备连接字符串拷贝过来。
# Manual provisioning with connection string [provisioning] source = "manual" connection_string = "
保存文件:
CTRL + X, Y, Enter
更新配置文件:
sudo iotedge config apply
稍等几分钟,观察页面显示如下表示配置成功:
如下是几个有用的命令,在系统不正常时可以用来调试:
检查以确保 IoT Edge 系统服务正在运行。
sudo iotedge system status
若需排查服务问题,请检索服务日志。
sudo iotedge system logs
使用 check 工具验证设备的配置和连接状态。
sudo iotedge check
5.从刚云端元程向IoT Edge Device 配置模块(容器)
接下来演示从云端向设备配置的两类模块:
1.普通的容器,比如数据库,网站,算法等,本例部署一个nginx
在IoT Edge设备页面点击 设置模块:
点击添加,IoT Edge 模块:
输入一个模块名称,例如website:
影像URL直接输入 nginx
容器创建选项输入:表示将容器的80端口映射到主机的80端口
{ "HostConfig": { "PortBindings": { "80/tcp": [{ "HostPort": 80 }] } } }
点击创建:
等待2-3分钟后刷新页面,观察到website 处于running状态,此时完成了从云端向设备远程部署了一个nginx容器。
在浏览器中输入 Ubuntu Server 的IP地址,可以看到Nginx已经在运行了:
2.遥测消息相关的模块,本例中以一个模拟的传感器为例子,该模块会向云端发送一些消息
继续添加模块:
输入模块名称 Simulated-Sensor
模块URL mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.0
下一步配置路由:
增加一个路由后点击 查看+创建
名称:SensorToHub
值:FROM /messages/modules/Simulated-Sensor/* INTO $upstream
点击创建:
等待2-3分钟后,观察IoT Hub概述页面的 设备到云的消息:
视频演示: