将 Amazon Lambda 与 Amazon IoT 结合使用 - Amazon Lambda
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

将 Amazon Lambda 与 Amazon IoT 结合使用

Amazon IoT 提供连接 Internet 的设备(如传感器)与 Amazon 云之间的安全通信。这让您能够从多个设备收集、存储和分析遥测数据。

您可以为设备创建 Amazon IoT 规则,以便与 Amazon 服务进行交互。Amazon IoT 规则引擎提供基于 SQL 的语言,用于从消息负载中选择数据,并将数据发送到其他服务,如 Amazon S3、Amazon DynamoDB 和 Amazon Lambda。当您想要调用其他 Amazon 服务或第三方服务时,您可以定义规则以调用 Lambda 函数。

当传入的 IoT 消息触发规则时,Amazon IoT 异步调用 Lambda 函数并将数据从 IoT 消息传递到函数。

以下示例显示了温室传感器的湿度读数。rowpos 值标识传感器的位置。此示例事件基于 Amazon IoT 规则教程中的温室类型。

例 Amazon IoT 消息事件

{ "row" : "10", "pos" : "23", "moisture" : "75" }

对于异步调用,Lambda 将消息排队,并在函数返回错误时重试。将函数配置为带有目标,以保留函数无法处理的事件。

您需要向 Amazon IoT 服务授予调用 Lambda 函数的权限。使用 add-permission 命令将权限语句添加到函数的基于资源的策略。

aws lambda add-permission --function-name my-function \ --statement-id iot-events --action "lambda:InvokeFunction" --principal iot.amazonaws.com

您应看到以下输出:

{ "Statement": "{\"Sid\":\"iot-events\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"iot.amazonaws.com\"},\"Action\":\"lambda:InvokeFunction\",\"Resource\":\"arn:aws-cn:lambda:us-west-2:123456789012:function:my-function\"}" }

有关如何将 Lambda 与 Amazon IoT 结合使用的更多信息,请参阅创建 Amazon Lambda 规则