Device Update for IoT Hub のトラブルシューティング ガイド

このドキュメントでは、デバイス更新ユーザーが報告した一般的な質問と問題のいくつかを一覧表示します。 このトラブルシューティング ガイドに記載されていない問題が発生した場合は、その状況を文書化するために「Microsoft サポートへの問い合わせ」セクションを参照してください。

更新プログラムのインポート

Q: デバイス更新インスタンスを IoT Hub インスタンスに接続するときに問題が発生しています

デバイス更新リソースのドキュメントに従って、IoT Hub メッセージ ルートが正しく構成されていることを確認してください。

アクセス許可が正しく構成されていない可能性があります。 デバイス更新アクセス制御のドキュメントに従って、アクセス許可が正しく構成されていることを確認してください。

Q: コンテンツをデバイス更新サービスにインポートするときに 500 タイプのエラーが発生しています

500 の範囲内のエラー コードは、デバイス更新サービスでの問題を示している可能性があります。 5 分待ってから再試行してください。 引き続き同じエラーが発生する場合は、「Microsoft サポートへの問い合わせ 」セクションの手順に従って Microsoft にサポート リクエストを提出してください。

Q: 同じ互換性プロパティ (更新プログラムを同じデバイスの種類にターゲットとする) を保持したいが、インポート マニフェストでプロバイダーまたは名前を変更したい。 しかしそうすると、「失敗しました: 制限を超えたために更新プログラムをインポートできませんでした」というエラーが表示されます

互換性プロパティの同一のセットは、複数のプロバイダーと名前の組み合わせで使用できません。 これにより、Device Update サービスでは、特定のデバイスに展開するために使用できる更新プログラムを確実に決定できます。 1 つのデバイスで複数のコンポーネントまたはパーティションを更新する必要がある場合は、 プロキシの更新機能でその機能が提供されます。

Q: コンテンツをインポートするときにエラー メッセージが発生しており、これについて詳しく理解したいと考えています

インポート関連のエラー メッセージの詳細については、デバイス更新エラー コードに関するドキュメントを参照してください。

デバイス障害

Q: デバイスが Device Update for IoT Hub に接続されていることを確認するにはどうすればよいですか?

デバイスがデバイス更新に接続されていることは、それが Azure portal のコンプライアンス ビューの "グループに属していない" デバイスのセクションに表示されているかどうかをチェックすることによって確認できます。

Q: 1 つ以上のデバイスが更新に失敗しています

デバイス更新が失敗する根本原因として多くのものが考えられます。 デバイスが 1) IoT Hub インスタンスに接続されていること、2) デバイス更新インスタンスに接続されていること、3) 配信の最適化 (DO) サービスが実行されていることを検証してください。 デバイスに 3 つのすべてが当てはまる場合は、「Microsoft サポートへの問い合わせ 」セクションの手順に従って Microsoft にサポート リクエストを提出してください。

Q: デバイス更新エージェントの起動に失敗しています

デバイス更新エージェントの起動でエラーが発生する最も一般的な理由の 1 つは、形式が正しくない構成ファイル (du-config.json) です。 構成ファイルのドキュメントを参照し、エージェントが正しく構成されていることを確認してください。 構成ファイル内のすべての値は二重引用符を使用する必要があることに注意してください。

更新プログラムのデプロイ

Q: デバイスに更新プログラムをデプロイしましたが、コンプライアンス状態には最新の更新プログラムになっていないことが示されています。 どうすればよいですか。

デバイスのコンプライアンス状態は、更新されるまでに最大 5 分かかることがあります。 しばらく待ってから再確認してください。

Q: デバイスのデプロイの状態には互換性がないことが示されてます。どうすればよいですか?

デバイスを IoT Hub に接続した後に、対象デバイスの製造元とモデルのプロパティが変更されたため、デバイスが現在のデプロイの更新プログラム コンテンツと互換性がないと見なされるようになっている可能性があります。

ADU Core インターフェイスをチェックして、デバイスがデバイス更新サービスにどのような製造元とモデルを報告しているかを確認し、それがデプロイされる更新プログラム コンテンツのインポート マニフェストで指定した製造元とモデルに一致していることを確認してください。 特定のデバイスのこれらのプロパティは、デバイス更新構成ファイルを使用して変更できます。

Q: デプロイは "アクティブ" ステージと表示されていますが、どのデバイスでも更新プログラムが "進行中" になっていません。 どうすればよいですか。

デプロイ開始日が将来に設定されていないことを確認してください。 新しいデプロイを作成した場合、デプロイ開始日は、明示的に変更しない限り、保護機能として既定で翌日に設定されます。 展開開始日に達するまで待つか、または進行中の展開をキャンセルし、目的の開始日で新しい展開を作成することができます。

Q: デバイスをグループ化しようとしていますが、グループを作成するときに、ドロップダウンにタグが表示されません

デバイス更新リソースのドキュメントに従って、IoT Hub でメッセージ ルートを正しく構成していることを確認してください。 ルートを構成した後、再びデバイスにタグを付ける必要があります。

別の根本原因は、デバイスを Device Update for IoT Hub に接続する前にタグを適用したことである可能性があります。 デバイスが既にデバイス更新に接続されていることを確認してください。 デバイスが Device Update for IoT Hub に接続されていることは、それがコンプライアンス ビューの "グループに属していない" デバイスに表示されているかどうかをチェックすることによって確認できます。 別の値のタグを一時的に追加した後、デバイスが接続されたら、再び目的のタグを追加します。

Device Provisioning Service (DPS) を使用している場合は、デバイスの作成プロセス中にではなく、そのデバイスがプロビジョニングされた後にタグを付けるようにしてください。 既にデバイスの作成手順中にデバイスにタグを付けている場合は、そのデバイスがプロビジョニングされた後に一時的に別の値でタグを付けた後、再び目的のタグを追加する必要があります。

Q: デプロイは正常に完了しましたが、一部のデバイスが更新に失敗しました

これは、障害が発生したデバイス上のクライアント側のエラーが原因で発生した可能性があります。 このトラブルシューティング ガイドの「デバイス障害」セクションを参照してください。

Q: デプロイを開始しようとしたときに、UX でエラーが発生しました

これは、サービスまたは UX のバグか、API のアクセス許可の問題が原因で発生した可能性があります。 「Microsoft サポートへの問い合わせ 」セクションの手順に従って Microsoft にサポート リクエストを提出してください。

Q: デプロイを開始しましたが、終了状態に達していません

これは、サービスのパフォーマンスの問題、サービスのバグ、またはクライアントのバグが原因で発生した可能性があります。 10 分経ってから、デプロイを再試行してください。 同じ問題が発生した場合は、デバイス ログをプルし、このトラブルシューティング ガイドの「デバイス障害」セクションを参照してください。 引き続き同じ問題が発生する場合は、「Microsoft サポートへの問い合わせ 」セクションの手順に従って Microsoft にサポート リクエストを提出してください。

Q: デバイス レベルのエージェントから、デバイスにモジュール ID としてエージェントを追加するように移行しました。この更新はデバイスに適用されているにもかかわらず "進行中" と表示されます

これは、デバイス ツインを介して通信していた古いエージェントを削除しなかった場合に発生する可能性があります。 デバイス更新エージェントをモジュールとしてプロビジョニングする (「方法」を参照) と、デバイスとデバイス更新サービス間のすべての通信がモジュール ツインを介して行われます。そのため、グループを作成するときに、デバイスのモジュール ツインにタグ付けすることを忘れないでください。すべての通信は、モジュール ツインを介して行われる必要があります。

デバイスへの更新プログラムのダウンロード

Q: デバイスが一定の期間切断された後に再接続されたとき、ダウンロードを再開するにはどうすればよいですか?

接続が 24 時間以内に復元された場合、ダウンロードは自動的に再開されます。 24 時間が経過すると、ユーザーがダウンロードを再開する必要があります。

Microsoft 接続キャッシュ (MCC) の使用

Q: IoT Edge デバイスに MCC モジュールをデプロイしようとするときに問題が発生しています

IoT Edge デバイスへの Edge モジュールのデプロイについては、IoT Edge のドキュメントを参照してください。 MCC モジュールが IoT Edge デバイス上で正常に実行されているかどうかは、http://localhost:5100/Summary. に移動することによって確認できます。

Q: いずれかの IoT デバイスが MCC を使用して更新プログラムをダウンロードしようとしていますが、エラーが発生しています

IoT デバイスが MCC に接続できない原因になっている可能性のある問題がいくつかあります。 問題を診断するには、障害が発生しているデバイスから DO クライアントおよび Nginx のログを収集してください (クライアント ログを収集する手順については、「Microsoft サポートへの問い合わせ」セクションを参照)。

デバイスでは、使用している URL が許可されていないために、その MCC モジュールに渡すためのコンテンツをインターネットからプルできない可能性があります。 それを判定するには、Azure portal で IoT Edge の環境変数を確認する必要があります。

Azure portal で不足しているインスタンスのトラブルシューティング

Q: [歯車] アイコンを選択したとき、Device Update for IoT Hub のインスタンスが表示されません

この問題には考えられる原因がいくつかあります。 トラブルシューティングの手順については、以下を参照してください。

デバイス更新インスタンスは、同じリソース グループとサブスクリプション内の Azure IoT ハブに関連付けられている必要があります。 デバイス更新インスタンスまたはハブを別のリソース グループまたはサブスクリプションに移動した場合は、Azure portal にインスタンスが表示されない可能性があります。 Device Update for IoT Hub を引き続き使用するには、次のいずれかの手順を実行する必要があります。

  • 移動した項目を元の構成に戻します。
  • あるリソース グループから別のリソース グループに IoT ハブのみを移動した場合は、IoT ハブの新しい resourceId を使用してデバイス更新インスタンスを変更します。
  • あるサブスクリプションから別のサブスクリプションに項目を移動した場合は、デバイス更新アカウントと IoT ハブが同じサブスクリプションにあることを確認し、IoT ハブの新しい resourceId を使用してデバイス更新インスタンスを変更します。

Azure portal の IoT ハブ エクスペリエンスを介してデバイス更新機能にアクセスするには、IoT ハブと Device Update for IoT Hub アカウントの両方に少なくとも読み取りレベルのアクセス許可が必要です。

  • IoT Hub のアクセス許可を管理するには:
    • Azure portal からハブを選択します
    • 左側のナビゲーション バーで [アクセス制御 (IAM)] を選択します
    • [ロールの割り当ての追加] を選択します
    • 少なくとも読み取りアクセス権を持つロールを選択し、[次へ] を選択します。
    • [メンバー] の横にある [+ メンバーの選択] を選択します。
    • 右側のポップアップでアカウントを追加し、[選択] ボタンを選択します。
    • [確認と割り当て] を選択します
  • Device Update for IoT Hub アカウントのアクセス許可を管理するには、アカウントの所有者に次の手順を実行するよう依頼します。
    • Azure portal からデバイス更新アカウントを選択します。
    • 左側のナビゲーション バーで [アクセス制御 (IAM)] を選択します
    • [ロールの割り当ての追加] を選択します
    • 閲覧者ロール (または同等のアクセス許可を持つロール) を選択します。
    • [メンバー] の横にある [+ メンバーの選択] を選択します。
    • 右側のポップアップでアカウントを追加し、[選択] ボタンを選択します。
    • [確認と割り当て] を選択します

デバイス更新サービスのロールベースのアクセス制御について詳細を確認してください。

Microsoft サポートへの問い合わせ

上記の FAQ を使用して解決できない問題が発生している場合は、Azure portal インターフェイス経由で Microsoft サポートにサポート リクエストを提出できます。 問題がどのカテゴリに属しているように指定するかによっては、Microsoft サポートがその問題を調査するために役立つ追加データを収集して共有するよう求められることがあります。

各データ型を収集する方法については、以下を参照してください。

getDevice を使用すると、API のペイロード応答内の追加情報を確認できます。

さらに、問題の根本原因を絞り込むために次の情報が役立つ場合があります。

  • どのような種類のデバイスを更新しようとしているか (IoT Edge ゲートウェイなど)
  • どのようなデバイス更新クライアントの種類を使用しているか (イメージ ベース、パッケージ ベース、シミュレーター)
  • デバイスでどのような OS 実行しているか
  • デバイスのアーキテクチャに関する詳細
  • 以前にデバイス更新を正常に使用してデバイスを更新したかどうか

上記の情報のいずれかが使用可能な場合は、それを問題の説明に含めてください。

クライアント ログの収集

  • Raspberry Pi デバイスでは、2 つのログ セットが次の場所にあります。

    /adu/logs
    
    /var/cache/do-client-lite/log
    
  • パッケージ化されたクライアントの場合、ログは次の場所にあります。

    /var/log/adu
    
    /var/cache/do-client-lite/log
    
  • シミュレーターの場合、ログは次の場所にあります。

    /tmp/aduc-logs
    

エラー コード

更新プログラムのインポート、デバイス障害、または更新プログラムのデプロイに関連した問題を報告する場合は、エラー コードを指定するよう求められることがあります。

エラー コードは、ADUCoreInterface インターフェイスを参照することによって取得できます。 自己診断とトラブルシューティングのためにエラー コードを解析する方法については、デバイス更新エラー コードのドキュメントを参照してください。

トレース ID

更新プログラムのインポートまたはデプロイに関連した問題を報告する場合は、トレース ID を指定するよう求められることがあります。

特定のユーザー アクションのトレース ID は、API 応答内で、または Azure portal ユーザー インターフェイスの [インポート履歴] セクションで見つけることができます。

現在、デプロイ アクションのトレース ID には API 応答経由でのみアクセスできます。

デプロイ ID

更新プログラムのデプロイに関連した問題を報告する場合は、デプロイ ID を指定するよう求められることがあります。

デプロイ ID は、API を呼び出してデプロイを開始するときにユーザーによって作成されます。

現在、Azure portal ユーザー インターフェイスから開始されたデプロイのデプロイ ID は自動的に生成され、ユーザーには表示されません。

IoT Hub インスタンス名

デバイス障害または更新プログラムのデプロイに関連した問題を報告する場合は、IoT Hub インスタンスの名前を指定するよう求められることがあります。

IoT Hub 名は、最初にプロビジョニングされたときにユーザーによって選択されます。

デバイス更新アカウント名

更新プログラムのインポート、デバイス障害、または更新プログラムのデプロイに関連した問題を報告する場合は、デバイス更新アカウントの名前を指定するよう求められることがあります。

デバイス更新アカウント名は、最初にサービスにサインアップするときにユーザーによって選択されます。 詳細については、デバイス更新リソースのドキュメントを参照してください。

デバイス更新インスタンス名

更新プログラムのインポート、デバイス障害、または更新プログラムのデプロイに関連した問題を報告する場合は、デバイス更新インスタンスの名前を指定するよう求められることがあります。

デバイス更新インスタンス名は、最初にプロビジョニングされたときにユーザーによって選択されます。 詳細については、デバイス更新リソースのドキュメントを参照してください。

Device ID

デバイス障害または更新プログラムのデプロイに関連した問題を報告する場合は、デバイス ID を指定するよう求められることがあります。

デバイス ID は、デバイスが最初にプロビジョニングされたときに顧客によって定義されます。 これはまた、そのデバイスのデバイス ツインからも取得できます。

更新プログラム ID

更新プログラムのデプロイに関連した問題を報告する場合は、更新プログラム ID を指定するよう求められることがあります。

更新プログラム ID は、デプロイを開始するときに顧客によって定義されます。

Nginx ログ

Microsoft 接続キャッシュに関連した問題を報告する場合は、Nginx ログを指定するよう求められることがあります。

ADU-conf.txt

更新プログラムのデプロイに関連した問題を報告する場合は、デバイス更新構成ファイル ("adu-conf.txt") を指定するよう求められることがあります。

この構成ファイルは省略可能であり、デバイス更新構成のドキュメントの手順に従ってユーザーによって作成されます。

インポート マニフェスト

更新プログラムのインポートまたはデプロイに関連した問題を報告する場合は、インポート マニフェスト ファイルを指定するよう求められることがあります。

インポート マニフェストは、更新プログラム コンテンツをデバイス更新サービスにインポートするときに顧客によって作成されるファイルです。

次のステップ

デバイス更新エラー コードの詳細について学習する