翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
で AWS Lambda を使用するAWS IoT Events
AWS IoT Eventsは、複数の IoT センサーやアプリケーションからの入力をモニタリングし、イベントパターンを認識します。次に、イベントが発生すると、適切なアクションを実行します。AWS IoT Events は、多くのソースから JSON ペイロードとして入力を受け取ります。AWS IoT Events は、単純なイベント (各入力がイベントをトリガー) と複雑なイベント (複数の入力が組み合わさってイベントをトリガー) をサポートしています。
AWS IoT Events を使用するには、ディテクタモデルを定義します。このモデルは、装置またはプロセスの状態マシンモデルです。状態に加えて、モデルの入力とイベントを定義します。また、イベントが発生したときに実行するアクションも定義します。AWS の別のサービス (Amazon Connect など) を呼び出す場合や、外部アプリケーション (エンタープライズリソースプランニング (ERP) アプリケーションなど) でアクションを実行する場合は、アクションで Lambda 関数を使用します。
イベントが発生すると、AWS IoT Events は Lambda 関数を非同期的に呼び出します。ディテクタモデルとアクションをトリガーしたイベントに関する情報が提供されます。次のメッセージイベントの例は、AWS IoTイベント単純な step-by-step 例 の定義に基づいています。
例 AWS IoT Events メッセージイベント
{ "event":{ "eventName": "myChargedEvent", "eventTime": 1567797571647, "payload":{ "detector":{ "detectorModelName": "AWS_IoTEvents_Hello_World1567793458261", "detectorModelVersion": "4", "keyValue": "100009" }, "eventTriggerDetails":{ "triggerType": "Message", "inputName": "AWS_IoTEvents_HelloWorld_VoltageInput", "messageId": "64c75a34-068b-4a1d-ae58-c16215dc4efd" }, "actionExecutionId": "49f0f32f-1209-38a7-8a76-d6ca49dd0bc4", "state":{ "variables": {}, "stateName": "Charged", "timers": {} } } } }
Lambda 関数に渡されるイベントには、以下のフィールドが含まれています。
-
eventName
- ディテクタモデルにおけるこのイベントの名前。 -
eventTime
- イベントが発生した時刻。 -
detector
- ディテクタモデルの名前とバージョン。 -
eventTriggerDetails
- イベントをトリガーした入力の説明。 -
actionExecutionId
- アクションの一意の実行識別子。 -
state
- イベントが発生したときのディテクタモデルの状態。-
stateName
- ディテクタモデルの状態の名前。 -
timers
- この状態に設定されているすべてのタイマー。 -
variables
- この状態に設定されているすべての変数値。
-
Lambda 関数を呼び出すためのアクセス許可を AWS IoT Events サービスに付与する必要があります。add-permission
コマンドを使用して、アクセス許可ステートメントを関数のリソースベースのポリシーに追加します。
aws lambda add-permission --function-name
my-function
\ --statement-id iot-events --action "lambda:InvokeFunction" --principal iotevents.amazonaws.com
次のような出力が表示されます。
{ "Statement": "{\"Sid\":\"iot-events\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"iotevents.amazonaws.com\"},\"Action\":\"lambda:InvokeFunction\",\"Resource\":\"arn:aws:lambda:us-east-1:123456789012:function:my-function\"}" }
AWS IoT Events における Lambda の使用の詳細については、他のサービスで AWS IoT Events を使用するを参照してください。