クラウドエンジニアブログ

Azure Stream Analytics から Azure Functions を呼び出す

中平 頼孝

Azure Stream Analytics から、Azure Functions を呼び出すことは、以前からプレビュー機能として利用することができましたが、2018/1月末に正式に GA されました。

以下、Microsoft のブログ記事より


ポーリング型からプッシュ型へ

これまで、IoT Hub や Event Hub から Azure Stream Analytics に受け取ったデータを、SQL Database や Service Bus などへ、一旦 出力する必要がありました。

そのため、定期的にデータを確認するようなポーリング型のデータ処理が必要です。データの「保存」と「処理」のタイミングが分かれるため、処理の定期実行の間隔でタイムラグが発生してしまいます。(下記の図参照)

処理の定期実行の間隔でタイムラグが発生


データをトリガとした、プッシュ型の処理にするには、Azure Stream Analytics の出力にさらに Event Hub を指定して、イベントの受け手となるプログラムを別途作成することで対応できましたが、Azure Stream Analytics から Azure Functions が呼び出せるようになったことで、より簡単に実装ができるようになりました。
データの保存と処理を同時に行うことができるので、より遅延の少ない高速なデータ処理が行うことが可能になります。(下記の図参照)

より遅延の少ない高速なデータ処理が行うことが可能


メリット

  • より遅延の少ない高速なデータ処理連携を行うことが可能
  • Azure Stream Analytics 上だけでは行えない、より複雑な処理を Azure Functions で行うことが可能
  • Azure Functions は Azure Stream Analytics からだけでなく、他の処理系からも使い回しが可能なので、汎用的

デメリットは、Azure Functions 実行における課金が発生することですが、月間無料使用分として、月あたり100万回のリクエストと、400,000GB秒のリソース使用量が含まれているため、少し試してみる程度であれば無料で利用することができます。(2018/3/21時点 Azure Functions 価格 参照)

まとめ

IoT 機器からのデータの流れを Azure Functions につなげることで、より遅延の少ない高速なデータ処理連携を Azure PaaS のみで構成することが可能です。

例えば、Azure Functions 側で Azure ML を呼び出し、異常検知や故障検知を行ったり、Azure IoT SDK を利用して IoT Hub につながった IoT 機器の自動機器制御を行ったりすることも可能です。

これらの例を組み合わせて、IoT 機器の状態監視から、成果が最大になるように強化学習を実施し、IoT 機器の自動制御を行い、自動で学習していくシステムを構築するとフレームワークとしていろいろなものに転用できそうなので面白そうですね!



次回予告
  • 風速計の IoT Edge デバイス化1



【総合】お問い合わせ

ソリューションに関する全般的なお問い合わせはお気軽にご相談ください。

ピックアップ

セミナー情報
クラウドエンジニアブログ
clouXion
メールマガジン登録