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 Anleitung zur Fehlerbehebung bei Device Advisor
Helfen Sie uns, dieses Thema zu verbessern
General
- 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 Device-level Endpunkts. Wenn Sie den Account-level Endpunkt 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 eine Historie der Device Advisor-API-Aufrufe zu erhalten, die für Ihr Konto getätigt wurden, schalten Sie das Gerät einfach CloudTrail in der AWS IoT Management Console ein und filtern Sie die Eventquelle danach
iotdeviceadvisor.amazonaws.com. - F: Wie sehe ich mir die Device Advisor-Logins an 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 "aws/iot/deviceadvisor/ $testSuiteId" mit zwei Logstreams erstellt. Ein Stream ist der „$testRunId“ und enthält Protokolle der Aktionen, die vor und nach der Ausführung der Testfälle in Ihrer Testsuite ergriffen wurden, z. B. die Schritte zur Einrichtung und Bereinigung. Der andere Log-Stream ist „$suite RunId _$test“RunId, der spezifisch für eine Testsuite-Ausführung ist. Ereignisse, die von Geräten gesendet und in diesem Log-Stream protokolliert AWS IoT Core werden.
- F: Was ist der Zweck der Geräteberechtigungsrolle?
-
A: Device Advisor steht zwischen Ihrem Testgerät und 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 Geräterollenberechtigungen 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 herstellt. 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_TIMEOUTeines Tests auf einen zu niedrigen Wert. Weitere Informationen zu empfohlenen und standardmäßigenEXECUTION_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 den Anweisungen im Abschnitt Gerät konfigurieren folgen. AWS IoT erfordert außerdem, dass Geräte die SNI-Erweiterung (Server Name Indication) an das Transport Layer Security (TLS) -Protokoll senden. Weitere Informationen finden Sie unter Transportsicherheit unter AWS IoT.
- F: Meine MQTT-Verbindung schlägt mit einem „libaws-c-mqtt: AWS_ERROR_MQTT_UNEXPECTED_HANGUP“ -Fehler 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 angefügte Geräterolle, um AWS IoT -MQTT-Aktionen im Namen des Testgeräts durchzuführen. Wenn die erforderlichen Berechtigungen nicht vorhanden sind, wird der Fehler
AWS_ERROR_MQTT_UNEXPECTED_HANGUPangezeigt oder es kommt zu unerwarteten Verbindungsabbrüchen, während das Gerät versucht, eine Verbindung zum Device Advisor-Endpunkt herzustellen. Wenn Sie beispielsweise ausgewählt haben, den MQTT Publish-Testfall auszuführen, müssen sowohl die Connect- als auch die Publish-Aktionen in der Rolle mit dem entsprechenden Thema ClientId und 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 mitTestTopicbeginnt, 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 dem in der Rolle ClientId definierten und dem tatsächlich ClientId verwendeten Code in Ihrem Gerätecode. Werte wie ClientId, Topic 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 AWS IoT Ressourcen und Operationen auf AWS IoT Core Datenebene 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.
-