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

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

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

AWS IoT Greengrass核心软件包括 Greengrass nucleus 组件和其他可选组件,您可以将这些组件部署到设备上以 over-the-air 执行软件的 (OTA) 更新。此功能内置在 AWS IoT Greengrass Core 软件中。

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

  • 修复安全漏洞。

  • 解决软件稳定性问题。

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

要求

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

  • Greengrass 核心设备必须连接到才能AWS Cloud接收部署。

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

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

核心设备的注意事项

在执行 OTA 更新之前,请注意对您更新的核心设备及其连接的客户端设备的影响:

  • Greengrass 原子核关闭了。

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

  • 当 nucleus 组件关闭时,核心设备会失去与AWS Cloud和本地设备的连接。核心设备在关闭时不会路由来自客户端设备的消息。

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

Greengrass 核更新行为

部署组件时,AWS IoT Greengrass会安装该组件所有依赖项的最新支持版本。因此,如果您向事物组中添加新设备或更新针对这些设备的部署,则AWS提供的公共组件的新补丁版本可能会自动部署到您的核心设备上。某些自动更新(例如 nucleus 更新)可能会导致您的设备意外重启。

Greengrass nucleus 组件的版本发生变化时,Core 软件(包括核心和设备AWS IoT Greengrass上的所有其他组件)将重新启动以应用更改。由于更新 nucleus 组件时会对核心设备产生影响,因此您可能需要控制何时将新 nucleus 补丁版本部署到您的设备。为此,您必须直接在部署中包含 Greengrass nucleus 组件。直接包含组件意味着您在部署配置中包含该组件的特定版本,并且不依赖组件依赖项将该组件部署到您的设备上。有关在组件配方中定义依赖关系的更多信息,请参阅食谱格式

根据您的操作和部署配置,查看下表,了解 Greengrass nucleus 组件的更新行为。

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

该部署不直接包括 Greengrass 核。

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

在新设备上,安装符合所有组件依赖要求的最新补丁版本的 nucleus。

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

该部署直接包括特定版本的 Greengrass 核。

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

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

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

该部署不直接包括 Greengrass 核。

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

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

执行 OTA 更新

要执行 OTA 更新,请创建一个包含 n ucleus 组件和要安装的版本的部署