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

您正在查看Amazon IoT Greengrass Version 1.Amazon IoT Greengrass Version 2是最新的主要版本Amazon IoT Greengrass. 有关使用Amazon IoT Greengrass V2,请参阅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 Web Services 区域 当前在Amazon IoT控制台。有关支持的 Amazon Web Services 区域 s,请参阅Amazon IoT Greengrass中的Amazon Web Services 一般参考.

    dynamodb = boto3.resource('dynamodb', region_name='us-east-1')
  4. 命令行窗口以安装Amazon SDK for Python (Boto3)软件包及其依赖关系car_aggregatorfolder。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

    • 适用于Permissions (权限),请保留默认设置。这将创建一个授予基本 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 设置中,选择编辑,然后输入以下值。

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

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

    4. 选择 Save

  8. 发布 Lambda 函数,然后创建一个名为的别名GG_CarAggregator. 如需分步指导,请参阅发布 Lambda 函数创建别名模块 3(第 1 部分)。

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

    1. 在组配置页面上,选择 Lambdas,然后选择添加 Lambda

    2. 选择 Use existing Lambda

      
                                    突出显示了“Use existing Lambda (使用现有的 Lambda)”。
    3. 选择 GG_Car_Aggregator,然后选择下一步

      
                                    突出显示了“GG_Car_Aggregator”和“Next (下一步)”。
    4. 选择别名:GG_碳聚合器,然后选择Finish.

      
                                    别名:突出显示 G_CarAggregator (G_CarAggregator)
    注意

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

  10. 编辑 Lambda 函数配置:

    1. 选择省略号 (...),Lambda 后选择编辑配置.

      
                                    对 Lambda 函数突出显示的 “编辑配置” 选项。
    2. 内存限制下,输入 64 MB

    3. UNASOLambda 生命周期中,选择使该函数长时间生存,保持其无限期运行,然后选择更新.

      
                                    突出显示了“Make this function long-lived and keep it running indefinitely (使此函数长时间生存,保持其无限期运行)”的 GG_Car_Aggregator 配置页。