AWS Lambda 搭配使用 AWS IoT - AWS Lambda

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

AWS Lambda 搭配使用 AWS IoT

AWS IoT 在 AWS 連接互聯網的設備(例如傳感器)和雲端之間提供安全的通信。這可以讓您收集、存放和分析來自多個裝置的遙測資料。

您可以建立裝置與 AWS 服務互動的 AWS IoT 規則。 AWS IoT 規則引擎提供一種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 規則