AWS IoT Greengrass 的工作原理 - AWS IoT Greengrass

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AWS IoT Greengrass 的工作原理

AWS IoT Greengrass 客户端软件,也称为 AWS IoT Greengrass Core 软件,可在 Windows 和基于 Linux 的发行版(例如 Ubuntu 或 Raspberry Pi 操作系统)上运行,适用于采用 ARM 或 x86 架构的设备。借助 AWS IoT Greengrass,您可以对设备进行编程,使其根据生成的数据进行本地操作,基于机器学习模型运行预测,并筛选和聚合设备数据。AWS IoT Greengrass 支持在本地执行您选择的 AWS Lambda 函数、Docker 容器、本机操作系统进程或自定义运行时。

AWS IoT Greengrass 提供称为组件的预建软件模块,可让您轻松扩展边缘设备功能。AWS IoT Greengrass 组件使您能够在边缘连接到 AWS 服务和第三方应用程序。在开发 IoT 应用程序后,AWS IoT Greengrass 使您能够在现场的设备实例集上远程部署、配置和管理这些应用程序。

以下示例显示了 AWS IoT Greengrass 设备如何与 AWS IoT Greengrass 云服务以及 AWS 云 中的其他 AWS 服务进行交互。

概述了 AWS IoT Greengrass 设备如何与 AWS IoT Greengrass 云服务以及 AWS 云 中的其他 AWS 服务进行交互。

AWS IoT Greengrass 的重要概念

以下是理解和使用 AWS IoT Greengrass 的基本概念:

AWS IoT 事物

AWS IoT 事物是特定设备或逻辑实体的表示形式。事物的相关信息存储在 AWS IoT 注册表中。

Greengrass 核心设备

运行 AWS IoT Greengrass Core 软件的设备。Greengrass 核心设备是 AWS IoT 事物。您可以将多个核心设备添加到 AWS IoT 事物组中,以创建和管理 Greengrass 核心设备组。有关更多信息,请参阅 设置 AWS IoT Greengrass 核心设备

Greengrass 客户端设备

通过 MQTT 连接到 Greengrass 核心设备并与之通信的设备。Greengrass 客户端设备是 AWS IoT 事物。核心设备可以处理、筛选和聚合来自与其连接的客户端设备的数据。您可以将核心设备配置为在客户端设备、AWS IoT Core 云服务和 Greengrass 组件之间中继 MQTT 消息。有关更多信息,请参阅 与本地 IoT 设备交互

客户端设备可以运行 FreeRTOS,也可以使用 AWS IoT Device SDKGreengrass Discovery API 来获取有关客户端设备可以连接到的核心设备的信息。

Greengrass 组件

部署到 Greengrass 核心设备并在该设备上运行的软件模块。使用 AWS IoT Greengrass 开发和部署的所有软件都建模为组件。AWS IoT Greengrass 提供了预先构建的公有组件,这些组件提供了可在应用程序中使用的特征和功能。您还可以在本地设备或云中开发自己的自定义组件。开发自定义组件后,您可以使用 AWS IoT Greengrass 云服务将其部署到单个或多个核心设备。您可以创建自定义组件并将该组件部署到核心设备。当您执行此操作时,核心设备会下载以下资源来运行该组件:

  • 配方:JSON 或 YAML 文件,可通过定义组件详细信息、配置和参数来描述软件模块。

  • 构件:源代码、二进制文件或脚本,可定义将在设备上运行的软件。您可以从头开始创建构件,也可以使用 Lambda 函数、Docker 容器或自定义运行时创建组件。

  • 依赖关系:组件之间的关系,使您可以执行自动更新或重新启动依赖组件。例如,您可以拥有依赖于加密组件的安全消息处理组件。这样可以确保加密组件的任何更新都会自动更新并重新启动消息处理组件。

有关更多信息,请参阅AWS 提供的组件开发 AWS IoT Greengrass 组件

部署

发送组件并将所需组件配置应用于目标设备的过程,目标设备可以是单个 Greengrass 核心设备或一组 Greengrass 核心设备。部署会自动将任何更新的组件配置应用于目标,并包括定义为依赖关系的任何其他组件。您也可以克隆现有部署以创建使用相同组件但部署到不同目标的新部署。部署是连续的,这表示您对部署的组件或组件配置所做的任何更新都会自动发送到所有目标。有关更多信息,请参阅 将 AWS IoT Greengrass 组件部署到设备

AWS IoT Greengrass Core 软件

从版本 2.14 开始,AWS IoT Greengrass 对其设备运行时提供了两个替代实现方案,运行时是一种称为 Nucleus 的可执行文件。第一个(以前也是唯一的)Nucleus 是用 Java 实现的。该选项提供了最大的跨架构和操作系统可移植性。但是,它还依赖于 Java 虚拟机,因此会占用大量内存。

第二个新增的 Nucleus 是用 C 实现的。该选项大大减小了其内存占用。但是,它需要分别针对不同的目标架构和操作系统进行分发(或从源代码编译)。当需要区分两者时,我们将第一个实现称为 Nucleus Classic,并将后者称为 Nucleus Lite

  • 可选组件:这些可配置组件由 AWS IoT Greengrass 提供,可在边缘设备上启用其他功能。根据您的要求,您可以选择要部署到设备上的可选组件,例如数据流、本地机器学习推理或本地命令行界面。有关更多信息,请参阅 AWS 提供的组件

您可以通过在设备上部署新版本的组件来升级 AWS IoT Greengrass Core 软件。

AWS IoT Greengrass的特征

AWS IoT Greengrass Version 2 包含以下元素:

  • 软件分发

  • 云服务

    • AWS IoT Greengrass V2 API

    • AWS IoT Greengrass V2 管理控制台

AWS IoT Greengrass Core 软件

您可以使用在边缘设备上运行的 AWS IoT Greengrass Core 软件来执行以下操作:

您可以通过 AWS IoT Greengrass API 配置和管理 Greengrass 核心设备,并在其中创建持续的软件部署。有关更多信息,请参阅 将 AWS IoT Greengrass 组件部署到设备

某些功能仅在某些平台上受支持。有关更多信息,请参阅 Greengrass 功能兼容性

有关支持的平台、要求和下载的更多信息,请参阅设置 AWS IoT Greengrass 核心设备

下载此软件即表示您同意Greengrass Core 软件许可协议