次の方法で共有


チュートリアル: Azure IoT Hub の Device Update を使用してプロキシ更新を完了する

まだ行っていない場合は、「 Azure IoT Hub の Device Update でのプロキシ更新プログラムの使用」を参照してください。

テスト デバイスまたは仮想マシンを設定する

このチュートリアルでは、例として Ubuntu Server 18.04 LTS 仮想マシン (VM) を使用します。

デバイス更新エージェントと依存関係をインストールする

  1. APT パッケージ リポジトリに packages.microsoft.com を登録します。

    sudo apt-get update
    
    sudo apt install curl
    
    curl https://packages.microsoft.com/config/ubuntu/18.04/multiarch/prod.list > ~/microsoft-prod.list
    
    sudo cp ~/microsoft-prod.list /etc/apt/sources.list.d/
    
    curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > ~/microsoft.gpg
    
    sudo cp ~/microsoft.gpg /etc/apt/trusted.gpg.d/
    
    sudo apt-get update
    
  2. IoT デバイスに deviceupdate-agent をインストールします。 packages.microsoft.com から最新の Device Update Debian ファイルをダウンロードします。

    sudo apt-get install deviceupdate-agent
    

    または、ダウンロードした Debian ファイルをテスト VM にコピーします。 コンピューターで PowerShell を使用している場合は、次のシェル コマンドを実行します。

      scp <path to the .deb file> tester@<your vm's ip address>:~
    

    次に、VM にリモート接続し、 ホーム フォルダーで次のシェル コマンドを実行します。

          #go to home folder 
          cd ~
          #install latest Device Update agent
          sudo apt-get install ./<debian file name from the previous step>
    
  3. Azure IoT Hub に移動し、IoT デバイスの Device Update モジュールのプライマリ接続文字列をコピーします。 connectionData フィールドの既定値を、du-config.json ファイルのプライマリ接続文字列に置き換えます。

       sudo nano /etc/adu/du-config.json  
    

    代わりにデバイスのプライマリ接続文字列をコピーできますが、Device Update モジュールには文字列を使用することをお勧めします。 モジュールの設定の詳細については、「 デバイス更新エージェントのプロビジョニング」を参照してください。

  4. /etc/adu/du-diagnostics-config.json にログ収集の正しい設定が含まれていることを確認します。 例えば次が挙げられます。

    {
      "logComponents":[
        {
          "componentName":"adu",
           "logPath":"/var/log/adu/"
        },
        {
          "componentName":"do",
          "logPath":"/var/log/deliveryoptimization-agent/"
        }
      ],
      "maxKilobytesToUploadPerLogPath":50
    }
    
  5. Device Update エージェントを再起動します。

    sudo systemctl restart adu-agent
    

モック コンポーネントを設定する

テストとデモンストレーションの目的で、デバイス上に次のモック コンポーネントを作成します。

  • 3つのモーター
  • 2 台のカメラ
  • hostfs
  • "rootfs"

重要

上記のコンポーネント構成は、 libcontoso-component-enumerator.so と呼ばれるコンポーネント列挙子拡張機能の例の実装に基づいています。 また、次のモック コンポーネント インベントリ データ ファイル (/usr/local/contoso-devices/components-inventory.json) も必要です。

  1. デモ フォルダーをテスト VM 上のホーム ディレクトリにコピーします。 次に、次のコマンドを実行して、必要なファイルを適切な場所にコピーします。

    `~/demo/tools/reset-demo-components.sh` 
    

    reset-demo-components.sh コマンドは、ユーザーに代わって次の手順を実行します。

    1. components-inventory.json コピーし、/usr/local/contoso-devices フォルダーに追加します。

    2. Contoso コンポーネント列挙子拡張機能 (libcontoso-component-enumerator.so) が Assets フォルダー からコピーされ、 /var/lib/adu/extensions/sources フォルダーに追加されます。

    3. 拡張機能が登録されます。

      sudo /usr/bin/AducIotAgent -E /var/lib/adu/extensions/sources/libcontoso-component-enumerator.so
      
  2. 次のコマンドを使用して、現在のコンポーネントのソフトウェア バージョンを表示して記録し、プロキシの更新をサポートするように VM を設定します。

    ~/demo/show-demo-components.sh
    

更新プログラムの例をインポートする

まだ作成していない場合は、IoT ハブの構成を含め、 Device Update アカウントとインスタンスを作成します。 次に、次の手順を開始します。

  1. 最新の Device Update リリースの [ 資産] で、プロキシ更新プログラムのインポート マニフェストとイメージをダウンロードします。

  2. Azure portal にサインインし、Device Update がある IoT Hub に移動します。 左側のウィンドウで、 デバイス管理>Updates を選択します。

  3. [Updates] タブを選択します。

  4. [+ 新しい更新プログラムのインポート] を選択します。

  5. [ + ストレージ コンテナーから選択] を選択し、ストレージ アカウントとコンテナーを選択します。

    ストレージ コンテナーからインポートすることを選択するためのボタンを示すスクリーンショット。

  6. [ アップロード] を選択して、手順 1 でダウンロードしたファイルを追加します。

  7. 親インポート マニフェスト、子インポート マニフェスト、ペイロード ファイルをコンテナーにアップロードします。

    次の例は、スマート 掃除機 デバイスに接続されているカメラを更新するためにアップロードされたサンプル ファイルを示しています。 また、オンエアアップデートの前にカメラをオフにするプレインストールスクリプトも含まれています。

    この例では、親インポート マニフェストは contoso.Virtual-Vacuum-virtual-camera.1.4.importmanifest.jsonです。 カメラを更新するための詳細を含む子インポート マニフェストが Contoso.Virtual-Vacuum.3.3.importmanifest.json。 両方のマニフェスト ファイル名は、必要な形式に従い、.importmanifest.jsonで終わる点に注意 してください

    スマート 掃除機 デバイスに接続されているカメラを更新するためにアップロードされたサンプル ファイルを示すスクリーンショット。

  8. を選択し、を選択してください。」

  9. これで、デバイス更新プログラムにインポートされるファイルの一覧が UI に表示されます。 [ 更新プログラムのインポート] を選択します

    一覧表示されたファイルと、更新プログラムをインポートするためのボタンを示すスクリーンショット。

  10. インポート プロセスが開始され、画面が [ インポート履歴 ] セクションに変わります。 [ 最新の情報に更新] を選択すると、インポート プロセスが完了するまで進行状況が表示されます。 更新プログラムのサイズによっては、インポートが数分で完了するか、時間がかかる場合があります。

  11. [状態] 列にインポートが成功したことが示されたら、[利用可能な更新プログラム] タブを選択します。インポートした更新プログラムが一覧に表示されます。

    一覧に追加されたインポートされた更新プログラムを示すスクリーンショット。

更新プログラムのインポートについて詳しくは、こちらをご覧ください

更新プログラム グループを作成する

  1. ページの上部にある [グループとデプロイ] タブに移動します。 グループ化されていないデバイスのスクリーンショット。

  2. [グループの追加] ボタンを選択して、新しいグループを作成します。 デバイス グループの追加のスクリーンショット。

  3. 一覧から IoT Hub タグとデバイス クラスを選択し、[グループの作成] を選択します。 タグの選択のスクリーンショット。

  4. グループが作成されると、更新プログラムのコンプライアンス チャートとグループの一覧が更新されます。 更新プログラムのコンプライアンス チャートには、コンプライアンスのさまざまな状態のデバイスの数が表示されます。最新の更新プログラム、利用可能な新しい更新プログラム、進行中の更新プログラムです。 更新プログラムのコンプライアンスについて説明します。更新プログラムのコンプライアンス ビューのスクリーンショット。

  5. 新しく作成されたグループと、新しいグループ内のデバイスで利用可能な更新プログラムが表示されます。 グループのデバイス クラス要件を満たしていないデバイスがある場合は、対応する無効なグループに表示されます。 グループの横にある [デプロイ] ボタンをクリックすると、このビューから新しいユーザー定義グループに最適な更新プログラムをデプロイできます。

タグの追加と更新グループの作成に関する詳細な を確認する

更新プログラムの展開

  1. グループが作成されると、デバイス グループで使用できる新しい更新プログラムが表示され、[更新プログラムの更新] の下に更新へのリンクが表示されます (1 回更新する必要がある場合があります)。 更新プログラムのコンプライアンスの詳細について説明します。

  2. グループ名をクリックして、ターゲット グループを選択します。 [グループの基本] の下にあるグループの詳細が表示されます。

グループの詳細

  1. デプロイを開始するには、[現在のデプロイ] タブに移動します。[利用可能な更新プログラム] セクションで、目的の更新プログラムの横にあるデプロイ リンクをクリックします。 特定のグループに対して利用可能な最適な更新プログラムは、"ベスト" 強調表示で示されます。

更新プログラムの を選択する

  1. すぐにまたは将来開始するようにデプロイをスケジュールし、[作成] を選択します。

デプロイの作成

  1. [展開の詳細] の [状態] が [アクティブ] に変わり、展開された更新プログラムは "(deploying)" とマークされている必要があります。

展開中

  1. コンプライアンス チャートを表示します。 更新が進行中であることがわかります。

  2. デバイスが正常に更新されると、コンプライアンス チャートと展開の詳細が更新されて、現在の状態が反映されていることが確認できます。

    更新に成功した

更新プログラムの展開を監視する

  1. ページの上部にある [デプロイ履歴] タブを選択します。

    デプロイ履歴

  2. 作成したデプロイの横にある詳細リンクを選択します。

    展開の詳細

  3. 最新の状態の詳細を表示するには、[最新の情報に更新] を選択します。

これで、Device Update for IoT Hub を使用して、エンドツーエンドのプロキシ更新が正常に完了しました。

リソースをクリーンアップする

不要になったら、Device Update アカウント、インスタンス、IoT ハブ、IoT デバイスをクリーンアップします。

次のステップ

Device Update for IoT Hub の簡単なデモンストレーションには、次のチュートリアルを使用できます。