#概要
Node-RED、本当に便利ですよね。
PoCでサクッとシステム作るときなんか、めちゃめちゃ重宝してます。
クラウド側もなるべくコーディングレスでやりたいので、
Azure Logic Appsを使っています。
今回はエッジ側をNode-RED、クラウド側をAzure Logic Appsで組んだシステムを例に
その手順を紹介します。
#システム構成
実際に過去に行ったPoCを題材にしたいと思います。
部屋にいくつかの温度センサーを置いて、
それをクラウド上のデータベースに保存しています。
※データの可視化については、Power BIでIoTデータの可視化(初級編)を参照してください。
#手順
###データフォーマットを決める
Node-REDからLogic Appsに送信するデータ構造を決めておきます。
今回は以下のJSONフォーマットでデータをやり取りすることにします。
###Logic Apps
エッジ側のNode-Redからデータを受け取るLogic Appsを作成、設定していきます。
1. Azure Portalにログインし、ホーム画面で「リソースの作成」をクリックします。
2. 検索枠に「Logic App」と入力して検索し、結果から「Logic App」をクリックします。
5. 作成が完了したら、Logic Appsのデザイナーを表示し、「一般的なトリガーで開始する」の中の「HTTP要求の受信時」をクリックします。
6. 以下のような画面が表示されます。「サンプルのペイロードを使用してスキーマを生成する」をクリックします。
9. この後、本来は受信したデータを処理するフローを作成するのですが、それはまた別の機会に。ここで一旦フローを保存します。
10. HTTP要求を受け付けるURLが自動生成されるので、コピーボタンをクリックしてコピーします。
11. 実行をクリックします。これでNode-REDからデータを受け取る準備ができました。
###Node-RED
Node-REDは、ラズパイ用OSであるRaspbianにプリインストールされているものを使いました。
作成したフローはこんな感じのごく簡単なものです。
①5分に1回起動
②温度センサー(2JCIE-BL01)からBluetoothでデータを読み出し
③送信データを生成
④Logic Appsにデータ送信
⑤結果をデバッグ出力
今回はLogic Appsに絡む部分のみ説明します。
④のLogic Appsへのデータ送信には、「http request」ノードを利用します。
設定はこんな感じです。
メソッドはPOSTで、URLは先に控えておいたURLを設定してください。
###実行結果
Node-RED側をデプロイして、実行結果を確認します。
Azure Logic Appsのブレードから概要を選択し、一番下の実行の履歴をクリックします。
そうすると、下記のように送信されてきたデータが確認できます。
#まとめ?
ということで、Node-REDからAzure Logic Appsを呼び出す手順を記載しましたが、
Node-RED側は単純にHTTP Requestを実行するだけになっています。
結果、手順のほとんどはAzure Logic Appsの内容になってしまいました(笑)。
なお、Logic Appsの呼び出し時のセキュリティについては、下記を参照ください。
https://docs.microsoft.com/ja-jp/azure/logic-apps/logic-apps-securing-a-logic-app