为 Amazon IoT Greengrass 配置 Lambda 函数 - Amazon IoT Greengrass
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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 消息。

  • 配置该组的本地日志设置。

 

  1. 在 Amazon IoT 控制台导航窗格的管理下,展开 Greengrass 设备,然后选择组 (V1)

  2. Greengrass 组下,选择您在模块 2 中创建的组。

  3. 在组配置页面上,选择 Lambda 函数选项卡,然后向下滚动到我的 Lambda 函数部分,然后选择添加 Lambda 函数

  4. 选择您在上一步中创建的 Lambda 函数的名称(Greengrass_HelloWorld,而非别名)。

  5. 对于版本,选择 别名:GG_HelloWorld

  6. Lambda 函数配置部分中,进行以下更改:

    • 系统用户和组设置为使用组默认值

    • Lambda 函数容器化设置为 使用组默认值

    • 超时设置为 25 秒。此 Lambda 函数在每次调用前会休眠 5 秒。

    • 对于已固定,选择 True

     

    注意

    长时间生存(或固定)的 Lambda 函数在 Amazon IoT Greengrass 启动后自动启动并在自己的容器中保持运行。这与按需 Lambda 函数相反,后者在调用时启动,并在没有要运行的任务时停止。有关更多信息,请参阅Greengrass Lambda 函数的生命周期配置

  7. 选择 添加 Lambda 函数以保存您的更改。有关 Lambda 函数属性的信息,请参阅 使用组特定的配置控制 Greengrass Lambda 函数的执行

    接下来,创建一个允许 Lambda 函数 向 Amazon IoT Core 发送 MQTT 消息的订阅。

    Greengrass Lambda 函数可以与以下对象交换 MQTT 消息:

    该组使用订阅来控制这些实体可以如何互相通信。订阅提供可预测的交互和一层安全性。

    订阅由源、目标和主题组成。源是消息的发起方,目标是消息的目的地。主题允许您筛选从源发送到目标的数据。源或目标可以是 Greengrass 设备、Lambda 函数、连接器、设备影子或 Amazon IoT Core。

    注意

    订阅是定向的,也就是消息流为特定方向:从源流到目标。要允许双向通信,您必须设置两个订阅。

    注意

    目前,订阅主题筛选器不允许在一个主题中使用多个 + 字符。主题筛选器只允许在主题的结尾有一个 # 字符。

    Greengrass_HelloWorld Lambda 函数只将消息发送到 Amazon IoT Core 中的 hello/world 主题,因此,您只需要创建一个从 Lambda 函数到 Amazon IoT Core 的订阅。您可以在下一步中创建此订阅。

  8. 在组配置页面中,选择订阅选项卡,然后选择添加订阅

    有关向您展示如何使用 Amazon CLI 创建订阅的示例,请参阅《Amazon CLI 命令参考》中的 create-subscription-definition

  9. 源类型中,选择 Lambda 函数,对于,选择 Greengrass_HelloWorld

  10. 对于目标类型,选择服务,对于目标,选择 IoT 云

  11. 对于主题筛选条件字段中,输入 hello/world,然后选择订阅

  12. 配置组的日志记录设置。在本教程中,您将配置 Amazon IoT Greengrass 系统组件和用户定义的 Lambda 函数,以将日志写入核心设备的文件系统。

    1. 在组配置页面上,选择日志选项卡。

    2. 本地日志配置部分,选择 编辑

    3. 编辑本地日志配置对话框中,保留日志级别和存储大小的默认值,然后选择保存

    您可以使用日志解决运行本教程时可能遇到的任何问题。在排查问题时,您可以暂时将日志记录级别更改为调试。有关更多信息,请参阅访问文件系统日志

  13. 如果核心设备上未安装 Java 8 运行时,您必须安装它或禁用流管理器。

    注意

    此教程不使用流管理器,但它将使用默认情况下启用流管理器的 Default Group creation (默认组创建) 工作流。如果已启用流管理器,但未安装 Java 8,则组部署将失败。有关更多信息,请参阅流管理器要求

    要禁用流管理器,请执行以下操作:

    1. 在组设置页面上,选择 Lambda 函数选项卡。

    2. 系统 Lambda 函数部分下,选择流管理器,然后选择编辑

    3. 选择禁用,然后选择保存