Amazon IoT Greengrass Version 1 2023 年 6 月 30 日进入延长寿命阶段。有关更多信息,请参阅 Amazon IoT Greengrass V1 维护策略。在此日期之后,将 Amazon IoT Greengrass V1 不会发布提供功能、增强功能、错误修复或安全补丁的更新。在上面运行的设备 Amazon IoT Greengrass V1 不会中断,将继续运行并连接到云端。我们强烈建议您迁移到 Amazon IoT Greengrass Version 2,这样可以添加重要的新功能并支持其他平台。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为 Amazon IoT Greengrass 配置 Lambda 函数
现在,您已准备好为 Amazon IoT Greengrass 配置您的 Lambda 函数。
在此步骤中,您:
-
使用 Amazon IoT 控制台将 Lambda 函数添加到 Greengrass 组。
-
为 Lambda 函数配置特定于组的设置。
-
向该组添加订阅,允许 Lambda 函数向 Amazon IoT 发布 MQTT 消息。
-
配置该组的本地日志设置。
在 Amazon IoT 控制台导航窗格的管理下,展开 Greengrass 设备,然后选择组 (V1)。
-
在 Greengrass 组下,选择您在模块 2 中创建的组。
-
在组配置页面上,选择 Lambda 函数选项卡,然后向下滚动到我的 Lambda 函数部分,然后选择添加 Lambda 函数。
-
选择您在上一步中创建的 Lambda 函数的名称(Greengrass_HelloWorld,而非别名)。
-
对于版本,选择 别名:GG_HelloWorld。
-
在 Lambda 函数配置部分中,进行以下更改:
-
将系统用户和组设置为使用组默认值。
-
将 Lambda 函数容器化设置为 使用组默认值。
-
将超时设置为 25 秒。此 Lambda 函数在每次调用前会休眠 5 秒。
-
对于已固定,选择 True。
注意
长时间生存(或固定)的 Lambda 函数在 Amazon IoT Greengrass 启动后自动启动并在自己的容器中保持运行。这与按需 Lambda 函数相反,后者在调用时启动,并在没有要运行的任务时停止。有关更多信息,请参阅 Greengrass Lambda 函数的生命周期配置。
-
-
选择 添加 Lambda 函数以保存您的更改。有关 Lambda 函数属性的信息,请参阅 使用组特定的配置控制 Greengrass Lambda 函数的执行。
接下来,创建一个允许 Lambda 函数 向 Amazon IoT Core 发送 MQTT
消息的订阅。 Greengrass Lambda 函数可以与以下对象交换 MQTT 消息:
-
Greengrass 组中的设备。
-
组中的连接器。
-
组中的其他 Lambda 函数。
-
Amazon IoT Core.
-
本地影子服务。有关更多信息,请参阅 模块 5:与设备影子交互。
该组使用订阅来控制这些实体可以如何互相通信。订阅提供可预测的交互和一层安全性。
订阅由源、目标和主题组成。源是消息的发起方,目标是消息的目的地。主题允许您筛选从源发送到目标的数据。源或目标可以是 Greengrass 设备、Lambda 函数、连接器、设备影子或 Amazon IoT Core。
注意
订阅是定向的,也就是消息流为特定方向:从源流到目标。要允许双向通信,您必须设置两个订阅。
注意
目前,订阅主题筛选器不允许在一个主题中使用多个
+
字符。主题筛选器只允许在主题的结尾有一个#
字符。Greengrass_HelloWorld
Lambda 函数只将消息发送到 Amazon IoT Core 中的hello/world
主题,因此,您只需要创建一个从 Lambda 函数到 Amazon IoT Core 的订阅。您可以在下一步中创建此订阅。 -
-
在组配置页面中,选择订阅选项卡,然后选择添加订阅。
有关向您展示如何使用 Amazon CLI 创建订阅的示例,请参阅《Amazon CLI 命令参考》中的 create-subscription-definition
。 -
在源类型中,选择 Lambda 函数,对于源,选择 Greengrass_HelloWorld。
-
对于目标类型,选择服务,对于目标,选择 IoT 云。
-
对于主题筛选条件字段中,输入
hello/world
,然后选择订阅。 -
配置组的日志记录设置。在本教程中,您将配置 Amazon IoT Greengrass 系统组件和用户定义的 Lambda 函数,以将日志写入核心设备的文件系统。
-
在组配置页面上,选择日志选项卡。
-
在本地日志配置部分,选择 编辑。
-
在编辑本地日志配置对话框中,保留日志级别和存储大小的默认值,然后选择保存。
您可以使用日志解决运行本教程时可能遇到的任何问题。在排查问题时,您可以暂时将日志记录级别更改为调试。有关更多信息,请参阅 访问文件系统日志。
-
-
如果核心设备上未安装 Java 8 运行时,您必须安装它或禁用流管理器。
注意
此教程不使用流管理器,但它将使用默认情况下启用流管理器的 Default Group creation (默认组创建) 工作流。如果已启用流管理器,但未安装 Java 8,则组部署将失败。有关更多信息,请参阅流管理器要求。
要禁用流管理器,请执行以下操作:
-
在组设置页面上,选择 Lambda 函数选项卡。
-
在系统 Lambda 函数部分下,选择流管理器,然后选择编辑。
-
选择禁用,然后选择保存。
-