通过 AWS IoT Greengrass 构建边缘 IoT 应用程序 - 本地处理与云端协作
在边缘设备上执行 Lambda 函数,即使在与云端间歇性连接的环境中也能继续本地处理。介绍 ML 推理的边缘执行和设备群管理。
Greengrass 概述
IoT Greengrass 是在边缘设备上本地执行 AWS 云功能的运行时。将 Greengrass Core 软件安装到具有 256 MB 以上内存的 Linux 设备(Raspberry Pi、工业网关、EC2)上,该设备即可作为边缘计算的中心运行。可在边缘执行 Lambda 函数、Docker 容器和自定义组件,即使与云端的连接中断也能继续本地处理。
组件与本地处理
Greengrass v2 采用基于组件的架构。将 AWS 提供的公共组件(Stream Manager、本地 MQTT Broker、ML 推理)与自定义组件(自有业务逻辑)组合构建边缘应用程序。Stream Manager 在本地缓冲传感器数据,根据带宽限制批量或优先级方式将数据传输到云端(S3、Kinesis、IoT Analytics)。本地 MQTT Broker 实现边缘设备间的消息传递,无需经过云端即可实现设备间通信。
ML 推理与设备群管理
通过 ML 推理组件可将 SageMaker 训练的模型部署到边缘设备并执行实时推理。支持 TensorFlow Lite 和 DLR(Deep Learning Runtime),即使在资源有限的设备上也能高效执行推理。应用于制造线上的不良品检测、农业中的作物病害检测和安防摄像头的人物检测等场景。设备群管理通过 OTA(Over-The-Air)部署向数千台设备同时分发组件更新,支持回滚和分阶段部署。
Greengrass 的定价
Greengrass Core 软件的安装和运行免费。产生费用的是与云端通信所使用的 AWS 服务(IoT Core 消息传递、向 S3 的数据传输、Lambda 调用)的使用费。边缘设备的硬件成本和网络线路费用另行需要。OTA 部署使用的 S3 存储和 IoT Jobs 费用也会产生。对于大规模设备群,IoT Core 的消息传递费用(每 100 万消息约 1 美元)是主要成本因素。
总结
引入 Greengrass 时,首先从组件目录中选择所需功能(MQTT Broker、Stream Manager、ML 推理),根据边缘设备的 CPU 和内存设计配置。在需要网络中断容忍性的环境中,优先本地完成处理,将向云端的数据传输设计为连接恢复时批量进行更为稳健。通过设备群管理实现向数千台设备的 OTA 部署,通过分阶段发布降低更新风险。