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, z. B. TLS verbinden, MQTT verbinden und MQTT veröffentlichen, 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.

F: Kann ich einen Verlauf der Device API Advisor-Aufrufe abrufen, die für mein Konto getätigt wurden, um Sicherheitsanalysen durchzuführen und betriebliche Probleme zu beheben?

A: Ja. Um eine Historie der Device API Advisor-Anrufe zu erhalten, die auf Ihrem Konto getätigt wurden, aktivieren Sie einfach die CloudTrail AWS IoT Management Console und filtern Sie die Ereignisquelle nachiotdeviceadvisor.amazonaws.com.

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

A: Protokolle, die während einer Testsuite-Ausführung generiert wurden, 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 wurden und AWS IoT Core werden in diesem Protokollstream protokolliert.

F: Was ist der Zweck der Geräteberechtigungsrolle?

A: Device Advisor steht zwischen Ihrem Testgerät und AWS IoT Core um Testszenarien zu simulieren. Es akzeptiert Verbindungen und Nachrichten von Ihren Testgeräten und leitet sie weiter an AWS IoT Core indem es 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 eine Verbindung zu initiiert AWS IoT Core in Ihrem Namen mithilfe der Geräteberechtigungsrolle. 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. Schlägt der Test immer noch fehl, sendet das Gerät möglicherweise nicht die richtige Servernamenindikatorerweiterung (SNI), die für das Funktionieren von Device Advisor erforderlich ist. 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 Erweiterung Server Name Indication (SNI) an das Transport Layer Security (TLS) -Protokoll senden. Weitere Informationen finden Sie unter Transportsicherheit in AWS IoT.

F: Meine MQTT Verbindung schlägt mit einem 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 Mindestberechtigungen verfügen, die für die Ausführung der Tests erforderlich sind. Device Advisor verwendet für die Ausführung die zugeordnete Geräterolle AWS IoT MQTTAktionen im Namen des Testgeräts. 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 für die Ausführung des Testfalls „MQTTVeröffentlichen“ entschieden haben, müssen die Aktionen Connect und Veröffentlichen 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. 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 Gerätezertifikatsrichtlinie den Zugriff auf gewährt oder verweigert AWS IoT Ressourcen und AWS IoT Core Operationen auf Datenebene. 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.