管理 AWS IoT IoT Greengrass 组件 - AWS IoT Greengrass
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

管理 AWS IoT IoT Greengrass 组件

AWS AWS IoT Greengrass 组件是您部署到 Greengrass 核心设备的软件模块。组件可以表示应用程序、运行时安装程序、库或您将在设备上运行的任何代码。您可以定义依赖于其他组件的组件。例如,您可以定义一个安装 Python 的组件,然后将该组件定义为运行 Python 应用程序的组件的依赖项。当您将组件部署到设备队列时,Greengrass 仅部署设备所需的软件模块。

您可以在 Greengrass 核心设备上开发和测试组件。这允许您创建和迭代 AWS AWS IoT Greengrass 软件,而无需与 AWS 云交互。完成组件版本后,您可以将其上传到云中的 AWS AWS IoT Greengrass,以便您和您的团队可以将组件部署到队列中的其他设备。有关如何部署组件的更多信息,请参阅将 AWS AWS IoT Greengrass 组件部署到设备

每个组件都由配方构件组成。

  • 诀窍

    每个组件都包含一个配方文件,该文件定义其元数据。该配方还指定组件的配置参数、组件依赖项、生命周期和平台兼容性。组件生命周期定义用于安装、运行和关闭组件的命令。有关更多信息,请参阅AWS AWS IoT Greengrass 组件配方参考

    您可以定义 JSONYAML 格式的配方。

  • Artifacts

    组件可以具有任意数量的构件,即组件二进制文件。构件可以包括脚本、编译代码、静态资源以及组件使用的任何其他文件。组件还可以使用组件依赖项中的构件。

AWS AWS IoT Greengrass 提供可在应用程序中使用的预构建组件,并部署到您的设备。例如,您可以使用流管理器组件将数据上传到各种 AWS 服务,也可以使用 CloudWatch指标组件将自定义指标发布到 Amazon CloudWatch 。有关更多信息,请参阅AWS 提供的组件

AWS AWS IoT Greengrass Core 软件以您在核心设备上配置的系统用户和组的身份运行组件ggc_user,例如 ggc_group 和 。这意味着组件具有该系统用户的权限。如果您使用不带主目录的系统用户,则组件无法使用使用主目录的运行命令或代码。这意味着,您无法使用 pip install some-library --user 命令来安装 Python 程序包,例如 。如果您按照入门教程设置核心设备,则您的系统用户没有主目录。有关如何配置运行 组件的 用户和组的更多信息,请参阅Greengrass 核心

组件生命周期定义 AWS AWS IoT Greengrass Core 软件用于安装和运行组件的阶段。每个阶段定义一个脚本和用于指定组件行为方式的其他信息。例如,当您安装组件时 AWS IoT IoT Greengrass 核心软件会运行该组件的Install生命周期脚本。核心设备上的组件具有以下生命周期状态:

  • NEW – 组件存在于核心设备上,但未安装。组件运行其引导脚本

  • INSTALLED – 组件安装在核心设备上。组件在运行其安装脚本时进入此状态。

  • STARTING – 组件正在核心设备上启动。组件在运行其启动脚本时进入此状态。如果启动成功,组件将进入 RUNNING 状态。

  • RUNNING – 组件正在核心设备上运行。当组件运行其运行脚本或具有来自其启动脚本的活动后台进程时,组件将进入此状态。

  • FINISHED – 组件成功运行且未运行。

  • STOPPING – 组件正在停止。组件在运行其关闭脚本时进入此状态。

  • ERRORED – 组件遇到错误。当组件进入此状态时,它将运行其恢复脚本。然后,组件重新启动以尝试恢复正常使用。如果组件在运行不成功的情况下三次进入 ERRORED 状态,则组件将变为 BROKEN

  • BROKEN – 组件多次遇到错误且无法恢复。您必须再次部署组件以修复它。

注意

AWS IoT Greengrass 使用组件的语义版本。语义版本遵循 major.minor.patch 编号系统。例如,version 1.0.0 表示组件的第一个主要版本。有关更多信息,请参阅语义版本规范

重要

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

为防止对设备上运行的组件进行意外更新,我们建议您在创建部署时直接包含该组件的首选版本。有关 AWS AWS IoT Greengrass 核心软件的更新行为的更多信息,请参阅更新 AWS IoT IoT Greengrass 核心软件 (OTA)