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

Amazon IoT Greengrass Version 12023 年 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. 从上的TrafficLight 示例文件夹中 GitHub,将carAggregator.py文件下载到该文件car_aggregator夹。这是您的 Lambda 函数代码。

    注意

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

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

    dynamodb = boto3.resource('dynamodb', region_name='us-east-1')
  4. 在命令行窗口中运行以下命令以在car_aggregator文件夹中安装Amazon SDK for Python (Boto3)软件包及其依赖关系。Greengrass Lambda 函数使用Amazon SDK 访问其他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. 选择 upload,然后选择您的car_aggregator.zip部署软件包。然后,选择 Save (保存)

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

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

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

    4. 选择保存

  8. 发布 Lambda 函数,然后创建名为的别名GG_CarAggregator。有关 step-by-step 说明,请参阅模块 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. 对于 “已固定”,选择 “”。

    6. 选择添加 Lambda 函数

    注意

    您可以从早期模块中删除其他 Lambda 函数。