Azure IoT Centralアプリケーションを使っていて、同じようなデバイス構成やダッシュボード表現で良いが、別なシステムなので別アプリケーションにしたいと思ったときにちょっと迷ったので、そのやり方を共有。
やりたかったこと
Azure IoT Centralアプリケーションで、デバイステンプレートやダッシュボードの設定を0ベースで毎回作るのが手間なので、何かベースのモノを用意して、それをコピーして使いたい
やり方
Microsoft公式で紹介されている「アプリケーションテンプレートを使用する」。これがまさにやりたいことでした。
https://docs.microsoft.com/ja-jp/azure/iot-central/howto-use-app-templates
嵌りどころ
[管理] 画面の日本語の説明が見切れてる!
今回やりたかったような機能はもともと実装されているかなと思って、まずは実際の管理画面を見たりして探してたのですが、なかなか見つからなくて。それでかなり必死になって調べたのですが、実はちゃんと見るとあったという。ただし、見切れている場合があるので注意しましょう。まずは、ここでちゃんと気が付ければよかったのですが(エク...で止まってるし。。。)
ダッシュボードが空っぽ
公式の説明を見るとちゃんと書いてあるのですが、特定のデバイスに紐づいた情報を表示するようにしたタイルは以下のように表示されます。
ただ、タイルの編集から「デバイステンプレート」「デバイスのインスタンス」を選択すれば正しく表示されるし、そもそも別システムで使う=実デバイスは別ものなので、これはこれで正しいと思います。なので、アプリケーションテンプレートはシミュレーションデータを表示するタイルでダッシュボードを作っておくほうが良いと思います。設定しなおせば、タイルに設定してある情報もちゃんと引き継がれていました。
今後の懸念事項
今回はあるアプリケーションテンプレートから1つの別アプリケーションを作ったので良かったのですが、この手の運用で多くのアプリケーションを作っていくと、どこかのタイミングでおおもとのアプリケーションテンプレートを修正したくなるはずで、その場合、コピーで作った各々のアプリケーションに上手く適応される機能があったらいいのにと思います。ただ、例えば既に実デバイスを紐づけて運用している場合は、コピー元が修正されたからと言って勝手に修正されるのもそれはそれで怖いので、この辺りは地道に管理するしかないのかなと思います。