デバイス更新エージェントのプロビジョニング
デバイス更新モジュール エージェントは、他のシステム プロセス、および同じ論理デバイスの一部として IoT Hub に接続されている IoT Edge モジュールと平行して実行できます。 このセクションでは、デバイス更新エージェントをモジュール ID としてプロビジョニングする方法について説明します。
GA リリースでのデバイス更新エージェントへの変更
デバイス更新エージェントのバージョンを使用している場合は、GA バージョンである最新のエージェント バージョン 1.0.0 に移行してください。 変更する GA エージェントとアップグレード方法に関する記事を参照してください。
デバイス更新エージェントと配信の最適化エージェントのインストールされているバージョンは、IoT デバイス ツインの [デバイスのプロパティ] セクションで確認できます。 ADU Core インターフェイスでのデバイス プロパティについての詳細は、こちらをご覧ください。
モジュール ID とデバイス ID
IoT Hub では、デバイス ID ごとに最大 50 のモジュール ID を作成できます。 モジュールの ID ごとに、モジュール ツインは暗黙的に生成されます。 デバイス側では、IoT Hub デバイス SDK を使用して、それぞれが IoT Hub への独立した接続を確立するモジュールを作成できます。 モジュール ID とモジュール ツインは、デバイス ID とデバイス ツインと同様の機能を、より細かい粒度で提供します。 IoT Hub でのモジュール ID の詳細を参照してください
デバイス レベルのエージェントから、デバイスのモジュール ID としてのエージェントの追加に移行する場合は、デバイス ツインを介して通信していた古いエージェントを削除します。 デバイス更新エージェントをモジュール ID としてプロビジョニングすると、デバイスとデバイス更新サービス間のすべての通信がモジュール ツインを介して行われます。そのため、グループを作成するときに、デバイスのモジュール ツインにタグ付けすることを忘れないでください。すべての通信は、モジュール ツインを介して行われる必要があります。
デバイス更新のサポート
現在、デバイス更新では、次の種類の無線 IoT デバイスがサポートされています。
Linux デバイス (IoT Edge および非 IoT Edge のデバイス):
制約のあるデバイス:
- Eclipse ThreadX デバイス更新エージェントのサンプル: Azure リアルタイム オペレーティング システムでの Device Update for Azure IoT Hub のチュートリアル
切断されたデバイス:
前提条件
パッケージ ベースの更新用に IoT デバイスまたは IoT Edge デバイスを設定する場合は、次の手順に従って packages.microsoft.com をコンピューターのリポジトリに追加します。
デバイス更新エージェントをインストールするコンピューターまたは IoT デバイスにログオンします。
ターミナル ウィンドウを開きます。
デバイスのオペレーティング システムに対応するリポジトリ構成をインストールします。
curl https://packages.microsoft.com/config/ubuntu/18.04/multiarch/prod.list > ./microsoft-prod.list
生成されたリストを sources.list.d ディレクトリにコピーします。
sudo cp ./microsoft-prod.list /etc/apt/sources.list.d/
Microsoft GPG 公開キーをインストールします。
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo cp ./microsoft.gpg /etc/apt/trusted.gpg.d/
デバイス更新エージェントをモジュール ID としてプロビジョニングする方法
このセクションでは、次のデバイスで、デバイス更新エージェントをモジュール ID としてプロビジョニングする方法について説明します。
- IoT Edge 対応デバイス、または
- Edge IoT 以外のデバイス、または
- その他の IoT デバイス
デバイスで IoT Edge が有効になっていることを確認するには、IoT Edge をインストールする手順に関するページを参照してください。
管理している IoT デバイスの種類に基づいてデバイス更新エージェントを追加するには、以下のセクションのすべてまたはいずれかに従います。
IoT Edge 対応デバイスの場合
IoT Edge 対応デバイスでデバイス更新エージェントをプロビジョニングするには、次の手順に従います。
指示に従って、1 つの Linux IoT Edge デバイスを手動でプロビジョニングします。
デバイス更新のイメージの更新エージェントをインストールします。
Assets here リポジトリにサンプル イメージを用意しています。 swUpdate ファイルは、Raspberry Pi B3+ ボードにフラッシュできる基本イメージです。 .gz ファイルは、Device Update for IoT Hub を使用してインポートする更新プログラムです。 例については、イメージを IoT Hub デバイスにフラッシュする方法に関するページを参照してください。
デバイス更新のパッケージの更新エージェントをインストールします。
packages.microsoft.com の最新のエージェントのバージョンの場合: 次を使用して、デバイス上のパッケージ リストを更新し、デバイス更新エージェント パッケージとその依存関係をインストールします。
sudo apt-get update
sudo apt-get install deviceupdate-agent
Artifacts の "RC" (リリース候補) のエージェントのバージョンの場合: デバイス更新エージェントをインストールするマシンに .dep ファイルをダウンロードし、以下を実行します。
sudo apt-get install -y ./"<PATH TO FILE>"/"<.DEB FILE NAME>"
切断されたデバイス シナリオ用に MCC を設定する場合は、配信の最適化 APT プラグインをインストールします。
sudo apt-get install deliveryoptimization-plugin-apt
デバイス更新エージェントをインストールしたら、次のコマンドを実行して、Device Update の構成ファイルを編集する必要があります。
sudo nano /etc/adu/du-config.json
IoT Identity Service をプロビジョニング用に使用するエージェントについて、connectionType を "AIS" に変更します。 ConnectionData フィールドは空の文字列である必要があります。 "ここに値を配置" タグを持つすべての値を設定する必要があることに注意してください。 DU エージェントの構成に関するページを参照してください。
これで、IoT デバイスでデバイス更新エージェントを開始する準備ができました。
IoT Edge がインストールされていない Iot Linux デバイスの場合
IoT Linux デバイスでデバイス更新エージェントをプロビジョニングするには、次の手順に従います。
「Azure IoT Identity Service のインストール」の手順に従って、IoT Identity Service をインストールし、IoT デバイスに最新バージョンを追加します。
「Azure IoT Identity Service の構成」の手順に従って、IoT Identity Service を構成します。
最後に、デバイス更新エージェントをインストールします。 Assets here にサンプル画像を提供しており、swUpdate ファイルは、Raspberry Pi B3+ ボードにフラッシュできる基本イメージであり、.gz ファイルは、Device Update for IoT Hub を使用してインポートする更新プログラムです。 IoT Hub デバイスにイメージをフラッシュする方法の例を参照してください。
デバイス更新エージェントをインストールしたら、次のコマンドを実行して、Device Update の構成ファイルを編集する必要があります。
sudo nano /etc/adu/du-config.json
IoT Identity Service をプロビジョニング用に使用するエージェントについて、connectionType を "AIS" に変更します。 ConnectionData フィールドは空の文字列である必要があります。 "ここに値を配置" タグを持つすべての値を設定する必要があることに注意してください。 DU エージェントの構成に関するページを参照してください。
これで、IoT デバイスでデバイス更新エージェントを開始する準備ができました。
その他の IoT デバイス
テスト用または制約のあるデバイスの場合、デバイス更新エージェントを IoT ID サービスを使用せずに構成することもできます。 (モジュールまたはデバイスから) 接続文字列を使用してデバイス更新エージェントをプロビジョニングするには、次の手順に従います。
Assets here リポジトリにサンプル イメージを用意しています。 swUpdate ファイルは、Raspberry Pi B3+ ボードにフラッシュできる基本イメージです。 .gz ファイルは、Device Update for IoT Hub を使用してインポートする更新プログラムです。 例については、イメージを IoT Hub デバイスにフラッシュする方法に関するページを参照してください。
コンピューターまたは IoT Edge デバイス/IoT デバイスにログオンします。
ターミナル ウィンドウを開きます。
デバイス更新構成ファイルに接続文字列を追加します。
ターミナル ウィンドウに以下を入力します。
- Ubuntu エージェントの使用 use: sudo nano /etc/adu/du-config.json
- Yocto 参照イメージの使用 use: sudo nano /adu/du-config.json
プライマリ接続文字列をコピーします。
- デバイス更新エージェントがモジュールとして構成されている場合は、モジュールのプライマリ接続文字列をコピーします。
- それ以外の場合は、デバイスのプライマリ接続文字列をコピーします。
du-config.json ファイルの "connectionData" フィールドの値にコピーしたプライマリ接続文字列を入力します。 "ここに値を配置" タグを持つすべての値を設定する必要があることに注意してください。 DU エージェントの構成に関するページを参照してください
これで、IoT デバイスでデバイス更新エージェントを開始する準備ができました。
デバイス更新エージェントを開始する方法
このセクションでは、IoT デバイスで正常に実行されているモジュール ID としてデバイス更新エージェントを開始および検証する方法について説明します。
Device Update エージェントがインストールされているコンピューターまたはデバイスにログインします。
ターミナル ウィンドウを開き、次のコマンドを入力します。
sudo systemctl restart deviceupdate-agent
次のコマンドを使用して、エージェントの状態を確認できます。 問題が発生した場合は、こちらのトラブルシューティング ガイドを参照してください。
sudo systemctl status deviceupdate-agent
状態 OK が表示されます。
IoT Hub ポータルで、IoT デバイスまたは IoT Edge デバイスに移動し、デバイス更新エージェントを使用して構成したデバイスを見つけます。 そこで、デバイス更新エージェントがモジュールとして実行されていることが確認されます。 次に例を示します。
デバイス更新エージェントをビルドして実行する方法
独自のカスタマー デバイス更新エージェントをビルドして変更することもできます。 手順に従って、ソースからデバイス更新エージェントをビルドします。
エージェントが正常にビルドされたら、エージェントを実行します。 次に、エージェントをイメージに組み込むために必要な変更を行います。 ガイダンスについては、デバイス更新エージェントを変更する方法をご覧ください。
トラブルシューティング ガイド
問題が発生した場合は、IoT Hub 用デバイス更新のトラブルシューティング ガイドをご確認ください。考えられる問題を取り除き、Microsoft に提供する必要がある情報を収集するのに役に立ちます。
次のステップ
次のチュートリアルを使用して、Device Update for IoT Hub の簡単なデモを実行できます。
イメージの更新: Raspberry Pi 3 B+ 参照 Yocto イメージの使用を開始することに関する記事。必要に応じて他のアーキテクチャ用の独自のイメージをビルドするために、オープン ソースを通じて拡張できます。
Azure リアルタイム オペレーティング システムでの Device Update for Azure IoT Hub のチュートリアル