iothub-explorerをAzure Cloud Shellで使えるようにする
Azure IoT Hubの状況をモニタリングするのに、AzureポータルとDevice Explorerを使うのが定番です。特に、C2DメッセージはAzureポータルでは確認できないので、Device Explorerを使うことになります。
残念なことに、このDevice ExplorerはWindows専用。MacユーザーやLinuxユーザーがC2Dメッセージをモニタリングしたいときは、Device Explorerの代わりにiothub-explorerというCLIツールを使うことになりますが、Node.jsをインストールしてiothub-explorerをインストールと、ちょっと煩わしい。
気になるが良い手が無いなぁと思っていたところ、先日、ビデオ会議でソラコム松井さん、松下さんから「Azure Cloud Shell良いよ」と、素晴らしい方法を聞いたので、試してみました。(松井さん、松下さんありがとうございます!!)
Azure Cloud Shellのセットアップ
Webブラウザから操作できるシェル。Azure管理コマンドを実行するために用意されたシェル環境のようで、Azureポータルのアカウントに紐づいて環境作成できます。(複数セッションの同時接続は可能。) サーバーは無料で、ストレージは有料。Azureストレージアカウントに課金されます。
Azureポータルの上部にある、コンソールっぽいアイコンをクリックしてください。
すると、画面が上下分割されて下部にAzure Cloud Shellが表示されるので、Bash (Linux)をクリックしてください。
ストレージの作成をクリックしてください。
なお、一番右のフォルダのようなアイコンをクリックすると、Azure Cloud Shellだけのウィンドウを開くことができます。また、そのURLをブックマークしておくと、Azureポータルを立ち上げずに直接Azure Cloud Shellを開くことも可能です。
iothub-explorerのインストール
公式の手順はnpm install -g iothub-explorerと、グローバル領域(/usr/local/lib/node_modules)にインストールしていますがAzure Cloud Shellではここにインストールすることはできません。いくつか代案がありますが、、、ここではグローバル領域を変更してインストールしましょう。
mkdir ~/.npm-global npm config set prefix '~/.npm-global' npm install -g iothub-explorer
iothub-explorerの起動
~/.npm-global/bin/iothub-explorer
すばらしい。
PATHの追加
いちいち~/.npm-global/...と入力するのは面倒なので、.bashrcにPATH追加を追記しておくと少し便利です。
vi ~/.bashrc
PATH=~/.npm-global/bin:${PATH}
. ~/.bashrc
Azure Cloud Shellの削除
一度、Azure Cloud Shellをセットアップすると、Azureストレージアカウントに課金されます。ストレージを使っているので。
もういらないよ!というときは、リソースグループのcloud-shell-storage-xxxを削除しましょう。