搭配使用 AWS Lambda 與 AWS IoT - AWS Lambda

搭配使用 AWS Lambda 與 AWS IoT

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

您可以為您的裝置建立 AWS IoT 規則,使其和 AWS 服務互動。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 規則