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