AWS IoT CoreへアップロードされたデータをCloudWatchでグラフ化します。アップロードされたデータのフォーマットは次のようなJson形式とします。
{ "Lightx": 8, "Switch":1 "Temp": 20.5, "Hart": 95, "Spo2": 95 }
AWS IoT Coreでの設定
AWS IoT Coreで次の手順を実施します。
- AWS IoT のコンソールで、左側のメニューから 「ACT」→ 「ルール」 を選び、右上の「作成」をクリックします。
- ルール作成の画面で、名前「health」を設定し、「ルールクエリステートメント」は、「SELECT * FROM ‘(Thing)/sensors’」 を設定します。
- 「アクションの追加」で、「CloudWatch Logsにメッセージデータを送信する」を選択します。
- ログのグループ名は、「新しいリソースを作成する」を選び、「アクション」 →「ロググループの作成 」 を選択します。
- ロググループの名前「healthgroup」を設定します。
- 終わるとコンソールに戻り、ログのグループ名から、 「healthgroup」 を選択します。
- ロールの作成で、名前「healthrole」を設定し、 「ロールの作成」 をクリックします。
- 「ルールの作成 」をクリックします。
他のアクションとしては次のようなサービスが登録されています(2021/06/13)
CloudWatchでの設定
CloudWatchで次の手順を実施します。
- CloudWatchのコンソールで、左側のメニューから 「ダッシュボード」をクリックします。
- 「ダッシュボードの作成」をクリックし、名称を「healthboard」にします。
- 作成したダッシュボード「healthboard」をクリックし、右上に表示されている「ウィジェットの追加」をクリックすると、作成するウイジェットを選択でき、つぎのクエリの設定画面が表示されます。
- ログクループ「healthgroup」を選択し、クエリを設定して、「ウィジェットの作成」をクリックすると、ダッシュボード「healthboard」に作成したウィジェットが追加されます。
- 今回はダッシュボード「healthboard」に次のを二つのウィジェットを作成します。
- ウィジェットタイプ:線、
クエリ:stats avg(Light),avg(Temp) by bin(1s) - ウィジェットタイプ:ログテーブル、
クエリ:fields @timestamp,Hart,Spo2 | filter (Switch = 0) - 作成したダッシュボード「healthboard」は次のようになります。