更新 AWS IoT Greengrass 核心软件 (OTA) - AWS IoT Greengrass
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

更新 AWS IoT Greengrass 核心软件 (OTA)

AWS IoT Greengrass 核心软件包含Greengrass 核组成部分和其他可选组件。您可以将核心和其他组件部署到您的设备上以执行软件无线 (OTA) 更新。此功能内置于 AWS IoT Greengrass Core 软件中。

OTA 更新可以更高效地执行以下操作:

  • 修复安全漏洞。

  • 解决软件稳定性问题。

  • 部署新的或改进的功能。

Requirements

以下要求适用于部署 AWS IoT Greengrass 核心软件的 OTA 更新:

  • Greengrass Core 设备必须具有到 AWS 云的连接才能接收部署。

  • 必须使用证书和密钥正确配置和预置 Greengrass 核心设备以便对 AWS IoT Core 和 AWS IoT Greengrass Core 进行身份验证。

  • AWS IoT Greengrass 核心软件必须作为系统服务进行设置和运行。如果您从 JAR 文件运行核心,OTA 更新不起作用,Greengrass.jar。有关更多信息,请参阅 将 AWS IoT Greengrass 配置为系统服务

核心设备的注意事项

在执行 OTA 更新之前,请注意对您更新的核心设备的影响:

  • Greengrass 核关闭。

  • 在核心设备上运行的所有组件也将关闭。如果这些组件写入到本地资源,除非正常关闭,否则它们可能会导致这些资源的状态不正确。组件可以使用进程间通信来告诉核心组件推迟更新,直到它们清理他们使用的资源。

  • 关闭核心组件时,核心设备将失去与 AWS 云和本地设备的连接。

  • 作为组件运行的长时间生存的 Lambda 函数将丢失其动态状态信息并丢弃所有待处理工作。

Greengrass Core 更新行为

当您部署组件时,AWS IoT Greengrass 会为该组件安装受支持的所有组件依赖关系的最新版本。因此,如果您将新设备添加到事物组,或者更新针对这些设备的部署,AWS 提供的公共组件的新修补程序版本可能会自动部署到您的核心设备。某些自动更新(如核心更新)可能会导致设备意外重新启动。

Greengrass 核组成部分更改后,AWS IoT Greengrass Core 软件(包括设备上的核心和所有其他组件)将重新启动以应用更改。当核心组件被更新时,它有一个对核心设备的影响。因此,请考虑控制何时将新的核心修补程序版本部署到您的设备。为此,您必须直接在部署中包含 Greengrass Core 组件。这意味着您在部署配置中包含该组件的特定版本,并且不依赖于组件依赖关系将该组件部署到您的设备。有关在组件配方中定义依赖关系的详细信息,请参阅配方格式

查看下表以了解基于您的操作和部署配置的 Greengrass 核心组件的更新行为。

操作 部署配置 核心更新行为
将新设备添加到现有部署所针对的事物组,而无需修改部署。

部署并不直接包括 Greengrass 核心。

部署直接包含至少一个 AWS 提供的组件,或者包括依赖 AWS 提供的组件或 Greengrass 核心的自定义组件。

在新设备上,安装满足所有组件相关性要求的最新修补程序版本的核心。

在现有设备上,不更新已安装的核心版本。
将新设备添加到现有部署所针对的事物组,而无需修改部署。

部署直接包含 Greengrass 核心的特定版本。

在新设备上,安装指定的核心版本。

在现有设备上,不更新已安装的核心版本。

创建新部署或修改现有部署。

部署并不直接包括 Greengrass 核心。

部署直接包含至少一个 AWS 提供的组件,或者包括依赖 AWS 提供的组件或 Greengrass 核心的自定义组件。

在所有目标设备上,安装符合所有组件依赖性要求的核心的最新修补程序版本,包括在添加到目标事物组的任何新设备上。
创建新部署或修改现有部署。 部署直接包含 Greengrass 核心的特定版本。 在所有目标设备上,安装指定的核心版本,包括添加到目标事物组的任何新设备。

执行 OTA 更新

要执行 OTA 更新,创建部署,其中包含核组成部分和要安装的版本。

注意

AWS 提供的几个公共组件依赖于特定的次要版本的 Greengrass 核。由于这种依赖关系,当您将 Greengrass 核心更新到新的次要版本时,必须更新这些公共组件。创建部署时,请检查哪些公共组件依赖于核心,并将这些组件更新为支持所需 Greengrass 核心版本的更高版本。

例如,流管理器组件支持 Greengrass 核的 v2.0.3 到 v2.0.x。流管理器 v2.0.8 支持 Greengrass 核的 v2.0.3 到 v2.1.x。由于这些版本限制,当您在运行流管理器 v2.0.7 的核心设备上更新到 v2.1 时,您必须将流管理器更新为 v2.0.8 或更高版本。