本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
开发Amazon IoT Greengrass组件
Amazon IoT Greengrass 组件是您部署到 Greengrass 核心设备的软件模块。组件可以表示应用程序、运行时安装程序、库或您将在设备上运行的任何代码。您可以定义依赖于其他组件的组件。例如,您可以定义一个安装 Python 的组件,然后将该组件定义为运行 Python 应用程序的组件的依赖关系。当您将组件部署到设备队列时,Greengrass 仅部署设备所需的软件模块。
您可以在 Greengrass 核心设备上开发和测试组件。因此,你可以创建和迭代Amazon IoT Greengrass软件而无需与Amazon Web Services 云. 当你完成组件的一个版本后,你可以将其上传到Amazon IoT Greengrass在云中,这样你和你的团队就可以将组件部署到你的队列中的其他设备。有关如何部署组件的更多信息,请参阅将Amazon IoT Greengrass组件部署到设备.
每个组件都由食谱和人工制品.
-
配方
每个组件都包含一个配方文件,用于定义其元数据。该配方还指定了组件的配置参数、组件依赖项、生命周期和平台兼容性。组件生命周期定义了安装、运行和关闭组件的命令。有关更多信息,请参阅 Amazon IoT Greengrass组件配方参考。
-
Artifacts
组件可以有任意数量的工件,它们是组件二进制文件。工件可以包括脚本、编译的代码、静态资源以及组件使用的任何其他文件。组件还可以消耗来自组件依赖项的工件。
Amazon IoT Greengrass提供了可以在应用程序中使用并部署到设备的预构建组件。例如,您可以使用流式管理器组件将数据上传到各个Amazon服务,或者你可以使用 CloudWatch 用于将自定义指标发布到 Amazon CloudWatch 的指标组件。有关更多信息,请参阅 Amazon-提供的组件。
Amazon IoT Greengrass策划 Greengrass 组件的索引,称为 Greengrass 软件目录。此目录跟踪 Greengrass 社区开发的 Greengrass 组件。从此目录中,您可以下载、修改和部署组件以创建 Greengrass 应用程序。有关更多信息,请参阅 社区组件。
这些区域有:Amazon IoT Greengrass核心软件以系统用户和组的身份运行组件,例如ggc_user
和ggc_group
,您可以在核心设备上进行配置。这意味着组件具有该系统用户的权限。如果您使用没有主目录的系统用户,则组件不能使用运行命令或使用主目录的代码。这意味着,您不能使用pip install some-library --user
例如,用于安装 Python 软件包的命令。如果您遵循的是入门教程要设置核心设备,则系统用户没有主目录。有关如何配置运行组件的用户和组的详细信息,请参阅配置运行组件的用户.
Amazon IoT Greengrass对组件使用语义版本。语义版本遵循重大的.未成年人.补丁号码系统。例如,版本1.0.0
代表组件的第一个主要版本。有关更多信息,请参阅 。Semantic 版本规范
主题
组件周期
这些区域有:组件周期定义的阶段Amazon IoT Greengrass核心软件用于安装和运行组件。每个阶段都定义一个脚本和其他信息,用于指定组件的行为方式。例如,当您安装组件时,Amazon IoT GreengrassCore 软件运行Install
该组件的生命周期脚本。核心设备上的组件具有以下生命周期状态:
-
NEW
— 组件的配方和工件已加载到核心设备上,但组件尚未安装。组件进入此状态后,它会运行安装脚本. -
INSTALLED
— 该组件安装在核心设备上。组件在运行它之后进入此状态安装脚本. -
STARTING
— 该组件正在核心设备上启动。组件在运行时进入此状态Startup 脚本. 如果启动成功,组件将进入RUNNING
状态。 -
RUNNING
— 该组件在核心设备上运行。组件在运行时进入此状态运行脚本或者当它有启动脚本中的活动后台进程时。 -
FINISHED
— 组件成功运行并完成了运行。 -
STOPPING
— 组件正在停止。组件在运行时进入此状态关闭脚本. -
ERRORED
— 组件遇到了错误。当组件进入此状态时,它会运行恢复脚本. 然后,组件将重新启动以尝试恢复正常使用。如果组件进入ERRORED
状态三次没有成功运行,组件变成BROKEN
. -
BROKEN
— 组件多次遇到错误,无法恢复。必须再次部署组件才能修复它。
组件类型
这些区域有:组件类型指定如何Amazon IoT Greengrass核心软件运行该组件。组件可能具有以下类型:
-
Nucleus(
aws.greengrass.nucleus
)Greengrass 核心是提供最低功能的组件Amazon IoT GreengrassCore 软件。有关更多信息,请参阅 Greengrass 核。
-
插件(
aws.greengrass.plugin
)Greengrass 核心在与核心相同的 Java 虚拟机 (JVM) 中运行插件组件。当你更改核心设备上的插件组件的版本时,核心会重新启动。要安装和运行插件组件,必须将 Greengrass Nucleus 配置为作为系统服务运行。有关更多信息,请参阅 将 Greengrass 核心配置为系统服务。
由提供的几个组件Amazon是插件组件,使它们能够直接与 Greengrass 核心连接。插件组件使用与 Greengrass 核心相同的日志文件。有关更多信息,请参阅 监控Amazon IoT Greengrass日志。
-
泛型(
aws.greengrass.generic
)如果 Greengrass Nucleus 会运行通用组件的生命周期脚本,如果该组件定义了生命周期。
此类型是自定义组件的默认类型。
-
Lambda(
aws.greengrass.lambda
)Greengrass 核心使用Lambda 启动程序组件.
当您从 Lambda 函数创建组件时,该组件具有此类型。有关更多信息,请参阅 运行Amazon Lambda函数。
我们建议您不要在配方中指定组件类型。Amazon IoT Greengrass在创建组件时为您设置类型。