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.xml
enthä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
. Dieses Verzeichnis enthält die folgenden Dateien, die in der Tabelle angezeigt werden. Dies ist beim Debuggen nützlich.<device-tester-extract-location>
/results/<execution-id>
/logs/
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. |
|
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 . |
|
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. |
|
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.
Themen
- Fehler bei der Alias-Auflösung
- Konfliktfehler
- Fehler aufgrund eines nicht startenden Tests
- Das Docker-Qualifikationsbild enthält Fehler
- Anmeldeinformationen konnten nicht gelesen werden
- Guide-Fehler mit PreInstalled Grünes Gras
- Ungültige Signaturausnahme
- Qualifizierungsfehler beim maschinellen Lernen
- Fehlgeschlagene Bereitstellungen im Open Test Framework (OTF)
- Parsing-Fehler
- Fehler bei abgelehnter Berechtigung
- Fehler beim Generieren des Qualifizierungsberichts
- Fehler aufgrund fehlender erforderlicher Parameter
- Sicherheitsausnahme auf macOS
- SSH-Verbindungsfehler
- Qualifizierungsfehler im Stream Manager
- Timeout-Fehler
- Fehler bei der Versionsprüfung
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.json
unduserdata.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 Ihrem
device.json
datei. -
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-mock
Container-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-mock
Container 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
credential
Fehler in dergreengrass.log
Datei, 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 vonGuice
oderErrorInCustomProvider
, überprüfen Sie, ob die Dateiuserdata.json
hat dieInstalledDirRootOnDevice
auf den Greengrass-Installationsordner eingestellt. IDT sucht nach der DateieffectiveConfig.yaml
unter<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 aufinvalidsignatureexception
Fehler, 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
Verzeichnis.<device-tester-extract-location>
/results/<execution-id>
/logs/<test-group-id>
-
Füge das hinzu
-Dgg.persist=installed.software
Argument zumtest.json
Datei für den fehlgeschlagenen Testfall. Dietest.json
Die 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 BerechtigungenTempResourcesDirOnDevice
undInstallationDirRootOnDevice
. Führen Sie den folgenden Befehl aus, um die Berechtigungen für diesen Ordner korrekt festzulegen. Ersetzen
durch den Namen des übergeordneten Ordners.folder-name
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.
-
Verwenden Sie sudo usermod -aG sudo
<ssh-username>
, um Ihren SSH-Benutzer zur sudo-Gruppe hinzuzufügen. -
Melden Sie sich ab und melden Sie sich dann wieder an, damit die Änderungen wirksam werden.
-
Öffnen Sie die Datei
/etc/sudoers
und fügen Sie am Ende der Datei die folgende Zeile hinzu:<ssh-username>
ALL=(ALL) NOPASSWD: ALLAnmerkung
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 neuesten
Versionen 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.major
.minor
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
unter <test_case_id>
.log/results/
ausdrücklich alle fehlenden Parameter auf. IDT validiert auch Ihre JSON-Konfigurationsdateischemas, um sicherzustellen, dass Sie die neueste unterstützte Version verwenden.<execution-id>
/logs
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
-
Öffnen Sie auf dem macOS-Computer im Apple-MenüSystemeinstellungen.
-
WähleSicherheit und Datenschutz, dann auf derAllgemeinWählen Sie auf der Registerkarte das Schlosssymbol, um Änderungen an den Sicherheitseinstellungen vorzunehmen.
-
Im Falle einer Blockierung
devicetester_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. -
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/
. 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.<execution-id>
/logs/<test-case-id>
.log
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.json
Datei, 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.log
datei.
Failed to upload data to S3
Dieser Fehler kann auftreten, wenn der Stream-Manager denAWSAnmeldeinformationen in der~/root/.aws/credentials
Datei 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 diecredentials
Datei 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 enthalten
Access denied
Fehler, 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.json
datei.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, dass
bash
ist auf dem zu testenden Gerät installiert. -
Wenn dein
userdata.json
Datei enthält dieGreengrassCliVersion
Konfigurationsparameter, 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-
) das heißt<resource-id>
.logError: Could not find or load main class com.amazonaws.greengrass.runtime.LambdaRuntime.
, mach das Folgende:-
Überprüfen Sie, wofür der Ordner verwendet wurde
InstallationDirRootOnDevice
in deruserdata.json
datei. -
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.