

终止支持通知：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 函数
<a name="create-config-lambda"></a>

在本步骤中，您将创建一个 Lambda 函数，该函数将跟踪通过交通信号灯的汽车的数量。每当 `GG_TrafficLight` 影子状态更改为 `G` 时，Lambda 函数都将模拟通过的随机数量的汽车（从 1 到 20）。每当 `G` 灯第三次改变，Lambda 函数都会将基本统计数据（如最小值和最大值）发送到 DynamoDB 表。

1. 在您的计算机上，创建一个名为 `car_aggregator` 的文件夹。

1. 从[TrafficLight ](https://github.com/aws/aws-greengrass-core-sdk-python/tree/master/examples/TrafficLight)示例文件夹中 GitHub，将`carAggregator.py`文件下载到该文件`car_aggregator`夹。这是您的 Lambda 函数代码。
**注意**  
为方便起见，此示例 Python 文件存储在 AWS IoT Greengrass 核心 SDK 存储库中，但它不使用 AWS IoT Greengrass 核心 SDK。

1. 如果您不在美国东部（弗吉尼亚北部）地区工作，请打开以下行`carAggregator.py`并将其更改`region_name`为 AWS IoT 主机中当前选择的区域。 AWS 区域 有关支持的列表 AWS 区域，请参阅[AWS IoT Greengrass](https://docs.aws.amazon.com/general/latest/gr/greengrass.html)中的*Amazon Web Services 一般参考*。

   ```
   dynamodb = boto3.resource('dynamodb', region_name='us-east-1')
   ```

1. 在[命令行](https://en.wikipedia.org/wiki/Command-line_interface)窗口中运行以下命令，以将 [适用于 Python (Boto3) 的 AWS SDK](https://github.com/boto/boto3/blob/develop/README.rst) 软件包及其依赖项安装到 `car_aggregator` 文件夹中。Greengrass Lambda 函数使用软件开发工具包来访问其他服务。 AWS AWS （对于 Windows，请使用[提升的命令提示符](https://technet.microsoft.com/en-us/library/cc947813(v=ws.10).aspx)。）

   ```
   pip install boto3 -t path-to-car_aggregator-folder
   ```

   这会显示类似于下面的目录列表：  
![\[显示 carAggregator.py 的目录列表的屏幕截图。\]](http://docs.aws.amazon.com/zh_cn/greengrass/v1/developerguide/images/gg-get-started-095.png)

1. 将 `car_aggregator``.zip` 文件夹的内容压缩到一个名为 `car_aggregator.zip` 的文件中。（压缩文件夹的内容，而不是文件夹。） 此即 Lambda 函数部署程序包。

1. 在 Lambda 控制台中，创建一个名为 **GG\$1Car\$1Aggregator** 的函数，然后按下面所示设置其余字段：
   + 对于**运行时系统**，选择 **Python 3.7**。
   + 对于**权限**，请保留默认设置。这将创建一个授予基本 Lambda 权限的执行角色。此角色未被使用 AWS IoT Greengrass。

   选择**创建函数**。  
![\[“Basic information (基本信息)”部分中，“Function name (函数名称)”设置为“GG_Car_Aggregator”，“Runtime (运行时)”设置为“Python 3.7”。\]](http://docs.aws.amazon.com/zh_cn/greengrass/v1/developerguide/images/gg-get-started-095.5.png)

1. 上传 Lambda 函数部署软件包：

   1. <a name="lambda-console-upload"></a>在**代码**选项卡上的**代码源**下，选择**上传自**。从下拉列表中选择 **.zip 文件**。  
![\[“上传自”下拉列表中突出显示了.zip 文件。\]](http://docs.aws.amazon.com/zh_cn/greengrass/v1/developerguide/images/lra-console/upload-deployment-package.png)

   1. 选择上传，然后选择您的 `car_aggregator.zip` 部署包。然后，选择**保存**。

   1. <a name="lambda-console-runtime-settings-para"></a>在函数的**代码**选项卡中，在**运行时设置**下选择**编辑**，然后输入以下值。
      + 对于**运行时系统**，选择 **Python 3.7**。
      + 对于**处理程序**，输入 **carAggregator.function\$1handler**。

   1. 选择**保存**。

1. 发布 Lambda 函数，然后创建一个名为 **GG\$1CarAggregator** 的别名。有关 step-by-step说明，请参阅在模块 3（第 1 部分）中[发布 Lambda 函数](create-lambda.md#publish-function-version)和[创建别名的](create-lambda.md#create-version-alias)步骤。

1. 在 AWS IoT 控制台中，将您刚刚创建的 Lambda 函数添加到您的 AWS IoT Greengrass 群组中：

   1. 在组配置页面上，选择 **Lambda 函数**，然后在**我的 Lambda 函数**下选择**添加**。

   1. 对于 **Lambda 函数**，请选择 **gg\$1car\$1Aggregator**。

   1. 对于 **Lambda 函数版本**，选择您发布的版本的别名。

   1. 对于**内存限制**，输入 **64 MB**。

   1. 对于**已固定**，选择 **True**。

   1. 选择**添加 Lambda 函数**。
**注意**  
您可以删除先前模块中的其他 Lambda 函数。