👋

Microsoft Fabricミラーリング×Azureを使ったアーキ①【Azure編】

2024/04/24に公開

やりたいこと

下記のアーキを元にAzureとFabricの構築/開発を行う。

今回は、Azureの構築を行う

IoTHubの構築

  1. Azure portalを開く
  2. 「IotHub」と検索し、「IotHub」をクリック
  3. 「+作成」をクリック
  4. 必要なパラメータを入力し、作成をクリック
  5. IotHubが作成されたことを確認
  6. 「デバイス」をクリック
  7. 「+デバイスの追加」をクリック
  8. デバイスIDを入力し、「保存」をクリック
  9. 作成されたことを確認

CosmosDBの構築

  1. Azure portalを開く
  2. 「CosmosDB」と検索し、「CosmosDB」をクリック
  3. 「+作成」をクリック
  4. 「コア(SQL)-推奨」をクリック
  5. 必要なパラメータを入力していく。
    ※ミラーリングには、継続的バックアップが必須です。
  6. 入力完了後、「作成」をクリック
  7. 「クイック スタート」をクリック
  8. 「コンテナー作成」をクリック
  9. 「データエクスプローラー」をクリック
  10. データベースとコンテナーが表示されることを確認

ルーティングの設定

  1. IoTHubを開く
  2. 左の「メッセージルーティング」をクリック
  3. 「+追加」をクリック
  4. 下記のようにパラメータを入力し、「作成して次へ」をクリック
  5. 「エンリッチメントの作成とスキップ」をクリック
  6. ルーティングが完了したことを確認

IotHubにデータを送る

  1. 下記のコードを実行する
from azure.iot.device import IoTHubDeviceClient, Message
import random
import time
import json
from datetime import datetime

CONNECTION_STRING = "Your-Device-Connection-String"

# 接続文字列を使用してデバイスクライアントのインスタンスを生成
client = IoTHubDeviceClient.create_from_connection_string(CONNECTION_STRING)

while True:
    # 現在の日時を取得
    current_time = str(datetime.now())
    # ランダムな温度と湿度の値を生成
    temperature = 20 + (random.random() * 10)
    humidity = 60 + (random.random() * 20)
    # データを辞書形式で作成
    data = {"temperature": temperature, "humidity": humidity, "time": current_time}
    # データをJSON形式の文字列に変換
    message = Message(json.dumps(data))
    # メッセージを送信
    client.send_message(message)
    print(f"Message sent: {message}")
    # 1秒待機
    time.sleep(1)

※接続文字列作成方法は、下記です。
https://learn.microsoft.com/ja-jp/azure/iot-hub/iot-hub-create-through-portal#register-a-new-device-in-the-iot-hub
2. CosomosDBを開く
3. 「データエクスプローラー」をクリック

4. エンコードされたデータがCosmosDBにたまっていることを確認

ヘッドウォータース

Discussion