创建并配置 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,这样可以添加重要的新功能支持其他平台

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

创建并配置 Lambda 函数

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

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

  2. 从 GitHub 上的 TrafficLight 示例文件夹中,将 carAggregator.py 文件下载到 car_aggregator 文件夹。这是您的 Lambda 函数代码。

    注意

    为方便起见,此 Python 示例文件存储在 Amazon IoT Greengrass 核心开发工具包存储库中,但它不使用 Amazon IoT Greengrass 核心开发工具包。

  3. 如果您不在美国东部(弗吉尼亚北部)区域工作,请打开 carAggregator.py,并将以下行中的 region_name 更改为当前在 Amazon IoT 控制台中选择的 Amazon Web Services 区域。有关支持的 Amazon Web Services 区域,请参见 Amazon Web Services 一般参考 中的 Amazon IoT Greengrass

    dynamodb = boto3.resource('dynamodb', region_name='us-east-1')
  4. 命令行窗口中运行以下命令,以将 Amazon SDK for Python (Boto3) 软件包及其依赖项安装到 car_aggregator 文件夹中。Greengrass Lambda 函数使用 Amazon 开发工具包访问其他 Amazon 服务。(对于 Windows,请使用提升的命令提示符。)

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

    这会显示类似于下面的目录列表:

    
                            显示 carAggregator.py 的目录列表的屏幕截图。
  5. car_aggregator.zip 文件夹的内容压缩到一个名为 car_aggregator.zip 的文件中。(压缩文件夹的内容,而不是文件夹。) 此即 Lambda 函数部署程序包。

  6. 在 Lambda 控制台中,创建一个名为 GG_Car_Aggregator 的函数,然后按下面所示设置其余字段:

    • 对于 Runtime (运行时),选择 Python 3.7

    • 对于权限,请保留默认设置。这将创建一个授予基本 Lambda 权限的执行角色。此角色未由 Amazon IoT Greengrass 使用。

    选择 Create function(创建函数)。

    
                            “Basic information (基本信息)”部分中,“Function name (函数名称)”设置为“GG_Car_Aggregator”,“Runtime (运行时)”设置为“Python 3.7”。
  7. 上传 Lambda 函数部署软件包:

    1. 代码选项卡上的代码源下,选择上传自。从下拉列表中选择 .zip 文件

      
                “上传自”下拉列表中突出显示了.zip 文件。
    2. 选择上传,然后选择您的 car_aggregator.zip 部署包。然后,选择 Save (保存)

    3. 在函数的代码选项卡中,在运行时设置下选择编辑,然后输入以下值。

      • 对于 Runtime (运行时),选择 Python 3.7

      • 对于 Handler (处理程序),输入 carAggregator.function_handler

    4. 选择 Save(保存)。

  8. 发布 Lambda 函数,然后创建一个名为 GG_CarAggregator 的别名。有关分步说明,请参阅模块 3(第 1 部分)中的发布 Lambda 函数创建别名步骤。

  9. 在 Amazon IoT 控制台中,将刚才创建的 Lambda 函数添加到 Amazon IoT Greengrass 组:

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

    2. 对于 Lambda 函数,请选择 gg_car_Aggregator

    3. 对于 Lambda 函数版本,选择您发布的版本的别名。

    4. 对于 Memory limit (内存限制),输入 64 MB

    5. 对于已固定,选择 True

    6. 选择添加 Lambda 函数

    注意

    您可以删除先前模块中的其他 Lambda 函数。