本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
更新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 组件和要安装的版本的部署。