5.2 IoT Eventsにデータを送る

AWS IoT Coreのルールを作成する

AWS IoT Coreのコンソールに戻り、左側のメニューから、ACT > ルール > ルールの作成 と開きます。

IoT

ルールの名前にはiot_event_YYYYMMDDの様な名前をつけます。

IoT

ルールクエリステートメンントには以下の内容を貼り付け、アクションの追加を選択します。

SELECT clientId as clientId, eventType as eventType, ipAddress as ipAddress FROM '$aws/events/presence/#'

他のデバイスがすでにAWS IoT Coreに接続されている場合、このSQLだと全てのデバイスのイベントをIoT Eventsに渡すことになります。ハンズオン用のデバイスに限定したい場合は、トピックを $aws/events/presence/+/対象となる物の名前の様に書き換えてください。

これは、ライフサイクルイベントとして発行されるメッセージのトピックに対して発行されるメッセージから、IoT Eventsの入力で作成した形式に変換することを行なっています。

元のJSON

{
  "clientId": "some-client",
  "timestamp": 1594795464427,
  "eventType": "connected",
  "sessionIdentifier": "",
  "principalIdentifier": "",
  "ipAddress": "",
  "versionNumber": 0
}

アクションに渡されるJSON

{
  "clientId": "some-client",
  "eventType": "connected",
  "ipAddress": ""
}

IoT

アクションでは、IoT Eventsを選択し、アクションの設定に進みます。

IoT

入力名では選択を選択すると、登録されている入力が選べますので、先ほど作成した入力を選びます。

IoT

ロールでは新規に作成するので、ロールの作成を選択します。

IoT

名前にはiot-rule-event-action-20200701-roleの様な名前を入力し、ロールの作成を選択するとロールが作成されます。

IoT

アクションの追加を選択します。

IoT

最後にルールの作成を選択して、完了します。

IoT

AWS IoT Coreのルールを利用すると、AWSの他のサービスとの連携やその際にメッセージの加工が簡単に行うことができます。詳しくはこちらを参照してください。

この手順での作業は以上となります