IoT Edge を更新する

適用対象:IoT Edge 1.5 のチェックマーク IoT Edge 1.5 IoT Edge 1.4 チェックマーク IoT Edge 1.4

重要

IoT Edge 1.5 LTS および IoT Edge 1.4 LTS がサポートされているリリースです。 IoT Edge 1.4 LTS は、2024 年 11 月 12 日にサポートが終了します。

IoT Edge サービスの新しいバージョンがリリースされたら、最新の機能およびセキュリティの強化のために、IoT Edge デバイスを更新します。 この記事では、新しいバージョンが使用可能になったときに、IoT Edge デバイスを更新する方法について説明します。

新しいバージョンに移行する場合、IoT Edge デバイスの 2 つの論理コンポーネントを更新する必要があります。

  • セキュリティ サブシステム - デバイス上で実行され、セキュリティ ベースのタスクを処理し、デバイスの起動時にモジュールを起動します。 セキュリティ サブシステムは、デバイス自体からのみ更新できます。

  • IoT Edge ランタイム - IoT Edge ランタイムは、IoT Edge ハブ (edgeHub) と IoT Edge エージェント (edgeAgent) モジュールから構成されます。 デプロイの構成方法に応じて、ランタイムはデバイスから、またはリモートで更新できます。

更新方法

この記事のセクションを使用して、デバイス上のセキュリティ サブシステムとランタイム コンテナーの両方を更新します。

パッチ リリース

パッチ リリース間 (1.4.1 から 1.4.2 など) でアップグレードする場合、更新順序は重要ではありません。 セキュリティ サブシステムまたはランタイム コンテナーは、どちらを先にアップグレードしてもかまいません。 パッチ リリース間で更新するには:

  1. セキュリティ サブシステムを更新する
  2. ランタイム コンテナーを更新する
  3. バージョンの一致を確認する

アップグレード プロセスのトラブルシューティングはいつでも行うことができます。

メジャー リリースまたはマイナー リリース

メジャーまたはマイナー リリース間 (1.4 から 1.5 など) でアップグレードする場合は、セキュリティ サブシステムとランタイム コンテナーの両方を更新します。 リリース前に、セキュリティ サブシステムとランタイム コンテナーのバージョンの組み合わせをテストします。 メジャーまたはマイナーの製品リリース間で更新するには:

  1. デバイスで、コマンド sudo systemctl stop iotedge を使用して IoT Edge を停止し、アンインストールします。

  2. デバイスで、Docker または Moby を使用してコンテナー エンジンをアップグレードします。

  3. デバイスに IoT Edge をインストールします

    iotedge config import を使用して古い構成をインポートする場合は、edgeAgent 用に 1.4 イメージを使用するように、生成された /etc/aziot/config.toml ファイルの [agent.config] イメージを変更します。

    詳細については、「IoT Edge デバイスの設定を構成する」を参照してください。

  4. IoT Hub で、モジュールのデプロイを更新し、最新のシステム モジュールを参照します。

  5. デバイスで、sudo iotedge config apply を使用して IoT Edge を起動します。

アップグレード プロセスのトラブルシューティングはいつでも行うことができます。

セキュリティ サブシステムを更新する

IoT Edge セキュリティ サブシステムには、ネイティブ コンポーネントのセットが含まれており、IoT Edge デバイス上のパッケージ マネージャーを使って更新する必要があります。

デバイスで実行されているセキュリティ サブシステムのバージョンを確認するには、コマンド iotedge version を使います。 IoT Edge for Linux on Windows を使用している場合は、Linux 仮想マシンに SSH で接続してバージョンを確認する必要があります。

Linux x64 デバイスでは、apt-get または適切なパッケージ マネージャーを使用して、セキュリティ サブシステムを最新バージョンに更新します。

以下を更新します。apt:

sudo apt-get update

Note

Microsoft から最新のリポジトリ構成を取得する手順については、IoT Edge をインストールするための準備手順を参照してください。

使用できる IoT Edge のバージョンを確認します。

apt list -a aziot-edge

IoT Edge を更新する

sudo apt-get install aziot-edge defender-iot-micro-agent-edge

apt-get install aziot-edge を実行すると、セキュリティ サブシステムがアップグレードされ、必要な依存関係として ID サービス (aziot-identity-service) がインストールされます。

Edge デバイスのセキュリティ監視とセキュリティ強化を有効にするには、Edge エージェントを使ってマイクロ エージェントをインストールすることをお勧めします。 Microsoft Defender for IoT の詳細については、「デバイス ビルダー向け Microsoft Defender for IoT とは」を参照してください。

その後、構成を再適用して、システムが完全に更新されるようにします。

sudo iotedge config apply

ランタイム コンテナーの更新

IoT Edge エージェントおよび IoT Edge ハブ コンテナーを更新する方法は、デプロイにローリング タグ (1.5 など) を使用しているか、特定のタグ (1.5.1 など) を使用しているかによって異なります。

デバイス上の IoT Edge エージェントおよび IoT Edge ハブ モジュールの現在のバージョンを確認するには、コマンド iotedge logs edgeAgent または iotedge logs edgeHub を使用します。 IoT Edge for Linux on Windows を使用している場合は、Linux 仮想マシンに SSH で接続してランタイム モジュールのバージョンを確認する必要があります。

コンソール ログでコンテナーのバージョンを検索する場所のスクリーンショット。

IoT Edge のタグについて

IoT Edge エージェントおよび IoT Edge ハブ イメージには、関連付けられている IoT Edge のバージョンでタグ付けされます。 ランタイム イメージでタグを使用する方法は 2 つあります。

  • ローリング タグ - バージョン番号の先頭の 2 つの値のみを使用して、これらの数字に一致する最新のイメージを取得します。 たとえば、最新の 1.5.x バージョンを指す新しいリリースが存在するたびに、1.5 が更新されます。 IoT Edge デバイス上のコンテナー ランタイムによって、再度イメージが取得されると、ランタイム モジュールが最新バージョンに更新されます。 Azure portal からのデプロイでは、既定でローリング タグに設定されます。 開発目的では、このアプローチが推奨されます。

  • 特定のタグ - バージョン番号の 3 つすべての値を使用して、イメージのバージョンを明示的に設定します。 たとえば、1.5.0 はその最初のリリース後に変更されることはありません。 更新する準備ができたら、配置マニフェストに新しいバージョン番号を宣言できます。 運用環境目的では、このアプローチが推奨されます。

ローリング タグ イメージの更新

デプロイでローリング タグを使用している (mcr.microsoft.com/azureiotedge-hub:1.5 など) 場合、デバイス上のコンテナー ランタイムに強制的にイメージの最新バージョンを取得させる必要があります。

IoT Edge デバイスからイメージのローカル バージョンを削除します。 Windows マシンでは、セキュリティ サブシステムをアンインストールするとランタイム イメージも削除されるため、この手順をもう一度実行する必要はありません。

docker rmi mcr.microsoft.com/azureiotedge-hub:1.5
docker rmi mcr.microsoft.com/azureiotedge-agent:1.5

強制の -f フラグを使用して、イメージを削除する必要がある場合があります。

IoT Edge サービスによって、ランタイム イメージの最新バージョンが取得され、自動的にデバイス上でそれらが再度起動されます。

特定のタグ イメージの更新

デプロイで特定のタグを使用している (mcr.microsoft.com/azureiotedge-hub:1.4 など) 場合、行う必要がある作業は、配置マニフェスト内のタグを更新し、デバイスに変更を適用することだけです。

  1. Azure portal の IoT Hub で、IoT Edge デバイスを選択し、[Set Modules]\(モジュールの設定\) を選択します。

  2. [モジュール] タブで [ランタイムの設定] を選択します。

  3. [ランタイムの設定] で、[Edge エージェント][イメージ URI] の値を適切なバージョンに更新します。 たとえば、mcr.microsoft.com/azureiotedge-agent:1.5 です。[適用] はまだ選択しないでください。

  4. [Edge ハブ] タブを選択し、[イメージ URI] の値を同じ適切なバージョンに更新します。 たとえば、mcr.microsoft.com/azureiotedge-hub:1.5 のようにします。

  5. [適用] を選択して変更を保存します。

  6. [確認と作成] を選択し、JSON ファイルに示されているようにデプロイを確認し、[作成] を選択します。

バージョンの一致を確認する

  1. デバイス上で、iotedge version を使ってセキュリティ サブシステムのバージョンを確認します。 出力には、メジャー、マイナー、リビジョンの各バージョン番号が含まれます。 たとえば、iotedge 1.4.2 です。

  2. デバイス デプロイのランタイム設定で、edgeHubedgeAgent のイメージ URI バージョンがセキュリティ サブシステムのメジャーとマイナーのバージョンと一致することを確認します。 セキュリティ サブシステムのバージョンが 1.4.2 の場合、イメージのバージョンは 1.4 になります。 たとえば、mcr.microsoft.com/azureiotedge-hub:1.4mcr.microsoft.com/azureiotedge-agent:1.4 です。

Note

IoT Edge セキュリティ サブシステムとランタイム コンテナーを、サポートされている同じリリース バージョンに更新します。 一致しないバージョンはサポートされていますが、すべてのバージョンの組み合わせをテストしているわけではありません。

Azure IoT Edge の最新バージョンを見つけるには、Azure IoT Edge リリースに関する記事を参照してください。

トラブルシューティング

デバイスから次のコマンドを実行すると、システムのログをいつでも表示できます。

  • check コマンドを使用してトラブルシューティングを開始します。 一般的な問題に関する構成テストと接続テストのコレクションが実行されます。

    sudo iotedge check --verbose
    
  • IoT Edge システム サービスの状態を表示するには次のコマンドを実行します。

    sudo iotedge system status 
    
  • ホスト コンポーネント ログを表示するには、次のコマンドを実行します。

    sudo iotedge system logs
    
  • edgeAgent と edgeHub で報告された定期的な問題を確認するには、次のコマンドを実行します。

    必ず <module> を使用するモジュール名に置き換えてください。 問題がない場合は、出力は表示されません。

    sudo iotedge logs <module>
    

詳しくは、「IoT Edge デバイスのトラブルシューティング」を参照してください。

次のステップ

最新の Azure IoT Edge リリースを確認する

モノのインターネットのブログの最新の更新とお知らせによって最新情報を得る