IoT Hub と IoT Edge との間の通信を設定する

完了

次の手順では、モジュールをデプロイするように IoT Edge、IoT Hub、IoT デバイスを設定して構成する方法をまとめます。

  1. リソース グループを定義するか、既存のものを使用します。
  2. Azure IoT Edge デバイスを作成します。
  3. Azure IoT Hub を作成するか、既存のものを使用します。
  4. IoT Edge デバイスを IoT Hub に登録します。

Azure IoT Edge ランタイムは物理 Linux デバイスで実行できますが、この記事では、Azure の Ubuntu ベースの仮想マシンを IoT Edge デバイスとして使用します。

演習に従うには、アクティブな Azure サブスクリプションが必要です。 30 日間の試用版で無料アカウントを作成するか、従量課金制サブスクリプションを使用します。

リソース グループとは

リソース グループは、Azure リソースを論理的にグループ化するためのコンテナーです。 これらのリソースには、1 つのエンティティとして扱うストレージ アカウント、仮想ネットワーク、仮想マシン (VM) を含めることができます。 リソース グループには、リソースについてのメタデータが格納されます。 リソース グループの場所を指定するときは、そのメタデータを格納する場所を選択します。 コンプライアンス上の理由から、データを特定のリージョンに保持することが必要になる場合があります。

Azure IoT Edge デバイスを作成する

IoT Edge デバイスには IoT Edge ランタイムがインストールされています。 Azure "IoT Edge on Ubuntu" 仮想マシンは、使用できる IoT デバイスです。

IoT Edge ランタイムは、デバイスを IoT Edge デバイスに変えるプログラムのコレクションです。 これらのコンポーネントを使用すると、IoT Edge デバイスはエッジで実行するコードを受信し、IoT Hub と結果を通信できます。

  • IoT Edge モジュール ランタイム: IoT Edge デバイスが起動し、IoT Edge エージェントを実行してデバイスを初期化するたびに開始されます。
  • IoT Edge エージェント: IoT Edge ハブを含む、IoT Edge デバイス上のモジュールのデプロイと監視を管理します。
  • IoT Edge ハブ: IoT Edge デバイス上のモジュール間、およびデバイスと IoT Hub 間の通信を処理します。

IoT Hub の作成

Azure IoT Hub を使用すると、仮想デバイスはクラウドと通信できます。 Azure CLI を使用して新しい Azure IoT Hub を作成するには、 az iot hub create コマンド セットを使用します。

サブスクリプションで使用できる無料の IoT Hub インスタンスは、1 つだけです。 この演習では無料レベルの IoT Hub を使用できます。 過去に IoT Hub を使用し、既に無料のハブを作成している場合は、その IoT ハブを使用します。

IoT Edge デバイスを IoT Hub に登録する

  1. az iot hub device-identity create コマンドを実行して、Azure で Edge デバイスのデバイス ID を作成します。 デバイス ID を使用すると、デバイスは IoT Hub と通信できます。
  2. az iot hub device-identity connection-string show コマンドを実行して接続文字列を取得します。 各デバイス ID は、一意の接続文字列を使用して物理デバイスに関連付けます。
  3. IoT Hub に接続できるように、IoT Edge デバイスで接続文字列を設定します。 デバイスでスクリプトを実行して、仮想マシンに接続せずにリモートでこれを行います。 az vm run-command コマンドを実行して、エッジ デバイスでスクリプトを呼び出し、接続文字列をパラメーターとして渡します。

IoT Edge デバイスで事前構築済みモジュールを実行する準備ができていることを確認する

エッジ デバイスが構成されたら、事前構築済みモジュールを実行する準備ができているかどうかを確認します。

  • デバイスのパブリック IP アドレスを使用してエッジ デバイスにサインインし、 ssh commandを実行します。
  • iotedgeコマンドを使用して、IoT Edge セキュリティ デーモンがシステム サービスとして実行されているかどうかを確認します。

iotedgeコマンドを実行するには、昇格された特権が必要です。