AWS Lambda 搭配 使用 AWS IoT - AWS Lambda

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AWS Lambda 搭配 使用 AWS IoT

AWS IoT 提供網際網路連線裝置 (例如感應器) 與 AWS 雲端之間的安全通訊。這可以讓您收集、存放和分析來自多個裝置的遙測資料。

您可以建立 AWS IoT 規則,讓裝置與之互動 AWS 服務。The AWS IoT Rules Engine 提供以 SQL 為基礎的語言,從訊息承載中選取資料,並將資料傳送至其他 服務,例如 Amazon S3、Amazon DynamoDB 和 AWS Lambda。當您想要叫用另一個 AWS 服務或第三方服務時,您可以定義呼叫 Lambda 函數的規則。

當傳入 IoT 訊息觸發規則時, 會以非同步方式 AWS IoT 叫用您的 Lambda 函數,並將資料從 IoT 訊息傳遞至函數。

以下範例示範從溫室感應器讀取濕度。資料列資料行的值會識別感應器的位置。此範例事件是以 AWS IoT 規則教學中的溫室類型為基礎。

範例 AWS IoT 訊息事件
{ "row" : "10", "pos" : "23", "moisture" : "75" }

針對非同步叫用,Lambda 會將訊息排入佇列,並且在您的函式傳回錯誤時重試。為您的函數設定目的地來保留函數無法處理的事件。

您需要授予許可,讓 AWS 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:lambda:us-east-1:123456789012:function:my-function\"}" }

如需如何搭配 使用 Lambda 的詳細資訊 AWS IoT,請參閱建立 AWS Lambda 規則