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