本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
如何 Amazon IoT Greengrass 运作
Amazon IoT Greengrass 客户端软件,也称为 Amazon IoT Greengrass 核心软件,可在Windows和基于Linux的发行版(例如Ubuntu或Raspberry Pi操作系统)上运行,适用于具有ARM或x86架构的设备。借 Amazon IoT Greengrass助,您可以对设备进行编程,使其根据其生成的数据进行本地操作,基于机器学习模型运行预测,以及筛选和聚合设备数据。 Amazon IoT Greengrass 允许在本地执行您选择的 Amazon Lambda 函数、Docker 容器、本机操作系统进程或自定义运行时。
Amazon IoT Greengrass 提供称为组件的预建软件模块,可让您轻松扩展边缘设备功能。 Amazon IoT Greengrass 组件使您能够在边缘连接到 Amazon 服务和第三方应用程序。在开发物联网应用程序后, Amazon IoT Greengrass 您可以远程部署、配置和管理现场设备群中的这些应用程序。
以下示例显示 Amazon IoT Greengrass 设备如何与 Amazon IoT Greengrass 云服务以及中的其他 Amazon 服务进行交互。 Amazon Web Services 云
的关键概念 Amazon IoT Greengrass
以下是理解和使用 Amazon IoT Greengrass的基本概念:
- Amazon IoT 东西
-
Amazon IoT 事物是特定设备或逻辑实体的表示。有关事物的信息存储在 Amazon IoT 注册表中。
- Greengrass 核心设备
-
运行 C Amazon IoT Greengrass ore 软件的设备。Greengrass 核心设备是物联网的东西。 Amazon 您可以将多个核心设备添加到 Amazon IoT 事物组中,以创建和管理 Greengrass 核心设备组。有关更多信息,请参阅 设置 Amazon IoT Greengrass 核心设备。
- Greengrass 客户端设备
-
一种通过连接到 Greengrass 核心设备并与之通信的设备。MQTTGreengrass 客户端设备就是一回事。 Amazon IoT 核心设备可以处理、筛选和聚合来自与其连接的客户端设备的数据。您可以将核心设备配置为在客户端设备、 Amazon IoT Core 云服务和 Greengrass 组件之间中继MQTT消息。有关更多信息,请参阅 与本地 IoT 设备交互。
客户端设备可以免费运行,也可以使用RTOSAmazon IoT Device SDK或 Greengrass API 发现来获取有关它们可以连接的核心设备的信息。
- Greengrass 组件
-
部署到 Greengrass 核心设备并在该设备上运行的软件模块。使用开发和部署的所有软件都建模 Amazon IoT Greengrass 为一个组件。 Amazon IoT Greengrass 提供了预先构建的公共组件,这些组件提供了可在应用程序中使用的特性和功能。您还可以在本地设备或云中开发自己的自定义组件。开发自定义组件后,您可以使用 Amazon IoT Greengrass 云服务将其部署到单个或多个核心设备。您可以创建自定义组件并将该组件部署到核心设备。当您执行此操作时,核心设备会下载以下资源来运行该组件:
-
配方:通过定义组件详细信息、配置和参数来描述软件模块的JSON或YAML文件。
-
构件:源代码、二进制文件或脚本,可定义将在设备上运行的软件。您可以从头开始创建构件,也可以使用 Lambda 函数、Docker 容器或自定义运行时创建组件。
-
依赖关系:组件之间的关系,使您可以执行自动更新或重新启动依赖组件。例如,您可以拥有依赖于加密组件的安全消息处理组件。这样可以确保加密组件的任何更新都会自动更新并重新启动消息处理组件。
有关更多信息,请参阅Amazon提供的组件 和开发 Amazon IoT Greengrass 组件。
-
- 部署
-
发送组件并将所需组件配置应用于目标设备的过程,目标设备可以是单个 Greengrass 核心设备或一组 Greengrass 核心设备。部署会自动将任何更新的组件配置应用于目标,并包括定义为依赖关系的任何其他组件。您也可以克隆现有部署以创建使用相同组件但部署到不同目标的新部署。部署是连续的,这表示您对部署的组件或组件配置所做的任何更新都会自动发送到所有目标。有关更多信息,请参阅 将 Amazon IoT Greengrass 组件部署至设备。
- Amazon IoT Greengrass 核心软件
-
从版本2.14开始, Amazon IoT Greengrass 提供了其设备运行时的两种替代实现,一种名为nucleus的可执行文件。第一个也是以前唯一的 nucleus 是用 Java 实现的。这种选择提供了跨架构和操作系统的最大可移植性。但是,它还依赖于 Java 虚拟机,因此会占用大量内存。
第二个新添加的核是用 C 实现的。这种选择大大减少了其占地面积。但是,它需要针对不同的目标架构和操作系统分别进行分发(或从源代码编译)。当需要区分两者时,我们将第一个实现称为 n ucleus 经典版本,将后者称为 nuc leus lite。
-
可选组件:这些可配置组件由您的边缘设备提供, Amazon IoT Greengrass 并在您的边缘设备上启用其他功能。根据您的要求,您可以选择要部署到设备上的可选组件,例如数据流、本地机器学习推理或本地命令行界面。有关更多信息,请参阅 Amazon提供的组件。
您可以通过在设备上部署新版本的组件来升级 C Amazon IoT Greengrass ore 软件。
-
的特点 Amazon IoT Greengrass
Amazon IoT Greengrass Version 2 由以下元素组成:
-
软件分发
-
Greengrass nucleus 组件,这是核心软件的最低安装量。 Amazon IoT Greengrass 此组件管理 Greengrass 组件的部署、编排和生命周期管理。
-
与服务、协议和软件集成的其他可选的 Amazon提供的组件。
-
Greengrass 开发工具,可用于创建、测试、构建、发布和部署自定义 Greengrass 组件。
-
Amazon IoT Device SDK,其中包含用于自定义 Greengrass 组件的进程间通信 (IPC) 库和用于客户端设备的 Greengrass 发现库。
-
流管理器SDK,可用于管理核心设备上的数据流。
-
-
云服务
-
Amazon IoT Greengrass V2 API
-
Amazon IoT Greengrass V2 控制台
-
Amazon IoT Greengrass 核心软件
您可以使用在边缘设备上运行的 Amazon IoT Greengrass Core 软件来执行以下操作:
-
在本地设备上处理数据流,并自动导出到 Amazon 云。有关更多信息,请参阅 管理 Greengrass 核心设备上的数据流。
-
MQTTSupport 支持 Amazon IoT 和组件之间的消息传递。有关更多信息,请参阅 发布/订阅消息 Amazon IoT Core MQTT。
-
与通过其连接和通信的本地设备进行交互MQTT。有关更多信息,请参阅 与本地 IoT 设备交互。
-
支持组件之间的本地发布和订阅消息收发。有关更多信息,请参阅 发布/订阅本地消息。
-
部署和调用组件和 Lambda 函数。有关更多信息,请参阅 将 Amazon IoT Greengrass 组件部署至设备。
-
管理组件生命周期,例如支持安装和运行脚本。有关更多信息,请参阅 Amazon IoT Greengrass 组件配方参考。
-
对 Amazon IoT Greengrass 核心软件和自定义组件执行安全、 over-the-air (OTA) 软件更新。有关更多信息,请参阅更新 Amazon IoT Greengrass Core 软件(OTA) 和将 Amazon IoT Greengrass 组件部署至设备。
-
提供本地密钥的安全、加密的存储以及组件进行的受控访问。有关更多信息,请参阅 密钥管理器。
-
通过设备身份验证和授权,保护设备与 Amazon 云端之间的连接。有关更多信息,请参阅 Amazon IoT Greengrass 的设备身份验证和授权。
您可以 Amazon IoT Greengrass APIs通过创建持续的软件部署来配置和管理 Greengrass 核心设备。有关更多信息,请参阅 将 Amazon IoT Greengrass 组件部署至设备。
某些功能仅在某些平台上受支持。有关更多信息,请参阅 按操作系统划分的 Greengrass 功能兼容性。
有关支持的平台、要求和下载的更多信息,请参阅设置 Amazon IoT Greengrass 核心设备。
下载此软件即表示您同意Greengrass Core 软件许可协议