🕸️
Azure IoT Hubをつかってみる-Azure Portalでの環境構築とVSCode IoT拡張機能によるメッセージ送信
はじめに
Azure IoT Hubどんな感じか使ってみました。
自身の備忘録を含め、Azure Portal を利用して IoT Hub を作成し、Visual Studio Code の IoT 拡張機能から簡単なメッセージ送信を実施する手順を紹介します。
本記事の作業範囲
- Azure IoT Hubを作成する
- デバイスからのメッセージの保存先としてストレージアカウントを作成する
- vscode拡張機能を利用し、メッセージを発行する
- メッセージがAzure内のストレージに保存されることを確認する
関連記事
- Azure Portalでの環境構築とVSCode IoT拡張機能によるメッセージ送信🔴本記事🔴
- コードベースでAzure IoT hubにメッセージ送信
- ラズパイからAzure IoT hubにメッセージ送信
- クラウド側のメッセージをデバイスで受信
前提条件と準備
- Azure アカウント:Azure Portal にアクセスするためのアカウント
- Visual Studio Code (VSCode):コードエディタ。拡張機能をインストールして利用
作業手順
Azure Portalでの環境構築
IoT Hub の作成
- IoT Hubを作成
- 今回はレベル - Standardで作成します
メッセージのエンドポイント設定(ストレージアカウント作成)
- メッセージルーティングを選択
- 追加を選択
- ストレージを選択し、コンテナを選択する
- ストレージアカウントを作成
- 保存先のコンテナを作成
- ストレージアカウントを作成
- 最終的に以下の設定とした
- バッチ頻度を100秒->60秒に変更(はやめの適用が見たいため)
- エンコードをAVRO->JSONに変更
メッセージのルーティング設定
つづけてRouteを設定する
- 下記のように設定した
- ルートを有効にする にチェック
- ルーティングクエリは、以下
$body.status='error'
- status:errorの場合に、コンテナerror-msgsに保存予定
- ルーティングクエリが正しいか確認する
- 上記を記載し、"ルートのテスト"を実行
- メッセージがクエリの条件に合致することを確認
- 上記を記載し、"ルートのテスト"を実行
デバイスの作成
デバイスの作成をします
- デバイス管理のデバイスを選択する
- 下記の設定とした
- デバイスID : ユニークなID, この名前をベースにアクセス
- 対称キー:Shared Access Signature
- Azure Cloudに対する認証を行うためにAzureが自動生成するトークン
- 作成すると一覧に表示される
共有アクセスの確認
vscodeからのIoT hubに接続するには、接続のための文字列が必要となる。
共有アクセスポリシーから確認できる。
- 共有ポリシーから、iothubownerを選択
- 最も権限を持っている
- プライマリ接続文字列をコピー
上記の接続文字列は、vscode側のセットアップに利用する
vscode側の操作
拡張機能 - Azure IoT Hubのセットアップ
- 拡張機能をインストール
- エクスプローラー下部にAZURE IOT HUBあり
- 右クリックし、事前に取得したプライマリ接続文字列をコピペする
- 接続に成功すると、iot hub, Devicesが表示される
拡張機能からAzure側にメッセージを送信する
- デバイスを右クリックし、"Send D2C Message to IoT Hub"を選択
- 下記を入力し、"Send"する
- Editには、クエリの条件に合致するようstatus:errorとする
{ "status": "error", "message": "failed to retrieve data" }
Azure側で確認
メトリックから確認
- メトリックから確認することができる
- Routing: data delivered to storageを指定
ストレージのコンテナを確認
-
指定したストレージコンテナをみるとjsonファイル(分名)が存在する
-
上記のファイルを開く
{"EnqueuedTimeUtc":"2025-03-28T20:27:03.8040000Z","Properties":{},"SystemProperties":{"connectionDeviceId":"iotdev1","connectionAuthMethod":"{\"scope\":\"device\",\"type\":\"sas\",\"issuer\":\"iothub\"}","connectionDeviceGenerationId":"638787901862736111","contentType":"application/json","contentEncoding":"utf-8","enqueuedTime":"2025-03-28T20:27:03.8040000Z"},"Body":{
"status": "error",
"message": "failed to retrieve data"
}
}
送信データを確認できました
まとめ
Azure IoT hubの作成から、簡単なメッセージ送信の確認ができました
次はコードベースでメッセージ送信をしたいと思います
GitHubで編集を提案
Discussion