Fehlerbehebung IDT fürAWS IoT GreengrassV2 - AWS IoT Greengrass

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.

Fehlerbehebung IDT fürAWS IoT GreengrassV2

IDT fürAWS IoT GreengrassV2 schreibt Fehler je nach Art der Fehler an verschiedene Speicherorte. IDT schreibt Fehler in die Konsole, in Protokolldateien und in Testberichte.

Wo kann man nach Fehlern suchen

Allgemeine Fehler werden auf der Konsole angezeigt, während der Test ausgeführt wird, und eine Zusammenfassung der fehlgeschlagenen Tests wird angezeigt, wenn alle Tests abgeschlossen sind.awsiotdevicetester_report.xmlenthält eine Zusammenfassung aller Fehler, die zum Fehlschlagen eines Tests geführt haben. IDT speichert die Protokolldateien für jeden Testlauf in einem Verzeichnis mit einer UUID für die Testausführung, die während des Testlaufs auf der Konsole angezeigt wird.

Das IDT-Testprotokollverzeichnis ist<device-tester-extract-location>/results/<execution-id>/logs/. Dieses Verzeichnis enthält die folgenden Dateien, die in der Tabelle angezeigt werden. Dies ist beim Debuggen nützlich.

Datei Beschreibung
test_manager.log

Die Protokolle, die während der Ausführung des Tests auf die Konsole geschrieben wurden. Die Zusammenfassung der Ergebnisse am Ende dieser Datei enthält eine Liste der fehlgeschlagenen Tests.

Die Warn- und Fehlerprotokolle in dieser Datei können Ihnen Informationen über den/die Fehler bereitstellen.

test-group-id/test-case-id/test-name.log Detaillierte Protokolle für den spezifischen Test in einer Testgruppe. Bei Tests, bei denen Greengrass-Komponenten eingesetzt werden, wird die Testfall-Protokolldatei aufgerufengreengrass-test-run.log.
test-group-id/test-case-id/greengrass.log Detaillierte Protokolle fürAWS IoT GreengrassKernsoftware. IDT kopiert diese Datei von dem zu testenden Gerät, wenn es Tests ausführt, bei denen Folgendes installiert wirdAWS IoT GreengrassKernsoftware auf dem Gerät. Weitere Informationen zu den Meldungen in dieser Protokolldatei finden Sie unterProblembehebung AWS IoT Greengrass V2.
test-group-id/test-case-id/component-name.log Detaillierte Protokolle für Greengrass-Komponenten, die während Testläufen eingesetzt werden. IDT kopiert Komponenten-Protokolldateien vom zu testenden Gerät, wenn Tests ausgeführt werden, bei denen bestimmte Komponenten bereitgestellt werden. Der Name jeder Komponenten-Protokolldatei entspricht dem Namen der bereitgestellten Komponente. Weitere Hinweise zu den Meldungen in dieser Protokolldatei finden Sie unterProblembehebung AWS IoT Greengrass V2.

IDT auflösen fürAWS IoT GreengrassV2-Fehler

Bevor Sie IDT ausführen fürAWS IoT Greengrass, richten Sie die richtigen Konfigurationsdateien ein. Wenn Sie Parsing- und Konfigurationsfehler erhalten, besteht Ihr erster Schritt darin, eine für Ihre Umgebung geeignete Konfigurationsvorlage zu finden und zu verwenden.

Wenn weiterhin Probleme auftreten, beachten Sie den folgenden Debugging-Vorgang.

Fehler bei der Alias-Auflösung

Wenn Sie benutzerdefinierte Testsuiten ausführen, wird möglicherweise der folgende Fehler in der Konsole und imtest_manager.log.

Couldn't resolve placeholders: couldn't do a json lookup: index out of range

Dieser Fehler kann auftreten, wenn die im IDT Test Orchestrator konfigurierten Aliase nicht korrekt aufgelöst werden oder wenn die aufgelösten Werte nicht in den Konfigurationsdateien vorhanden sind. Um diesen Fehler zu beheben, stellen Sie sicher, dassdevice.jsonunduserdata.json enthalten die richtigen Informationen, die für Ihre Testsuite erforderlich sind. Für Informationen über die Konfiguration, die erforderlich ist fürAWS IoT GreengrassQualifikation finden Sie unterKonfigurieren Sie die IDT-Einstellungen, um die AWS IoT Greengrass Qualification Suite auszuführen.

Konfliktfehler

Möglicherweise wird der folgende Fehler angezeigt, wenn Sie denAWS IoT GreengrassQualification Suite gleichzeitig auf mehr als einem Gerät.

ConflictException: Component [com.example.IDTHelloWorld : 1.0.0] for account [account-id] already exists with state: [DEPLOYABLE] { RespMetadata: { StatusCode: 409, RequestID: “id” }, Message_: “Component [com.example.IDTHelloWorld : 1.0.0] for account [account-id] already exists with state: [DEPLOYABLE]” }

Die gleichzeitige Testausführung wird noch nicht unterstützt fürAWS IoT GreengrassQualifizierungssuite. Führen Sie die Qualification Suite nacheinander für jedes Gerät aus.

Fehler aufgrund eines nicht startenden Tests

Möglicherweise treten Fehler auf, die auf Fehler hinweisen, die beim Versuch, den Test zu starten, aufgetreten sind. Es gibt mehrere mögliche Ursachen. Gehen Sie daher wie folgt vor:

  • Stellen Sie sicher, dass der Poolname in Ihrem Ausführungsbefehl tatsächlich existiert. IDT referenziert den Poolnamen direkt von Ihremdevice.jsondatei.

  • Stellen Sie sicher, dass die Geräte in Ihrem Pool über die richtigen Konfigurationsparameter verfügen.

Das Docker-Qualifikationsbild enthält Fehler

Die Qualifizierungstests für Docker Application Manager verwenden denamazon/amazon-ec2-metadata-mockContainer-Image in Amazon ECR, um das zu testende Gerät zu qualifizieren.

Möglicherweise wird die folgende Fehlermeldung angezeigt, wenn das Image bereits in einem Docker-Container auf dem zu testenden Gerät vorhanden ist.

The Docker image amazon/amazon-ec2-metadata-mock:version already exists on the device.

Wenn Sie dieses Image zuvor heruntergeladen und ausgeführt habenamazon/amazon-ec2-metadata-mockContainer auf Ihrem Gerät, stellen Sie sicher, dass Sie dieses Image von dem zu testenden Gerät entfernen, bevor Sie die Qualifikationstests ausführen.

Anmeldeinformationen konnten nicht gelesen werden

Beim Testen von Windows-Geräten stoßen Sie möglicherweise aufFailed to read credentialFehler in dergreengrass.logDatei, wenn der Benutzer, mit dem Sie eine Verbindung zu dem zu testenden Gerät herstellen, nicht im Anmeldeinformationsmanager auf diesem Gerät eingerichtet ist.

Um diesen Fehler zu beheben, konfigurieren Sie den Benutzer und das Passwort für den IDT-Benutzer im Anmeldeinformationsmanager auf dem zu testenden Gerät.

Weitere Informationen finden Sie unter Konfigurieren Sie Benutzeranmeldeinformationen für Windows-Geräte.

Guide-Fehler mit PreInstalled Grünes Gras

Beim Ausführen von IDT mit PreInstalled Greengrass, wenn Sie auf einen Fehler stoßen vonGuiceoderErrorInCustomProvider, überprüfen Sie, ob die Dateiuserdata.jsonhat dieInstalledDirRootOnDeviceauf den Greengrass-Installationsordner eingestellt. IDT sucht nach der DateieffectiveConfig.yamlunter<InstallationDirRootOnDevice>/config/effectiveConfig.yaml.

Weitere Informationen finden Sie unter Konfigurieren Sie Benutzeranmeldeinformationen für Windows-Geräte.

Ungültige Signaturausnahme

Wenn Sie Lambda-Qualifizierungstests ausführen, stoßen Sie möglicherweise aufinvalidsignatureexceptionFehler, wenn auf Ihrem IDT-Hostcomputer Probleme mit dem Netzwerkzugriff auftreten. Setzen Sie Ihren Router zurück und führen Sie die Tests erneut durch.

Qualifizierungsfehler beim maschinellen Lernen

Wenn Sie Qualifizierungstests für maschinelles Lernen (ML) durchführen, kann es zu Qualifikationsfehlern kommen, wenn Ihr Gerät die Anforderungen nicht erfülltAnforderungenzur Bereitstellung derAWS-bereitgestellte ML-Komponenten. Gehen Sie wie folgt vor, um Fehler bei der ML-Qualifizierung zu beheben:

  • Suchen Sie in den Komponentenprotokollen nach Fehlerdetails für die Komponenten, die während des Testlaufs bereitgestellt wurden. Die Komponentenprotokolle befinden sich im<device-tester-extract-location>/results/<execution-id>/logs/<test-group-id>Verzeichnis.

  • Füge das hinzu-Dgg.persist=installed.softwareArgument zumtest.jsonDatei für den fehlgeschlagenen Testfall. Dietest.jsonDie Datei befindet sich im<device-tester-extract-location>/tests/GGV2Q_version directory.

Fehlgeschlagene Bereitstellungen im Open Test Framework (OTF)

Wenn die Bereitstellung durch OTF-Tests nicht abgeschlossen werden kann, liegt dies wahrscheinlich an den für den übergeordneten Ordner von festgelegten BerechtigungenTempResourcesDirOnDeviceundInstallationDirRootOnDevice. Führen Sie den folgenden Befehl aus, um die Berechtigungen für diesen Ordner korrekt festzulegen. Ersetzenfolder-namedurch den Namen des übergeordneten Ordners.

sudo chmod 755 folder-name

Parsing-Fehler

Tippfehler in einer JSON-Konfiguration können zu Analysefehlern führen. In den meisten Fällen sind die Ursache des Problems ausgelassene Klammern, Kommas oder Anführungszeichen in Ihrer JSON-Datei. IDT führt eine JSON-Validierung durch und druckt Debugging-Informationen. Gedruckt werden die Zeile, in der der Fehler aufgetreten ist, sowie Zeilennummer und Spaltennummer des Syntaxfehlers. Diese Informationen sollten ausreichen, um Ihnen bei der Behebung des Fehlers zu helfen. Wenn Sie den Fehler jedoch immer noch nicht finden können, können Sie die Validierung manuell in Ihrer IDE, einem Texteditor wie Atom oder Sublime oder über ein Online-Tool wie JsonLint durchführen.

Fehler bei abgelehnter Berechtigung

IDT führt Operationen für verschiedene Verzeichnisse und Dateien auf einem zu testenden Gerät aus. Einige dieser Operationen erfordern Stammzugriff. Zum Automatisieren dieser Operationen muss IDT Befehle mit sudo ausführen können, ohne ein Passwort einzugeben.

Führen Sie die folgenden Schritte aus, um Sudo-Zugriff zu erteilen, ohne ein Passwort eingeben zu müssen.

Anmerkung

user und username beziehen sich auf den SSH-Benutzer, der von IDT für den Zugriff auf das zu testende Gerät verwendet wird.

  1. Verwenden Sie sudo usermod -aG sudo <ssh-username>, um Ihren SSH-Benutzer zur sudo-Gruppe hinzuzufügen.

  2. Melden Sie sich ab und melden Sie sich dann wieder an, damit die Änderungen wirksam werden.

  3. Öffnen Sie die Datei /etc/sudoers und fügen Sie am Ende der Datei die folgende Zeile hinzu: <ssh-username> ALL=(ALL) NOPASSWD: ALL

    Anmerkung

    Als bewährte Methode empfehlen wir, dass Sie, sudo visudo verwenden, wenn Sie /etc/sudoers bearbeiten.

Fehler beim Generieren des Qualifizierungsberichts

IDT unterstützt die vier neuestenmajor.minorVersionen vonAWS IoT GreengrassV2 Qualification Suite (GGV2Q) zur Erstellung von Qualifikationsberichten, die Sie einreichen könnenAWS Partner Networkum Ihre Geräte in die aufzunehmenAWS PartnerGerätekatalog. Frühere Versionen der Qualification Suite generieren keine Qualifikationsberichte.

Wenn Sie Fragen zu den Support-Richtlinien haben, wenden Sie sich anAWS Support.

Fehler aufgrund fehlender erforderlicher Parameter

Wenn IDT neue Funktionen hinzufügt, kann dies zu Änderungen an den Konfigurationsdateien führen. Bei Verwendung einer alten Konfigurationsdatei kann Ihre Konfiguration beschädigt werden. In diesem Fall listet die Datei <test_case_id>.log unter /results/<execution-id>/logs ausdrücklich alle fehlenden Parameter auf. IDT validiert auch Ihre JSON-Konfigurationsdateischemas, um sicherzustellen, dass Sie die neueste unterstützte Version verwenden.

Sicherheitsausnahme auf macOS

Wenn Sie IDT auf einem macOS-Hostcomputer ausführen, wird die Ausführung von IDT blockiert. Um IDT auszuführen, gewähren Sie den ausführbaren Dateien eine Sicherheitsausnahme, die Teil der IDT-Laufzeitfunktionalität ist. Wenn die Warnmeldung auf Ihrem Host-Computer angezeigt wird, gehen Sie für jede der entsprechenden ausführbaren Dateien wie folgt vor:

Um ausführbaren IDT-Dateien eine Sicherheitsausnahme zu gewähren

  1. Öffnen Sie auf dem macOS-Computer im Apple-MenüSystemeinstellungen.

  2. WähleSicherheit und Datenschutz, dann auf derAllgemeinWählen Sie auf der Registerkarte das Schlosssymbol, um Änderungen an den Sicherheitseinstellungen vorzunehmen.

  3. Im Falle einer Blockierungdevicetester_mac_x86-64, suche nach der Nachricht"devicetester_mac_x86-64" was blocked from use because it is not from an identified developer.und wähleTrotzdem zulassen.

  4. Setzen Sie die IDT-Tests fort, bis Sie alle beteiligten ausführbaren Dateien abgeschlossen haben.

SSH-Verbindungsfehler

Wenn IDT keine Verbindung zu einem zu testenden Gerät herstellen kann, werden Verbindungsfehler protokolliert/results/<execution-id>/logs/<test-case-id>.log. SSH-Nachrichten werden oben in dieser Protokolldatei angezeigt, da die Verbindung zu einem zu testenden Gerät eine der ersten Operationen ist, die IDT ausführt.

Die meisten Windows-Konfigurationen verwenden die PuTTY-Terminalanwendung, um eine Verbindung zu Linux-Hosts herzustellen. Für diese Anwendung müssen Sie standardmäßige private PEM-Schlüsseldateien in ein proprietäres Windows-Format namens PPK konvertieren. Wenn Sie SSH in Ihrem konfigurierendevice.jsonDatei, verwenden Sie PEM-Dateien. Wenn Sie eine PPK-Datei verwenden, kann IDT keine SSH-Verbindung mit dem herstellenAWS IoT GreengrassGerät und kann keine Tests ausführen.

Wenn Sie ab IDT v4.4.0 SFTP auf Ihrem zu testenden Gerät nicht aktiviert haben, wird möglicherweise der folgende Fehler in der Protokolldatei angezeigt.

SSH connection failed with EOF

Um diesen Fehler zu beheben, aktivieren Sie SFTP auf Ihrem Gerät.

Qualifizierungsfehler im Stream Manager

Wenn Sie Stream Manager-Qualifizierungstests ausführen, wird möglicherweise der folgende Fehler in dercom.aws.StreamManagerExport.logdatei.

Failed to upload data to S3

Dieser Fehler kann auftreten, wenn der Stream-Manager denAWSAnmeldeinformationen in der~/root/.aws/credentialsDatei auf Ihrem Gerät, anstatt die Umgebungsanmeldedaten zu verwenden, die IDT auf das zu testende Gerät exportiert. Um dieses Problem zu vermeiden, löschen Sie diecredentialsDatei auf Ihrem Gerät und führen Sie den Qualifikationstest erneut aus.

Timeout-Fehler

Sie können das Timeout für jeden Test erhöhen, indem Sie einen Timeout-Multiplikator angeben, der auf den Standardwert des Timeouts jedes Tests angewendet wird. Jeder Wert für dieses Kennzeichen muss größer als oder gleich 1,0 sein.

Um den Timeout-Multiplikator zu verwenden, verwenden Sie beim Ausführen des Tests das Flag --timeout-multiplier. Beispiele:

./devicetester_linux run-suite --suite-id GGV2Q_1.0.0 --pool-id DevicePool1 --timeout-multiplier 2.5

Führen Sie run-suite --help aus, um weitere Informationen zu erhalten.

Einige Timeout-Fehler treten auf, wenn IDT-Testfälle aufgrund von Konfigurationsproblemen nicht abgeschlossen werden können. Sie können diese Fehler nicht beheben, indem Sie den Timeout-Multiplikator erhöhen. Verwenden Sie die Protokolle des Testlaufs, um die zugrunde liegenden Konfigurationsprobleme zu beheben.

  • Wenn die MQTT- oder Lambda-Komponentenprotokolle Folgendes enthaltenAccess deniedFehler, Ihr Greengrass-Installationsordner hat möglicherweise nicht die richtigen Dateiberechtigungen. Führen Sie den folgenden Befehl für jeden Ordner im Installationspfad aus, den Sie in Ihremuserdata.jsondatei.

    sudo chmod 755 folder-name
  • Wenn die Greengrass-Protokolle darauf hinweisen, dass die Greengrass-CLI-Bereitstellung nicht abgeschlossen ist, gehen Sie wie folgt vor:

    • Stellen Sie sicher, dassbashist auf dem zu testenden Gerät installiert.

    • Wenn deinuserdata.jsonDatei enthält dieGreengrassCliVersionKonfigurationsparameter, entferne ihn. Dieser Parameter ist in IDT v4.1.0 und späteren Versionen veraltet. Weitere Informationen finden Sie unter Konfigurieren Sie userdata.json.

  • Wenn der Lambda-Bereitstellungstest mit der Fehlermeldung „Validating Lambda publish: time out“ fehlschlug und Sie eine Fehlermeldung in der Testprotokolldatei erhalten (idt-gg2-lambda-function-idt-<resource-id>.log) das heißtError: Could not find or load main class com.amazonaws.greengrass.runtime.LambdaRuntime., mach das Folgende:

    • Überprüfen Sie, wofür der Ordner verwendet wurdeInstallationDirRootOnDevicein deruserdata.jsondatei.

    • Stellen Sie sicher, dass die richtigen Benutzerberechtigungen auf Ihrem Gerät eingerichtet sind. Weitere Einzelheiten finden Sie unterKonfigurieren Sie Benutzerberechtigungen auf Ihrem Gerät.

Fehler bei der Versionsprüfung

IDT gibt den folgenden Fehler aus, wennAWSDie Benutzeranmeldedaten für den IDT-Benutzer verfügen nicht über die erforderlichen IAM-Berechtigungen.

Failed to check version compatibility

DieAWSBenutzer, der nicht über die erforderlichen IAM-Berechtigungen verfügt.