【新機能】AWS IoTのコンソールが進化。画面上からMQTTデータがテストできるようになりました。

【新機能】AWS IoTのコンソールが進化。画面上からMQTTデータがテストできるようになりました。

Clock Icon2016.01.29

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、せーのです。今日はとても使い勝手が良くなったAWS IoTコンソールのご紹介をします。
画面のご紹介なので実際動かしながらにしてみましょう。

やってみた

まずはマネージメントコンソールでAWS IoTを開きます。

iot_enhanced_console1

画面右上に「MQTT Client」のリンクが増えています。これが今回ご紹介する新機能です。この機能を使うとテスト用に実機を用意したりmacにmosquittoを入れなくても、ここからMQTTデータが送信できるようになったんです。これは便利ですね!

このリンクを開いてみるとこんな画面が出てきます。

iot_enhanced_console10

なんかフォントが可愛くなってます。右のナビを見る限りでは

  • Device Gatewayにつなげて
  • Subscribeを設定したり
  • Publishで直接データを投げたり
  • そのログをCloudWatch Logsにpublishしたり

ということがここから出来るんですね。証明書のセットとかしなくていいのは簡単でいいですね。今回は既存のRulesが適用されるようにPublishしてみたいと思います。

Device Gatewayに接続する

まずはDevice Gatewayにつなげてみましょう。

iot_enhanced_console2

右側の[MQTT Client Actions]の下で[Device Gateway connection]が選択されているのを確認してそのまま下を見るとこのような状態になっています。ここでClientIDを直接指定するか、新しく作成すると接続することができます。今回は新しく作成してみましょう。

iot_enhanced_console3

ClientIDが自動で入りました。このまま[connect]をクリックします。

iot_enhanced_console4

これで接続完了です。簡単ですね。

ちなみに下に[Last will message]というチェックボックスがあります。これはMQTTの[will(遺言)]という機能を使うかどうか、を示していて、ここにチェックを入れるとこのような画面が出てきます。

iot_enhanced_console5

これは接続が切れた時に自動的に指定されたトピックにメッセージを投げる機能です。ここにあらかじめ接続が切れたら送信するメッセージ内容とトピックを指定しておくことが出来ます。

Publishする

次にデータを投げてみましょう。ちなみに現在既存で作ってあるRuleはこのようになっています。

iot_enhanced_console8

つまり[awsiotdemo/sapporo]というトピックに"data"という名前のデータを投げられたらS3にそのデータとトピック名をまるっとなげる、というものです。
つまり先程のMQTT Clientから[awsiotdemo/sapporo]にdataという名前でpublishしてS3にそのデータが投げられたら成功、ということです。やってみましょう。

iot_enhanced_console6

[publish to topic]を選択するとpublish先のトピック名、メッセージ内容を書く欄が出てきますので書き込みます。[QoS]というのはメッセージが確実に届くかどうかのサービスレベルを選択するものですが、今回は特に検証の必要はないのでQoS0[投げっぱなし]でいきたいと思います。

iot_enhanced_console7

これで[Publish]ボタンを押すと下に小さく[success]と出ます。これでデータがPublishされたようです。S3を見てみましょう。

iot_enhanced_console9

データが入っています。見てみると

{"data":"test from management console mqtt client","topic":"awsiotdemo/sapporo"}

データが無事入ってきたようです。成功ですね。

まとめ

いかがでしたでしょうか。今までAWS IoTで意外と大変だったのが「テスト」でした。これでテストがぐっと楽になりますね。

参考リンク

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.