

终止支持通知：2026 年 10 月 7 日， AWS 将停止对的支持。 AWS IoT Greengrass Version 1 2026 年 10 月 7 日之后，您将无法再访问这些 AWS IoT Greengrass V1 资源。如需了解更多信息，请访问[迁移自 AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html)。

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

# 将 Lambda 函数配置为 AWS IoT Greengrass
<a name="config-lambda"></a>

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

在此步骤中，您：
+ 使用 AWS IoT 控制台将 Lambda 函数添加到您的 Greengrass 群组。
+ 为 Lambda 函数配置特定于组的设置。
+ 向该组添加订阅，允许 Lambda 函数向 AWS IoT发布 MQTT 消息。
+ 配置该组的本地日志设置。

 

1. <a name="console-gg-groups"></a>**在 AWS IoT 控制台导航窗格的**管理**下，展开 **Greengrass** 设备，然后选择群组 (V1)。**

1. 在 **Greengrass 组**下，选择您在[模块 2](module2.md) 中创建的组。

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

1. 选择您在上一步中创建的 Lambda 函数的名称（**Greengrass\$1 HelloWorld**，而不是别名）。

1. 对于版本，请选择**别名：GG\$1 HelloWorld**。

1. 在 **Lambda 函数配置**部分中，进行以下更改：
   + 将**系统用户和组**设置为**使用组默认值**。
   + 将 **Lambda 函数容器化**设置为 **使用组默认值**。
   + 将**超时**设置为 25 秒。此 Lambda 函数在每次调用前会休眠 5 秒。
   + 对于**已固定**，选择 **True**。

    
**注意**  
<a name="long-lived-lambda"></a>*长寿命*（或*固定*）的 Lambda 函数在启动后 AWS IoT Greengrass 自动启动，并继续在自己的容器中运行。这与*按需* Lambda 函数相反，后者在调用时启动，并在没有要运行的任务时停止。有关更多信息，请参阅 [Greengrass Lambda 函数的生命周期配置](lambda-functions.md#lambda-lifecycle)。

1. 选择 **添加 Lambda 函数**以保存您的更改。有关 Lambda 函数属性的信息，请参阅 [使用组特定的配置控制 Greengrass Lambda 函数的执行](lambda-group-config.md)。

   接下来，创建一个允许 Lambda 函数 向 AWS IoT Core发送 [MQTT](http://mqtt.org/) 消息的订阅。

   Greengrass Lambda 函数可以与以下对象交换 MQTT 消息：
   + Greengrass 组中的[设备](what-is-gg.md#greengrass-devices)。
   + 组中的[连接器](connectors.md)。
   + 组中的其他 Lambda 函数。
   + AWS IoT Core.
   + 本地影子服务。有关更多信息，请参阅 [模块 5：与设备影子交互](module5.md)。

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

   订阅由源、目标和主题组成。源是消息的发起方，目标是消息的目的地。主题允许您筛选从源发送到目标的数据。源或目标可以是 Greengrass 设备、Lambda 函数、连接器、设备影子或 AWS IoT Core。
**注意**  
订阅是定向的，也就是消息流为特定方向：从源流到目标。要允许双向通信，您必须设置两个订阅。
**注意**  
 目前，订阅主题筛选器不允许在一个主题中使用多个 `+` 字符。主题筛选器只允许在主题的结尾有一个 `#` 字符。

   `Greengrass_HelloWorld`Lambda 函数仅向中的`hello/world`主题发送消息 AWS IoT Core，因此您只需从 Lambda 函数创建一个订阅即可。 AWS IoT Core您可以在下一步中创建此订阅。

1. 在组配置页面中，选择**订阅**选项卡，然后选择**添加订阅**。

   有关演示如何使用创建订阅的示例 AWS CLI，请参阅《*AWS CLI 命令参考*》[create-subscription-definition](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/greengrass/create-subscription-definition.html)中的。

1. **在**源类型**中，选择 **Lambda 函数**，对于**源**，选择 Greengrass\$1。HelloWorld**

1. 对于**目标类型**，选择**服务**，对于**目标**，选择 **IoT 云**。

1. 对于**主题筛选条件**字段中，输入 **hello/world**，然后选择**订阅**。

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

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

   1. 在**本地日志配置**部分，选择 **编辑**。

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

   您可以使用日志解决运行本教程时可能遇到的任何问题。在排查问题时，您可以暂时将日志记录级别更改为**调试**。有关更多信息，请参阅 [访问文件系统日志](greengrass-logs-overview.md#gg-logs-local)。

1. <a name="disable-stream-manager-no-java"></a>如果核心设备上未安装 Java 8 运行时，您必须安装它或禁用流管理器。
**注意**  
此教程不使用流管理器，但它将使用默认情况下启用流管理器的 **Default Group creation (默认组创建)** 工作流。如果已启用流管理器，但未安装 Java 8，则组部署将失败。有关更多信息，请参阅[流管理器要求](stream-manager.md#stream-manager-requirements)。

   要禁用流管理器，请执行以下操作：

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

   1. 在**系统 Lambda 函数**部分下，选择**流管理器**，然后选择**编辑**。

   1. 选择**禁用**，然后选择**保存**。