AWS IoT Device Advisor トラブルシューティングガイド - AWS IoT Core

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS IoT Device Advisor トラブルシューティングガイド

このトピックの改善にご協力ください
全般
Q: 複数のテストスイートを並行して実行できますか?

A: はい。Device Advisor で、デバイスレベルのエンドポイントを使用して異なるデバイスでの複数のテストスイートの実行がサポートされるようになりました。アカウントレベルのエンドポイントを使用する場合は、各アカウントで使用できるの Device Advisor エンドポイントは 1 つなので、一度に実行できるスイートは 1 つです。詳細については、「デバイスを設定する」を参照してください。

Q: デバイスから、TLS 接続が Device Advisor によって拒否されていたことがわかりました。これは想定どおりですか?

A: はい。Device Advisor は、各テストの実行前と実行後に TLS 接続を拒否します。Device Advisor で完全に自動化されたテストを行うために、デバイスの再試行メカニズムを実装することをお勧めします。複数のテストケース (TLS 接続、MQTT 接続、および MQTT 発行など) を使用してテストスイートを実行する場合、デバイス向けのメカニズムを構築することをお勧めします。このメカニズムでは、5 秒ごとにテストエンドポイントに 1 分から 2 分間の接続を試行できます。この方法を使用して、自動化された方法で順番に複数のテストケースを実行できます。

Q: セキュリティ分析および運用に関するトラブルシューティングを行うために、アカウントで実行された Device Advisor API 呼び出しの履歴を取得できますか?

A: はい。アカウントで行われた Device Advisor API 呼び出しの履歴を受け取るには、 CloudTrail AWS IoT 管理コンソールをオンにして、イベントソースを絞り込むだけですiotdeviceadvisor.amazonaws.com

Q: Device Advisor CloudWatch のログインを確認する方法を教えてください。

A: テストスイートの実行中に生成されたログは、必要なポリシー (例:CloudWatchFullAccess) CloudWatch をサービスロールに追加するとアップロードされます (を参照設定)。テストスイートに少なくとも 1 つのテストケースがある場合、2 つのログストリームを含むロググループ「testSuiteIdaws/iot/deviceadvisor/$」が作成されます。1 つのストリームは「$testRunId」で、セットアップやクリーンアップの手順など、テストスイート内のテストケースの実行前と実行後に実行されたアクションのログが含まれます。もう 1 つのログストリームは「$ suiteRunId _$」でtestRunId、これはテストスイートの実行に固有です。デバイスから送信され、 AWS IoT Core このログストリームに記録されるイベントは、このログストリームに記録されます。

Q: デバイスのアクセス許可ロールの目的は何ですか?

A: Device Advisor AWS IoT Core はテストデバイスとテストシナリオのシミュレーションの間に位置します。テストデバイスからの接続とメッセージを受け入れ、デバイスのアクセス許可ロールを引き受けてユーザーに代わり接続を開始することで、それらを AWS IoT Core に転送します。デバイスロールの権限が、テストの実行に使用する証明書の権限と同じであることを確認することが重要です。 AWS IoT Device Advisor AWS IoT Core がユーザーに代わってデバイス権限ロールを使用してへの接続を開始した場合、証明書ポリシーは適用されません。ただし、設定したデバイスのアクセス許可ロールの権限は適用されます。

Q: Device Advisor はどのリージョンでサポートされていますか?

A: Device Advisor は、us-east-1、us-west-2、ap-northeast-1、eu-west-1 リージョンでサポートされています。

Q: 一貫性のない結果が表示される理由は何ですか?

A: 一貫性のない結果の主な原因の1つは、テストの EXECUTION_TIMEOUT を低すぎる値に設定していることです。EXECUTION_TIMEOUT の推奨値およびデフォルト値の詳細については、Device Advisor テストケースを参照してください。

Q: Device Advisor はどの MQTT プロトコルをサポートしていますか?

A: Device Advisor は、X509 クライアント証明書による MQTT バージョン 3.1.1 をサポートしています。

Q: デバイスをテストエンドポイントに接続しようとした場合でもテストケースが実行タイムアウトメッセージで失敗した場合はどうなりますか?

A: 「デバイスロールとして使用する IAM ロールを作成する」のすべてのステップを検証します。それでもテストが失敗した場合、Device Advisor が機能するために必要な正しいサーバーネームインディケーション (SNI) 拡張子がデバイスから送信されていない可能性があります。正しい SNI 値は、「デバイスの設定」セクションを実行したときに返されるエンドポイントアドレスです。 AWS IoT また、デバイスはサーバー名表示 (SNI) 拡張をトランスポート層セキュリティ (TLS) プロトコルに送信する必要があります。詳細については、の「トランスポートセキュリティ」を参照してください。 AWS IoT

Q:「libaws-c-mqtt: AWS_ERROR_MQTT_UNEXPECTED_HANGUP」エラーで MQTT 接続が失敗しました (または) デバイスの MQTT 接続がデバイスアドバイザーエンドポイントから自動的に切断されます。このエラーはどのように解決できますか?

A: この特定のエラーコードと予期しない切断は、さまざまな原因で発生する可能性がありますが、ほとんどの場合、デバイスに関連付けられているデバイスのロールに関連している可能性があります。以下のチェックポイント (優先度順) でこの問題を解決します。

  • デバイスにアタッチされたデバイスロールには、テストを実行するために必要な最低限の IAM 権限が必要です。デバイスアドバイザーは、アタッチされたデバイスロールを使用して、テストデバイスに代わって MQTT アクションを実行します。 AWS IoT 必要な権限がない場合、AWS_ERROR_MQTT_UNEXPECTED_HANGUP エラーが表示されるか、デバイスが Device Advisor のエンドポイントに接続しようとするときに予期しない切断が発生します。たとえば、MQTT Publish テストケースを実行することを選択した場合、Connect アクションと Publish アクションの両方を、対応する ClientId and Topic とともにロールに含める必要があります (値を区切るにはカンマを使用して複数の値を指定できます)。また、ワイルドカード (*) 文字を使用してプレフィックス値を指定できます。例えば、TestTopic で始まる任意のトピックで公開するためのアクセス許可を付与する場合は、リソース値として TestTopic* を指定できます。ポリシーの例を次に示します。

  • リソースタイプのデバイスロールで定義されている値と、コードで使用される実際の値が一致しません。例: ClientId ロールで定義されている内容と、 ClientId デバイスコードで実際に使用されている内容が一致しない場合などです。Topic ClientId、などの値は、 TopicFilter デバイスロールとコードで同一である必要があります。

  • デバイスに添付されているデバイス証明書は、アクティブであり、リソースに必要なアクション許可を持つポリシーが添付されている必要があります。デバイス証明書ポリシーは、 AWS IoT AWS IoT Core リソースとデータプレーンの操作へのアクセスを許可または拒否することに注意してください。Device Advisor では、テストケース中に使用されるアクション権限を付与するアクティブなデバイス証明書をデバイスに添付する必要があります。