2017/01/14

AzureでMQTT brokerを立てようとする (1)

お仕事で、クラウド上にVMを作る、というのをやった。
なんとなくAWSが有名な気がするが、使ったのはMicrosoft Azureだ。
あらまあ便利だわねぇ、と感心した。
いや、AWSに比べて、とかではなく、単純にOSのインストールとか面倒なことをせずに済む、という意味でだ。

家でも使えると便利かもしれんと思って調べると、30日間無料だった。
まあ、ずっと使うならお金がいるよねぇ。。。と思ったら、無料枠があった。

価格サービス | Microsoft Azure

VMなんかは入っていないが、いろいろと使えるようだ。
IoT Hub、というのもあるし、これだったらMQTT brokerになってくれるんじゃなかろうか?ということでやってみることにした。


そもそも、IoT HubでMQTTがあるのか?という疑問があったが、サポートしているようだ。

IoT Hub の MQTT サポート | Microsoft Docs

試しに1つ作るとき、名前に「mqtt」と付けると「付けられません」というエラーになった。
名前を自由に決められないのか?と不思議に思ったが、その名前を使ってホスト名を作るため、既存のものは使えないというだけのことのようだ。

(なまえ).azure-devices.net

こんなホスト名になる。

 

で、作ったものの、これからどうしてよいのかわからない。。。
ホスト名があるのでpingやnslookupしたけど、解決できないのだ。
pingは止められているだけかもしれんが、名前が解決できないとどうしようもない。

あ、ネットの名前解決サービスを使うと見つけられた。
IW3 PROJECT DNSによる名前解決サービス

image

なるほど、そういうことか。
今回はFreeのものを使ったからかもしれん。
なお、Freeのものは1つしか作ることができないとのこと。

image

30日間は2万円くらいまで使えるので、S1 Standardのものも作ってみた。
うん、名前解決すると同じIPアドレスになった。

 

あれ、MQTTでつなぐとして、IPアドレスが同じだったらどうやって見分けるのだろうか?
何かしら、IDなり登録なりして通知しないとわからんだろう。
どうやるのだ?

Azure IoT Hub の使用 (Java) | Microsoft Docs
使い方のページがあった。
これはJavaだが、他に.NETやNode.jsのページもある(Node.jsは「ノード」とカタカナ表記になっていた)。

「共有アクセスポリシー>iothubowner」というページで、共有アクセスキーを見るようだ。
「主キー」なのに「セカンダリーキー」で「接続文字列—プライマリキー」なのは愛嬌だろう。
接続文字列の欄は、HostName, SharedAccessKeyName, SharedAccessKeyがひっついているだけのようだ。

で、ここから「Settings > Messaging」に相当するページに移動することになっているのだが、どこなんだ。。。
「設定」じゃなくて、トップメニューの下の方にあった。

image

ここの「Endpoints」の「Built-in endpoints」一覧の「Events」をクリックすると、それっぽい画面が出てきた。
これでいいのだろうか。。。

いや、それ以前に、MQTTで接続するのに何が必要なのかを先に調べるべきだ。
MQTT プロトコルの直接使用

  • ClientId = デバイスID
  • UserName = {ホスト名}/{デバイス名}
  • Password = SASトークン

という対応になっているとのこと。
ならば、デバイスIDを作ればなんとかなるのかもしれん。

 

デバイス ID の作成
・・・Java版だからだと思うが、Javaアプリを作らないといけないのか?
「概要」の上に「デバイス」があるから、ここから追加できるのかと思ったが、押せない。

image

ハブの作成と Raspberry Pi 3 の登録 | Microsoft Docs
ここを見ると、Azure CLIというツールを使って追加するようなのだが、クライアントからできるならWebからだってできておかしくないのでは。。。

Azure IoT Hubでデバイスを管理する - Qiita
どうやら、デバイスを登録するとメニューが有効になっているようだ。

Azure/iothub-explorer: IoT Hub Explorer is a tool that allows you to explore and test Azure IoT Hub features
ツールも提供されている。
されているのだが。。。

いやだー、私はWebで全部済ませたいんだー!

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。

注: コメントを投稿できるのは、このブログのメンバーだけです。