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 表。
-
在您的计算机上,创建一个名为
car_aggregator
的文件夹。 -
从 GitHub 上的 TrafficLight
示例文件夹中,将 carAggregator.py
文件下载到car_aggregator
文件夹。这是您的 Lambda 函数代码。注意
为方便起见,此 Python 示例文件存储在 Amazon IoT Greengrass 核心开发工具包存储库中,但它不使用 Amazon IoT Greengrass 核心开发工具包。
-
如果您不在美国东部(弗吉尼亚北部)区域工作,请打开
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')
-
在命令行
窗口中运行以下命令,以将 Amazon SDK for Python (Boto3) 软件包及其依赖项安装到 car_aggregator
文件夹中。Greengrass Lambda 函数使用 Amazon 开发工具包访问其他 Amazon 服务。(对于 Windows,请使用提升的命令提示符。) pip install boto3 -t
path-to-car_aggregator-folder
这会显示类似于下面的目录列表:
-
将
car_aggregator
.zip
文件夹的内容压缩到一个名为car_aggregator.zip
的文件中。(压缩文件夹的内容,而不是文件夹。) 此即 Lambda 函数部署程序包。 -
在 Lambda 控制台中,创建一个名为
GG_Car_Aggregator
的函数,然后按下面所示设置其余字段:-
对于运行时系统,选择 Python 3.7。
-
对于权限,请保留默认设置。这将创建一个授予基本 Lambda 权限的执行角色。此角色未由 Amazon IoT Greengrass 使用。
选择 Create function (创建函数)。
-
-
上传 Lambda 函数部署软件包:
-
在代码选项卡上的代码源下,选择上传自。从下拉列表中选择 .zip 文件。
-
选择上传,然后选择您的
car_aggregator.zip
部署包。然后,选择保存。 -
在函数的代码选项卡中,在运行时设置下选择编辑,然后输入以下值。
-
对于运行时系统,选择 Python 3.7。
-
对于处理程序,输入
carAggregator.function_handler
。
-
-
选择保存。
-
-
发布 Lambda 函数,然后创建一个名为
GG_CarAggregator
的别名。有关分步说明,请参阅模块 3(第 1 部分)中的发布 Lambda 函数和创建别名步骤。 -
在 Amazon IoT 控制台中,将刚才创建的 Lambda 函数添加到 Amazon IoT Greengrass 组:
-
在组配置页面上,选择 Lambda 函数,然后在我的 Lambda 函数下选择添加。
-
对于 Lambda 函数,请选择 gg_car_Aggregator。
-
对于 Lambda 函数版本,选择您发布的版本的别名。
-
对于内存限制,输入
64 MB
。 -
对于已固定,选择 True。
-
选择添加 Lambda 函数。
注意
您可以删除先前模块中的其他 Lambda 函数。
-