【 HCCJP第20回勉強会より】「インフラ管理者に送る、あらためての #IoTEdge / #IoTHub 」 Demo1 / #Azure

【デモ解説】インフラ管理者のための IoT Edge / IoT Hub 入門 — デバイス接続からデータ転送まで この記事の内容 Raspberry Pi オンラインシミュレーターを使って IoT Hub にデバイスを登録する方法 接続文字列(Connection String)を使ったデバイスとクラウドの接続手順 Azure IoT Explorer でリアルタイムにメッセージを監視する方法 Azure Stream Analytics を使って IoT Hub のデータを Blob Storage に転送する手順 入力・出力・クエリの設定によってさまざまな Azure サービスへデータを流し込める仕組みの概要 はじめに 本記事は、ハイブリッドクラウド研究会(HCCJP)第20回勉強会(2021年5月14日開催)での登壇内容のうち、デモ部分を抜粋して解説したものです。 デモのシナリオは次のとおりです。エッジデバイスにセンサーが取り付けられており、そのセンサーが読み取ったデータを IoT Hub に送信し、さらにそのデータが Azure の各サービス群に流れていく、という一連の流れを実際に動かして確認します。 使用するツール・サービス 今回のデモでは以下を使用します。 Raspberry Pi Azure IoT オンラインシミュレーター — 実機がなくても動作確認できるブラウザベースのシミュレーター Azure IoT Hub — デバイスとクラウドを接続するマネージドサービス Azure IoT Explorer — IoT Hub に接続してデータの確認やデバイス制御ができるデスクトップアプリ Azure Stream Analytics — ストリーミングデータをリアルタイムに処理して他のサービスへ転送するサービス Azure Blob Storage — 転送先のストレージ ステップ1: IoT Hub にデバイスを作成する まず、Azure ポータルで IoT Hub を開き、デバイスを新規作成します。 ...

May 15, 2021 · 2 min · 胡田昌彦

#Azure #Stream #Analytics を #IoT #Edge モジュールとしてデプロイする【チュートリアルをやってみる】

Azure Stream Analytics を IoT Edge モジュールとしてデプロイする この記事の内容 Azure Stream Analytics ジョブを「Edge」ホスティング環境で作成する方法 入力・出力・クエリの定義手順 IoT Edge デバイスへのモジュールデプロイ(温度センサー+ASA ジョブ) モジュール間のルーティング設定 Edge 上で ASA ジョブが実際に動作することの確認 Azure Stream Analytics を Edge で動かす意義 Azure Stream Analytics(ASA)は通常クラウド上で実行するサービスですが、IoT Edge モジュールとして Edge デバイス上に展開することもできます。 Edge 上で実行する利点は大きく2点あります。1つ目は低レイテンシです。クラウドへのラウンドトリップが不要になるため、リアルタイム性が高まります。2つ目は通信コストの削減です。すべてのデータをクラウドに送り続けるのではなく、Edge 側でフィルタリングや集計を行ってから必要な情報だけをクラウドに転送できます。 仕組みとしては、Azure 上で ASA ジョブの定義を作成すると、その定義が Azure Storage アカウントに保存されます。IoT Edge デバイスはモジュールとして起動する際にこの定義を取得し、Edge 上で実際の処理を実行します。 Azure Stream Analytics ジョブの作成 Azure ポータルで新しい Stream Analytics ジョブを作成します。 作成時の重要なポイントは「ホスティング環境」の選択です。通常はクラウドを選択しますが、今回は Edge を選択します。 設定項目 値 ジョブ名 任意(例: asa-edge-job) ホスティング環境 Edge 場所 任意(例: 東日本) 作成後、ジョブリソースへ移動すると、入力・出力・クエリという3つの要素を定義する画面になります。 ...

May 11, 2021 · 2 min · 胡田昌彦

#IoTEdge を透過型ゲートウェイとして構成する #azure

Azure IoT Edge を透過型ゲートウェイとして構成する この記事の内容 IoT Edge を透過型ゲートウェイとして構成し、下位デバイスを IoT Hub に対して透過的に見せる方法を解説します 証明書(ルート CA・デバイス CA)の作成手順と、ゲートウェイデバイスおよびクライアントへの配置方法を紹介します 下位デバイスの接続文字列に GatewayHostName を追加して IoT Edge 経由で接続する設定を説明します .NET サンプルコードを使ったテレメトリ送信と、IoT Hub からのダイレクトメソッド呼び出しの動作確認手順を紹介します オンプレミス環境でデバイスがインターネットに直接出られない場合のユースケースとして有効なパターンです 透過型ゲートウェイとは IoT Edge を透過型ゲートウェイとして構成すると、IoT Edge の下位に接続したデバイスが IoT Hub に対して「普通の IoT デバイス」として透過的に見えるようになります。 通常の構成では、デバイスが直接 IoT Hub に接続しますが、この構成では以下のようなフローになります。 デ バ イ ス → I o T E d g e ( I o T E d g e H u b モ ジ ュ ー ル ) → I o T H u b → A z u r e サ ー ビ ス 群 IoT Hub からのメッセージ(ダイレクトメソッドなど)も IoT Edge を経由してデバイスに届きます。IoT Edge Hub モジュールが IoT Hub と同じような役割を IoT Edge 上で担ってくれます。 ...

May 1, 2021 · 3 min · 胡田昌彦

【チュートリアルをやってみる】チュートリアル - #Azure #IoT #Edge を使用して #Linux 用の C# モジュールを開発する / #Azure

Azure IoT Edge で Linux 向け C# カスタムモジュールを開発する この記事の内容 Azure IoT Edge のカスタムモジュール開発として、Linux デバイス向けに C# でモジュールを実装します Visual Studio Code と Azure IoT Edge 拡張機能を使ったモジュールプロジェクトの作成手順を紹介します 温度データをフィルタリングするロジックを C# で実装し、閾値以上のメッセージのみを上流に転送する仕組みを構築します モジュール名を変更したときにビルドが失敗するトラブルと、その解決策を解説します コンテナレジストリへのプッシュから IoT Edge デバイスへのデプロイまでの流れを確認します 前提条件 本チュートリアルは、Azure IoT Hub と IoT Edge デバイスがすでにセットアップ済みであることを前提としています。Visual Studio Code には Azure IoT Edge 拡張機能がインストールされており、コンテナレジストリ(Azure Container Registry など)へのアクセス情報が手元にある状態で進めます。 モジュールプロジェクトの作成 Visual Studio Code を起動し、コマンドパレットから新しい IoT Edge ソリューションを作成します。 コマンドパレットを開き「Azure IoT Edge: New IoT Edge Solution」を選択します ソリューション名を入力します モジュールのテンプレートとして「C# Module」を選択します モジュール名を入力します(例:SampleModule) コンテナレジストリのイメージリポジトリ URL を入力します プロジェクトが生成されると、ソリューションのフォルダ構造が作成され、modules/ 配下に C# プロジェクトが配置されます。 ...

April 28, 2021 · 3 min · 胡田昌彦

Linuxコンテナーを使用して IoT Edgeモジュールを開発する

Linuxコンテナーを使用してIoT Edgeモジュールを開発する この記事の内容 Azure IoT Edgeモジュール開発のための開発環境セットアップ手順を解説します Docker Desktop for Windows と Visual Studio Code を使った開発フローを紹介します C#でカスタムIoT Edgeモジュールを作成し、Azure Container Registryにプッシュします Linux仮想マシン上にIoT Edgeをインストールし、モジュールをデプロイします テンプレートモジュールとTemperatureSensorモジュール間のメッセージルーティングを確認します 概要 本記事はAzure IoT Edgeのチュートリアルシリーズの一部です。今回は「開発環境をセットアップしてLinuxコンテナーを使用した開発をする」チュートリアルを実施します。 チュートリアルの全体像は以下のとおりです。 開発環境のセットアップ(本記事) カスタムコードモジュールの開発 Azure Functionsをモジュールとしてデプロイ IoT Edgeにおける機械学習の活用 今回のチュートリアルでは、以下の内容を実施します。 開発マシンのセットアップ Visual Studio Code 用のIoT Edge拡張機能を使って新しいプロジェクトを作成 プロジェクトをビルドしてAzure Container Registryに格納 IoT Edgeデバイスにデプロイ 前回のクイックスタートでは既存のコンテナーイメージをそのまま展開しましたが、今回は自分でイメージをビルドし、Azure Container Registryに格納してからデプロイするところまでを行います。 前提条件 本チュートリアルを開始する前に、以下の環境が準備されていることを確認してください。 開発マシン Docker対応OS(Windows/Mac/Linux) Git Visual Studio Code Visual Studio Code 用 C# 拡張機能 .NET Core 2.1 SDK(※3.1では動作しないケースがあるため2.1を推奨) Azureリソース IoT Hub(前回のクイックスタートで作成済みのものを流用可能) IoT Edgeデバイス(前回のチュートリアルで作成済みのLinux仮想マシンを利用可能) ターゲット環境の意識について 開発OS(Windows/Mac/Linuxのいずれでも可)にかかわらず、IoT Edgeモジュールが最終的に動作するターゲット環境はLinuxです。そのため、開発・テスト段階でもLinuxコンテナー上で動作確認することが重要です。本記事ではWindowsで開発を行い、コンテナーのOSはLinuxを指定する構成で進めます。 ...

April 27, 2021 · 3 min · 胡田昌彦

はじめてのIoT EdgeモジュールをLinux仮想デバイスにデプロイする

はじめてのIoT EdgeモジュールをLinux仮想デバイスにデプロイする この記事の内容 Azure IoT Hubを作成し、IoT Edgeデバイスを登録する手順を解説します Linux仮想マシンにIoT Edgeランタイムをインストールして構成します Azure Marketplaceから温度センサーのシミュレーターモジュールをデプロイします デバイスからIoT Hubへのテレメトリ送信を確認します Azure Cloud Shellを使ったコマンド操作を中心に、初心者にも分かりやすく説明します はじめに この記事ではAzure IoT Edgeのクイックスタートとして、はじめてのIoT EdgeモジュールをLinux仮想デバイスにデプロイする手順を解説します。 IoT Edgeを使用すると、クラウドに送信するデータをエッジデバイス上で処理できるため、より多くのワークロードをクラウドへ送信する前にフィルタリングや分析が可能になります。 このクイックスタートでは、IoT EdgeデバイスとしてAzure仮想マシンを使用します。これにより、テスト用マシンを素早く作成し、終了後に削除できます。 全体の流れ IoT Hubを作成する IoT Edgeデバイスをデバイス登録する IoT EdgeランタイムをLinux仮想デバイスにインストールして開始する モジュールをIoT Edgeデバイスにデプロイする 前提条件 アクティブなAzureサブスクリプション(ない場合は無料アカウントを作成してください) Azure Cloud Shell(またはAzure CLIをインストールしてローカルで使用) 操作はAzure Cloud ShellのBash環境を使用するのが簡単です。ローカルでAzure CLIを使用する場合は、インストール後にログインして最新バージョンに更新してください。 リソースグループの作成 まずはAzure Cloud Shellを起動し、リソースグループを作成します。 az group create --name IoTEdgeResources --location japaneast ロケーションは日本リージョンであるjapaneastを指定しています。コマンドが成功すると、リソースグループが作成されます。 IoT Hubの作成 次に、IoT Hubを作成します。既存のIoT Hubがあれば流用することも可能です。新規に作成する場合は以下のコマンドを実行します。 az iot hub create \ --name <ハブ名> \ --resource-group IoTEdgeResources \ --sku F1 無料プラン(F1)のIoT HubがIoTEdgeResourcesリソースグループに作成されます。作成には数分かかる場合があります。 ...

April 26, 2021 · 2 min · 胡田昌彦