6.3 AWS IoT Coreのルールを追加

AWS IoT Coreにルールを追加

AWS IoT Coreのマネージメントコンソールを開き、左側のメニューからACTを選択しルールの画面を開き、ルールの作成を選択します

Rule

名前にhandson_YYYYMMDD_firehoseの様な名前を入力します

Rule

ルールクエリステートメントには、SELECT * FROM 'data/Sensor' と入力(Sensorは実際のThing名を指定します)し、アクションの追加を選択します。

Rule

アクションの一覧の中からAmazon Kinesis Firehoseストリームにメッセージを送信するを探し、選択して、一番下のアクションの追加を選択して、アクションを追加します。

Rule

ストリーム名には前の手順で作成したKinesis Data Firehoseのストリームを選択します。Separetorには\n(改行)を選択します。

Rule

このアクションを実行するための AWS IoT アクセス権限を付与するロールを選択または作成します。ロールの作成を選択するとポップアップが表示されるので、ロール名にiot-kinesisfirehose-rule-roleと入力し、ロールの作成を選択します。

Rule

アクションの追加を選択すると、アクションがルールに追加されます。

Rule

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

Rule

S3の確認

Cloud9でSensorのプログラムが動いていない場合は、再度動かしてください。Firehoseの設定では、データが5MByteに達するか、60秒経過したらS3に出力するように設定をしましたので、少ししてからS3のコンソールを再表示してみてください。

ルールの設定が正しくされていると、以下のようにYYYY/MM/DD/HHのプレフィックスが付いて、オブジェクトが保存されます。

Rule

オブジェクトをダウンロードすると以下のように、複数のデータが含まれていることが確認できます。ルールの設定で、Separetorに改行コードを指定したので、1行1データの様な形となっています。

S3のコンソールからダウンロードするとgzip形式のファイルは勝手に展開された状態でダウンロードされます。ダウンロードしたファイルはそのままテキストエディタで開いてください。

{"value": 0.0, "timestamp": "2020-05-11T07:17:25"}
{"value": 0.0, "timestamp": "2020-05-11T07:17:27"}
{"value": 0.0, "timestamp": "2020-05-11T07:17:29"}
{"value": 0.0, "timestamp": "2020-05-11T07:17:31"}
{"value": 0.0, "timestamp": "2020-05-11T07:17:33"}
{"value": 0.0, "timestamp": "2020-05-11T07:17:35"}
{"value": 0.0, "timestamp": "2020-05-11T07:17:37"}
{"value": 0.0, "timestamp": "2020-05-11T07:17:39"}

この手順では、IoTルールを利用してAWSの他のサービスと連携する方法を実際に行っていただきました。ルールやアクションを追加することで送信されてくるデータを簡単に利用することが出来ます。ルールやアクションに付いてもっと詳しく知りたい場合は、こちらをご覧ください。

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