Amazon IoT Greengrass V1 和之间的区别 Amazon IoT Greengrass V2 - Amazon IoT Greengrass
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Amazon IoT Greengrass V1 和之间的区别 Amazon IoT Greengrass V2

Amazon IoT Greengrass V2 为设备、舰队和可部署软件引入了新的基本概念。本节介绍了 V2 中不同的 V1 概念。

Greengrass 的概念和术语
概念 Amazon IoT Greengrass V1 Amazon IoT Greengrass V2

应用程序代码

在中 Amazon IoT Greengrass V1,Lambda 函数定义了在核心设备上运行的软件。在每个 Greengrass 组中,您可以定义该函数使用的订阅和本地资源。对于 Amazon IoT Greengrass 核心软件在容器化 Lambda 运行时环境中运行的 Lambda 函数,您可以定义容器参数,例如内存限制。

在中 Amazon IoT Greengrass V2,组件是在核心设备上运行的软件模块。

  • 每个组件都有一个配方,用于定义组件的元数据、参数、依赖关系和脚本,以便在组件生命周期的每个步骤中运行。

  • 该配方还定义了组件的工件,即二进制文件,例如脚本、编译后的代码和静态资源。

  • 将组件部署到核心设备时,核心设备会下载组件配方和工件来运行该组件。

您可以将 V1 Lambda 函数作为在 Lambda 运行时环境中运行的组件导入。 Amazon IoT Greengrass V2导入 Lambda 函数时,您需要为该函数指定订阅、本地资源和容器参数。有关更多信息,请参阅步骤 2:创建和部署 Amazon IoT Greengrass V2 组件以迁移 Amazon IoT Greengrass V1 应用程序

有关如何创建自定义组件的更多信息,请参阅开发Amazon IoT Greengrass组件

Amazon IoT Greengrass 群组和部署

在中 Amazon IoT Greengrass V1,一个组定义了核心设备、该核心设备的设置和软件,以及可以连接到该核心设备的设备列表。 Amazon IoT 您可以创建部署以将组的配置发送到核心设备。

在中 Amazon IoT Greengrass V2,您可以使用部署来定义在核心设备上运行的软件组件和配置。

  • 每个部署都以单个核心设备(即 Amazon IoT 事物)或可包含多个核心设备 Amazon IoT 的事物组为目标。

  • 对事物组的部署是连续的,因此,当您将核心设备添加到事物组时,它会收到该组的软件配置。

有关更多信息,请参阅将Amazon IoT Greengrass组件部署到设备

在中 Amazon IoT Greengrass V2,您还可以使用 Greengrass CLI 创建本地部署,以便在开发自定义软件组件的设备上对其进行测试。有关更多信息,请参阅创建 Amazon IoT Greengrass 组件

Amazon IoT Greengrass 核心软件

在中 Amazon IoT Greengrass V1, Amazon IoT Greengrass Core 软件是一个包含该软件及其所有功能的单个软件包。安装 Amazon IoT Greengrass 核心软件的边缘设备被称为 Greengrass 内核。

在中 Amazon IoT Greengrass V2, Amazon IoT Greengrass Core 软件是模块化的,因此您可以选择要安装的软件来控制内存占用。

  • Greengrass nucleus 组件是核心软件所需的最低安装量。 Amazon IoT Greengrass 安装原子核的边缘设备被称为 Greengrass 核心设备。

  • nucleus 负责处理核心设备上其他组件的部署、编排和生命周期管理。

  • 流管理器、密钥管理器和日志管理器等功能是只有在需要这些功能时才部署的组件。有关更多信息,请参阅Amazon-提供的组件

连接器

在中 Amazon IoT Greengrass V1,连接器是预先构建的模块,您可以将其部署到 Amazon IoT Greengrass V1 核心设备上,以便与本地基础架构、设备协议和其他云服务进行交互。 Amazon

在中 Amazon IoT Greengrass V2, Amazon 提供了 Greengrass 组件,这些组件实现了 V1 中连接器提供的功能。以下 Amazon IoT Greengrass V2 组件提供 Greengrass V1 连接器功能:

有关更多信息,请参阅Amazon-提供的组件

连接的设备(Greengrass 设备)

在中 Amazon IoT Greengrass V1,联网设备是 Amazon IoT 指您添加到 Greengrass 组中,用于连接到该组中的核心设备并通过 MQTT 进行通信的设备。每次添加或移除连接的设备时,都必须部署该组。您可以使用订阅在连接的设备和核心设备上的应用程序之间中继消息。 Amazon IoT Core

在中 Amazon IoT Greengrass V2,连接的设备被称为 Greengrass 客户端设备。

  • 您可以将客户端设备与核心设备关联以连接它们并通过 MQTT 进行通信。

  • 要授权客户端设备连接,您需要定义可应用于客户端设备组的授权策略,因此无需创建部署即可添加或移除客户端设备。

  • 要在客户端设备和 Greengrass 组件之间中继消息 Amazon IoT Core,您可以配置可选的 MQTT 桥接组件。

在这两种模式中 Amazon IoT Greengrass V1 Amazon IoT Greengrass V2,设备都可以运行 FreeRTOS,也可以使用Amazon IoT Device SDKGreengrass 发现 API 来获取有关它们可以连接的核心设备的信息。Greengrass 发现 API 向后兼容,因此,如果您的客户端设备连接到 V1 核心设备,则无需更改其代码即可将它们连接到 V2 核心设备。

有关客户端设备的更多信息,请参阅与本地物联网设备互动

本地资源

在中 Amazon IoT Greengrass V1,可以将容器中运行的 Lambda 函数配置为访问核心设备文件系统上的卷和设备。这些文件系统资源称为本地资源。

在中 Amazon IoT Greengrass V2,您可以运行 Lambda 函数Docker 容器本机操作系统进程或自定义运行时的组件。

  • 将容器化 Lambda 函数作为组件导入时,必须指定该函数使用的本地资源。

  • 非容器化的 Lambda 函数和非 Lambda 组件可以直接使用核心设备上的本地资源,因此您无需指定该组件使用的本地资源。

本地影子服务

在中 Amazon IoT Greengrass V1,本地阴影服务默认处于启用状态,并且仅支持未命名的经典阴影。您可以在 Lambda 函数中使用 Amazon IoT Greengrass 核心软件开发工具包与设备上的阴影进行交互。

在中 Amazon IoT Greengrass V2,您可以通过部署影子管理器组件来启用本地影子服务。

  • 您可以在 Lambda 函数和自定义组件中使用 Amazon IoT Device SDK V2 与设备上的阴影进行交互。

  • 本地影子服务支持命名阴影。

  • 本地阴影服务允许您删除阴影并将已删除的阴影与同步 Amazon IoT Core。

有关更多信息,请参阅与设备阴影互动

订阅

在中 Amazon IoT Greengrass V1,您可以为 Greengrass 组定义订阅,以指定 Lambda 函数、连接器、连接设备、 Amazon IoT Core MQTT 代理和本地影子服务之间的通信渠道。订阅指定 Lambda 函数在何处接收事件消息以作为函数负载使用。

在中 Amazon IoT Greengrass V2,您可以在不使用订阅的情况下指定通信渠道。

访问其他 Amazon Web Services

在中 Amazon IoT Greengrass V1,您将一个名为群组角色的 Amazon Identity and Access Management (IAM) 角色附加到 Greengrass 群组。群组角色定义了该群组核心设备上的 Lambda 函数和 Amazon IoT Greengrass 功能所使用的访问权限。 Amazon Web Services

在中 Amazon IoT Greengrass V2,您将 Amazon IoT 角色别名附加到 Greengrass 核心设备。角色别名指向一个名为令牌交换角色的 IAM 角色。令牌交换角色定义了核心设备上的 Greengrass 组件用来访问的权限。 Amazon Web Services有关更多信息,请参阅 授权核心设备与Amazon服务