Azure IoT Edge用户手册

Azure IoT Edge 将云分析和自定义业务逻辑移到设备,这样你的组织就可以专注于业务见解而非数据管理。 通过将业务逻辑打包到标准容器中,横向扩展 IoT 解决方案,然后可以将这些容器部署到任何设备,并从云中监视所有这些设备。关于Azure IoT Edge的详细介绍请参考了解 Azure IoT Edge 模块。映翰通IG902系列产品提供Azure IoT Edge SDK以支持Azure IoT Edge,使你能够快速开发并完成任务,安全和高效地部署相关服务。该SDK主要通过管理Azure IoT Edge runtime来管理从Azure云平台部署并运行在IoT Edge设备(即IG902)上的IoT Edge模块(docker image)。本文档将为你说明如何基于Azure IoT Edge SDK实现通过Azure云平台在IG902上部署并运行一个模拟遥测数据并发送到IoT Hub的IoT Edge模块。

1. 环境准备

开始之前,你需要准备以下事项(你可以访问资源中心获取软件版本):

  • Azure IoT账户
  • IG902固件版本:v2.0.0.r12644及以上
  • Docker SDK版本:18.06.3-ce及以上
  • Azure IoT Edge SDK版本:1.0.4及以上
  • IG902系列产品

1.1 配置Azure IoT环境

如果你已经在Azure IoT上配置了相应的IoT Hub和IoT Edge设备,可以跳过这一小节。

  • 步骤1:登录Azure IoT

    访问https://portal.azure.cn/登录Azure。

    _images/2020-04-01-11-17-22.png

  • 步骤2:添加IoT Hub

    登录成功后如下图所示,选择“IoT Hub”。

    _images/2020-04-01-11-20-56.png

    点击“Add”创建一个IoT Hub。

    _images/2020-04-01-11-22-39.png

    _images/2020-04-01-11-25-09.png

    创建成功后如下图所示:

    _images/2020-04-01-11-28-51.png

  • 步骤3:添加IoT Edge设备

    在“IoT Hub”中点击相应的IoT Hub,并进入该IoT Hub的“IoT Edge”页面,点击“Add an IoT Edge device”。

    _images/2020-07-01-10-43-59.png

    配置相应的参数并点击“Save”。

    _images/2020-07-01-10-45-04.png

  • 步骤4:复制IoT Edge设备的连接字符串

    IoT Edge设备创建成功后如下图所示:

    _images/2020-07-01-10-46-25.png

    点击IoT Edge设备的“Device ID”进入该IoT Edge设备的详情页面,复制“Primary Connection String”参数以备后续使用。

    _images/2020-07-01-10-48-09.png

1.2 配置IG902环境

1.2.1 配置IG902连接Internet

配置IG902连接Internet,请参考IG902连接Internet

1.2.2 更新IG902软件版本

  • 更新IG902固件版本

    如何更新IG902固件版本请参考更新IG902软件版本

  • 更新IG902 Docker SDK

    如何更新IG902 Docker SDK请参考安装Docker SDK

  • 更新IG902 Azure IoT Edge SDK

    进入“边缘计算 >> 云厂商边缘计算”页面,取消勾选“启用安全守护程序”后,点击“升级”按钮,选择Azure IoT Edge SDK文件并点击“确定”。

    _images/2020-07-01-11-07-21.png

1.3 修改Azure IoT Edge配置文件

在“边缘计算 >> 云厂商边缘计算”页面点击“导出”以导出Azure IoT Edge配置文件。

_images/2020-07-01-11-07-48.png

修改Azure IoT Edge配置文件中的“device_connection_string”参数并保存, 该字符串为复制IoT Edge设备的连接字符串获取的IoT Edge设备的“Primary Connection String”参数。

_images/2020-07-01-11-10-20.png

随后导入修改后的Azure IoT Edge配置文件。

_images/2020-07-01-11-13-34.png

2. 运行Azure IoT Edge

进入“边缘计算 >> 启动Docker管理”页面,勾选“启动Docker管理器”。

_images/2020-07-01-11-15-17.png

进入“边缘计算 >> 云厂商边缘计算”页面,勾选“启用安全守护程序”。

_images/2020-07-01-11-16-35.png

启用安全守护程序后,Azure IoT Edge守护程序会拉取镜像并创建edgeAgent容器,镜像文件较大,这需要一段时间,请耐心等待大约20分钟。你可以进入portainer的“LOCAL >> Containers”页面查看是否有edgeAgent容器运行,当edgeAgent容器运行时,说明Azure IoT Edge已经处于正常工作状态了。

_images/2020-07-01-13-19-07.png

_images/2020-07-01-13-20-30.png

_images/2020-07-01-13-19-25.png

此时,在IoT Edge设备的详情页面可以看到$edgeAgent的“RUNTIME STATUS”为running

_images/2020-07-01-14-55-52.png

3. 配置并部署模块

  • 步骤1:添加IoT Edge模块

    在IoT Edge设备的详情页面点击“Set Modules”

    _images/2020-07-01-13-23-33.png

    在“Set modules on device”页面点击“Add”按钮并选择“IoT Edge Module”以添加IoT Edge模块。

    _images/2020-07-01-13-26-18.png

    在“Add IoT Edge Module”弹出框中配置模块名称和镜像URL,这里以mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.0 镜像为例,该镜像为微软官方提供,模拟遥测数据并发送到IoT Hub。如何开发模块请参考为Linux设备开发和部署Python IoT Edge模块

    _images/2020-07-01-13-37-01.png

    模块添加后如下图所示:

    _images/2020-07-01-15-00-29.png

    edgeHub容器监听443端口并默认映射到宿主机(即IG902)的443端口。通常IG902的443端口会被其他程序监听占用,所以需要修改edgeHub容器的映射端口以保证edgeHub可以启动。点击“Runtime Settings”按钮,在“Runtime Settings”弹出框中修改“HostPort”为其他端口,如:444。修改完成后点击“Save”

    _images/2020-07-01-13-48-56.png

    随后点击“Review + create”,确认无误后点击“Create”,完成IoT Edge模块添加。

    _images/2020-07-01-13-52-17.png

    随后edgeHubmcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.0 将自行部署并运行在IG902上,你可以在IoT Edge设备的详情页面查看各个容器的部署情况。当“RUNTIME STATUS”为running时说明容器已部署并正常运行。(两个镜像大小之和约为400MB,部署时间约为20分钟或更长,请耐心等待)

    _images/2020-07-01-13-55-07.png

  • 步骤2:查看容器运行情况

    访问portainer的“LOCAL >> Containers”页面,可以看到有三个容器已经在运行起来了。

    _images/2020-07-01-13-56-48.png

    点击EIP-demo-edge-module容器的“Logs”按钮查看容器的运行日志,当日志如下图所示说明容器已正常运行:模拟模拟遥测数据并发送到IoT Hub。

    _images/2020-07-01-14-00-14.png

    _images/2020-07-01-13-59-57.png

至此,完成了通过Azure云平台在IG902上部署并运行一个模拟遥测数据并发送到IoT Hub的IoT Edge模块。