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 デバイスで実行することはできますが、ここでは Ubuntu ベースの仮想マシンを Azure にデプロイし、IoT Edge デバイスとして機能させます。

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

リソース グループとは

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

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

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

IoT Edge ランタイムは、デバイスを 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 ハブを作成するには、az iot hub create コマンド セットを使用します。

Note

サブスクリプションで使用できる無料の IoT Hub インスタンスは、1 つだけです。 この演習では無料レベルの IoT Hub を使用できます。 IoT Hub を以前に使用したことがあり、無料のハブを作成済みである場合は、その IoT ハブを使用できます。

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

  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 セキュリティ デーモンがシステム サービスとして実行されているかどうかを確認できます。

Note

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