AWS IoT Leitfaden zur Fehlerbehebung in Device Advisor - AWS IoT Core

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

AWS IoT Leitfaden zur Fehlerbehebung in Device Advisor

Allgemeines
F: Kann ich mehrere Testsuiten parallel ausführen?

A: Ja. Device Advisor unterstützt jetzt die Ausführung mehrerer Testsuiten auf verschiedenen Geräten mithilfe eines Endpunkts auf Geräteebene. Wenn Sie den Endpunkt auf Kontoebene verwenden, können Sie jeweils eine Suite ausführen, da pro Konto ein Device Advisor-Endpunkt verfügbar ist. Weitere Informationen finden Sie unter Konfigurieren Ihres Geräts.

F: Ich habe von meinem Gerät aus gesehen, dass die TLS-Verbindung von Device Advisor verweigert wurde. Ist das normal?

A: Ja. Device Advisor verweigert die TLS-Verbindung vor und nach jedem Testlauf. Wir empfehlen Benutzern, einen Mechanismus zur Gerätewiederholung zu implementieren, um ein vollautomatisches Testerlebnis mit Device Advisor zu gewährleisten. Wenn Sie eine Testsuite mit mehr als einem Testfall ausführen, zum Beispiel TLS Connect, MQTT Connect und MQTT Publish, dann empfehlen wir, dass Sie einen Mechanismus für Ihr Gerät entwickeln lassen. Der Mechanismus kann versuchen, alle 5 Sekunden für ein bis zwei Minuten eine Verbindung zu unserem Testendpunkt herzustellen. Auf diese Weise können Sie mehrere Testfälle nacheinander automatisiert ausführen.

Kann ich für Sicherheitsanalysen und zu Fehlerbehebungszwecken einen Verlauf der API-Aufrufe abrufen, die von der Device Advisor API in meinem Konto gesendet wurden?

A: Ja. Um einen Verlauf der Device Advisor-API-Aufrufe zu erhalten, die für Ihr Konto getätigt wurden, schalten Sie die Option einfach CloudTrail in der AWS IoT Management Console ein und filtern Sie die Ereignisquelle nachiotdeviceadvisor.amazonaws.com.

F: Wie kann ich mir die Device Advisor-Anmeldungen ansehen CloudWatch?

A: Während einer Testsuite-Ausführung generierte Protokolle werden hochgeladen, CloudWatch wenn Sie die erforderliche Richtlinie (z. B. CloudWatchFullAccess) zu Ihrer Servicerolle hinzufügen (sieheEinrichtung). Wenn die Testsuite mindestens einen Testfall enthält, wird eine Protokollgruppe „testSuiteIdaws/iot/deviceadvisor/$“ mit zwei Protokollstreams erstellt. Ein Stream ist „$testRunId“ und enthält Protokolle von Aktionen, die vor und nach der Ausführung der Testfälle in Ihrer Testsuite ausgeführt wurden, z. B. Einrichtungs- und Bereinigungsschritte. Der andere Protokollstream ist „$ suiteRunId _$“testRunId, der spezifisch für die Ausführung einer Testsuite ist. Ereignisse, die von Geräten gesendet AWS IoT Core werden und in diesem Protokollstream protokolliert werden.

F: Was ist der Zweck der Geräteberechtigungsrolle?

A: Device Advisor steht zwischen Ihrem Testgerät und dient AWS IoT Core zur Simulation von Testszenarien. Er akzeptiert Verbindungen und Nachrichten von Ihren Testgeräten und leitet sie weiter an AWS IoT Core , indem er Ihre Geräteberechtigungsrolle übernimmt und in Ihrem Namen eine Verbindung initiiert. Es ist wichtig, sicherzustellen, dass die Berechtigungen für die Geräterolle mit denen auf dem Zertifikat übereinstimmen, das Sie für die Ausführung von Tests verwenden. AWS IoT Zertifikatsrichtlinien werden nicht durchgesetzt, wenn Device Advisor in AWS IoT Core Ihrem Namen mithilfe der Geräteberechtigungsrolle eine Verbindung zu initiiert. Die Berechtigungen der von Ihnen festgelegten Geräteberechtigungsrolle werden jedoch durchgesetzt.

F: In welchen Regionen wird Device Advisor unterstützt?

A: Device Advisor wird in den Regionen us-east-1, us-west-2, ap-northeast-1 und eu-west-1 unterstützt.

F: Warum sehe ich inkonsistente Ergebnisse?

A: Eine der Hauptursachen für inkonsistente Ergebnisse ist die Einstellung von EXECUTION_TIMEOUT eines Tests auf einen zu niedrigen Wert. Weitere Informationen zu empfohlenen und standardmäßigen EXECUTION_TIMEOUT-Werten finden Sie unter Device Advisor-Testfälle.

F: Welches MQTT-Protokoll unterstützt Device Advisor?

A: Device Advisor unterstützt MQTT Version 3.1.1 mit X509-Client-Zertifikaten.

F: Was ist, wenn mein Testfall mit einer Meldung über das Ausführungszeitlimit fehlschlägt, obwohl ich versucht habe, mein Gerät mit dem Testendpunkt zu verbinden?

A: Überprüfen Sie alle Schritte unter Erstellen Sie eine IAM-Rolle, die als Ihre Geräterolle verwendet werden soll. Wenn der Test immer noch fehlschlägt, sendet das Gerät möglicherweise nicht die richtige SNI-Erweiterung (Server Name Indication), die erforderlich ist, damit Device Advisor funktioniert. Der richtige SNI-Wert ist die Endpunktadresse, die zurückgegeben wird, wenn Sie dem Abschnitt Gerät konfigurieren folgen. AWS IoT erfordert außerdem, dass Geräte die Server Name Indication (SNI) -Erweiterung an das Transport Layer Security (TLS) -Protokoll senden. Weitere Informationen finden Sie unter Transportsicherheit in AWS IoT.

F: Meine MQTT-Verbindung schlägt mit dem Fehler "libaws-c-mqtt: AWS_ERROR_MQTT_UNEXPECTED_HANGUP“ fehl (oder) die MQTT-Verbindung meines Geräts wird automatisch vom Device Advisor-Endpunkt getrennt. Wie kann dieser Fehler behoben werden?

A: Dieser spezielle Fehlercode und unerwartete Verbindungsabbrüche können viele verschiedene Ursachen haben, hängen aber höchstwahrscheinlich mit der dem Gerät zugewiesenen Geräterolle zusammen. Die folgenden Prüfpunkte (in der Reihenfolge ihrer Priorität) lösen dieses Problem.

  • Die dem Gerät zugeordnete Geräterolle muss über die IAM-Mindestrechte verfügen, die für die Ausführung der Tests erforderlich sind. Device Advisor verwendet die zugeordnete Geräterolle, um MQTT-Aktionen im Namen des Testgeräts auszuführen. AWS IoT Wenn die erforderlichen Berechtigungen nicht vorhanden sind, wird der Fehler AWS_ERROR_MQTT_UNEXPECTED_HANGUP angezeigt oder es kommt zu unerwarteten Verbindungsabbrüchen, während das Gerät versucht, eine Verbindung zum Device Advisor-Endpunkt herzustellen. Wenn Sie sich beispielsweise dafür entschieden haben, den Testfall MQTT Publish auszuführen, müssen die Aktionen Connect und Publish in der Rolle mit dem entsprechenden ClientId Thema enthalten sein (Sie können mehrere Werte angeben, indem Sie die Werte durch Kommas trennen, und Sie können Präfixwerte mit einem Platzhalterzeichen (*) angeben. Beispiel: Um Berechtigungen zur Veröffentlichung für ein beliebiges Thema zu erteilen, das mit TestTopic beginnt, können Sie „TestTopic*“ als Ressourcenwert angeben. Hier sind einige Beispiele für Richtlinien.

  • Nichtübereinstimmung zwischen den in der Geräterolle für Ihre Ressourcentypen definierten Werten und den tatsächlich im Code verwendeten Werten. Zum Beispiel: Eine Diskrepanz zwischen der ClientId Definition in der Rolle und der tatsächlich ClientId verwendeten Rolle in Ihrem Gerätecode. Werte wie ClientId, Thema und TopicFilter müssen in der Geräterolle und im Code identisch sein.

  • Das an Ihr Gerät angehängte Gerätezertifikat muss aktiv sein und mit einer Richtlinie versehen sein, die die erforderlichen Aktionsberechtigungen für Ressourcen enthält. Beachten Sie, dass die Richtlinie für Gerätezertifikate den Zugriff auf AWS IoT Ressourcen und AWS IoT Core Datenebenenoperationen gewährt oder verweigert. Device Advisor setzt voraus, dass Sie ein aktives Gerätezertifikat an Ihr Gerät angeschlossen haben, das die während eines Testfalls verwendeten Aktionsberechtigungen gewährt.