で AWS Lambda を使用するAWS IoT - AWS Lambda

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

で AWS Lambda を使用するAWS IoT

AWS IoT は、インターネットに接続されたデバイス (センサーなど) と AWS クラウドとの安全な通信を提供します。これにより、複数のデバイスからテレメトリデータを収集して保存および分析できます。

デバイスが AWS IoT のサービスとやり取りするための AWS ルールを作成できます。AWS IoTルールエンジンは、メッセージペイロードからデータを選択して他のサービス (Amazon S3、Amazon DynamoDB、AWS Lambda など) に送信するための SQL べ―スの言語を提供します。AWS の別のサービスやサードパーティーのサービスを呼び出す場合は、Lambda 関数を呼び出すためのルールを定義します。

着信 IoT メッセージによってルールがトリガーされると、AWS IoT は Lambda 関数を非同期的に呼び出し、IoT メッセージから関数にデータを渡します。

次の例は、温室センサーの湿度値を示しています。row 値と pos 値は、センサーの位置を識別します。このイベント例は、AWS IoT ルールチュートリアルの greenhouse タイプに基づいています。

例 AWS IoT メッセージイベント
{ "row" : "10", "pos" : "23", "moisture" : "75" }

非同期呼び出しで、関数がエラーを返した場合、Lambda はメッセージをキューに入れ、エラーになった呼び出しを再試行します。関数を設定するには、送信先を使用して、関数が処理できなかったイベントを保持します。

Lambda 関数を呼び出すためのアクセス許可を AWS IoT サービスに付与する必要があります。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\"}" }

AWS IoT で Lambda を使用する方法の詳細については、AWS Lambda ルールの作成を参照してください。