为 Lambda 配置 AWS IoT Greengrass 函数 - AWS IoT Greengrass

您正在查看 AWS AWS IoT Greengrass 版本 1 的文档。AWS IoT Greengrass 版本 2 是 AWS AWS IoT Greengrass 的最新主要版本。有关使用 AWS AWS IoT Greengrass 版本 2 的更多信息,请参阅 AWS AWS IoT Greengrass V2 开发人员指南

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

为 Lambda 配置 AWS IoT Greengrass 函数

现在,您已准备好为 Lambda 配置您的 AWS IoT Greengrass. 函数。

在此步骤中,您:

  • 使用 AWS IoT 控制台 将 Lambda 函数添加到 Greengrass 组。

  • 为 Lambda 函数配置特定于组的设置。

  • 向该组添加订阅,允许 Lambda 函数向 AWS IoT. 发布 MQTT 消息。

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

 

  1. 在 AWS IoT 控制台 的导航窗格中,依次选择 GreengrassClassic (V1)Groups (组)

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

  3. 在组配置页面上,选择 Lambdas,然后选择 Add Lambda.

    
                            突出显示“Lambdas”和“Add Lambda (添加 Lambda)”的组页面。
  4. 选择 Use existing Lambda.

    
                            突出显示了“Use existing Lambda (使用现有的 Lambda)”按钮的“Add a Lambda to your Greengrass Group (将 Lambda 添加到 Greengrass 组)”的屏幕截图。
  5. 搜索您在上一步中创建的 Lambda 的名称 (Greengrass_HelloWorld,而不是别名名称),选择它,然后选择 Next (下一步):

    
                            突出显示了“Greengrass_HelloWorld”和“Next (下一步)”按钮的“Use existing Lambda (使用现有的 Lambda)”的屏幕截图。
  6. 对于版本,选择 Alias: HelloWorld (别名: GG_HelloWorld),然后选择 Finish。 您应该在组中看到 HelloWorld Lambda 函数,使用 GG_HelloWorld 别名。

  7. 选择省略号 (),然后选择编辑配置:

    
                            MyFirstGroup 突出显示了省略号和“编辑配置”的 的屏幕截图。
  8. Group-specific Lambda configuration (组特定的 Lambda 配置) 页面上,进行以下更改:

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

    • 对于 Lambda 生命周期,选择 Make this function long-lived and keep it running indefinitely (使此函数长时间生存,保持其无限期运行).

     

    
                            选择了“25”(秒) 和“Make this function long-lived and keep it running indefinitely (使此函数长时间生存,保持其无限期运行)”单选按钮的配置页面的屏幕截图。
    注意

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

  9. 保留所有其他字段(例如 Run as (运行方式)、Containerization (容器化) 和 Input payload data type (输入负载数据类型))的默认值,然后选择 Update (更新) 以保存更改。有关 Lambda 函数属性的信息,请参阅使用组特定的配置控制 Greengrass Lambda 函数的执行.

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

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

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

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

    注意

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

    注意

    目前,订阅主题筛选条件不允许主题中使用多个+字符。主题筛选条件仅允许主题末尾出现单个#字符。

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

  10. 在组配置页面中,选择订阅,然后选择添加第一个订阅.

    
                            突出显示了“Subscription (订阅)”和“Add your first Subscription (添加第一个订阅)”的“Group configuration (组配置)”页面的屏幕截图。

    有关说明如何使用 创建订阅的示例AWS CLI,请参阅 https://awscli.amazonaws.com/v2/documentation/api/latest/reference/greengrass/create-subscription-definition.html 命令参考中的 AWS CLI create-subscription-definition。

  11. 选择源中,选择选择. 然后,在 Lambdas 选项卡上,选择 HelloWorld 作为源。

    
                            突出显示了“Lambdas”和“Greengrass_HelloWorld”的“Select a source (选择源)”页面的屏幕截图。
  12. 对于选择目标,选择选择. 然后,在 Service (服务) 选项卡上,选择 IoT Cloud (云),然后选择 Next (下一步)。

    
                            突出显示了“Services (服务)”选项卡IoT、“Cloud (云)”和“Next (下一步)”按钮的“Select a target (选择目标)”选项卡。
  13. 对于 Topic filter (主题筛选条件),输入 hello/world,然后选择 Next (下一步).

    
                            “Topic filter (主题筛选条件)”下突出显示了“hello/world”的屏幕截图。
  14. 选择 Finish.

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

    1. 在组配置页面上,选择 Settings (设置).

    2. 对于 Local logs configuration (本地日志配置),选择 Edit (编辑).

    3. Configure Group logging (配置组日志记录) 页面上,选择 Add another log type. (添加其他日志类型)。

    4. 对于事件源,选择 User Lambdas (用户 Lambdas)Greengrass system (Greengrass 系统),然后选择 Update (更新).

    5. 保留日志记录级别和磁盘空间限制的默认值,然后选择 Save (保存).

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

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

    注意

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

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

    1. 在组设置页面上的流管理器下,选择编辑.

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