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.
Problembehandlung IDT für V2 AWS IoT Greengrass
IDT für AWS IoT Greengrass V2 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 Verzeichnis der IDT-Testprotokolle 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. Für Tests, die Greengrass-Komponenten bereitstellen, wird die Testfall-Protokolldatei aufgerufengreengrass-test-run.log . |
|
Detaillierte Protokolle für die AWS IoT Greengrass Core-Software. IDT kopiert diese Datei von dem zu testenden Gerät, wenn es Tests ausführt, bei denen AWS IoT Greengrass Core-Software auf dem Gerät installiert wird. 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 für AWS IoT Greengrass V2-Fehler beheben
Bevor Sie IDT for ausführen AWS IoT Greengrass, sollten Sie die richtigen Konfigurationsdateien einrichten. 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 in der angezeigttest_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, dass Ihr device.json
und die richtigen Informationen userdata.json
enthalten, die für Ihre Testsuite erforderlich sind. Informationen zur Konfiguration, die für die AWS IoT Greengrass Qualifizierung erforderlich ist, 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 die AWS IoT Greengrass Qualification Suite gleichzeitig auf mehr als einem Gerät ausführen.
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 für die AWS IoT Greengrass Qualification Suite noch nicht unterstützt. 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 verweist direkt aus Ihrer
device.json
Datei auf den Poolnamen. -
Stellen Sie sicher, dass die Geräte in Ihrem Pool über die richtigen Konfigurationsparameter verfügen.
Das Docker-Qualifikationsbild ist vorhanden, Fehler
Die Qualifizierungstests für Docker Application Manager verwenden das amazon/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 bereits heruntergeladen und den amazon/amazon-ec2-metadata-mock
Container auf Ihrem Gerät ausgeführt haben, stellen Sie sicher, dass Sie dieses Image von dem zu testenden Gerät entfernen, bevor Sie die Qualifizierungstests ausführen.
Die Anmeldeinformationen konnten nicht gelesen werden
Beim Testen von Windows-Geräten kann der Failed to read
credential
Fehler in der greengrass.log
Datei auftreten, wenn der Benutzer, den Sie für die Verbindung mit dem zu testenden Gerät verwenden, 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 Greengrass PreInstalled
Wenn Sie beim Ausführen von IDT mit PreInstalled Greengrass auf den Fehler Guice
oder stoßenErrorInCustomProvider
, überprüfen Sie, ob die Datei den InstalledDirRootOnDevice
Greengrass-Installationsordner userdata.json
enthält. IDT sucht nach der Datei unter. effectiveConfig.yaml
<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, kann der invalidsignatureexception
Fehler auftreten, wenn auf Ihrem IDT-Hostcomputer Netzwerkzugriffsprobleme auftreten. Setzen Sie Ihren Router zurück und führen Sie die Tests erneut aus.
Qualifizierungsfehler beim maschinellen Lernen
Wenn Sie Qualifizierungstests für maschinelles Lernen (ML) durchführen, kann es zu Qualifizierungsfehlern kommen, wenn Ihr Gerät die Anforderungen für die Bereitstellung der AWS bereitgestellten ML-Komponenten nicht erfüllt. Gehen Sie wie folgt vor, um ML-Qualifizierungsfehler 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ügen Sie der
test.json
Datei das-Dgg.persist=installed.software
Argument für den fehlgeschlagenen Testfall hinzu. Dietest.json
Datei befindet sich im<device-tester-extract-location>
/tests/GGV2Q_version
directory.
Fehlgeschlagene Bereitstellungen von Open Test Framework (OTF)
Wenn die Bereitstellung durch OTF-Tests nicht abgeschlossen werden kann, kann dies wahrscheinlich an den für den übergeordneten Ordner von TempResourcesDirOnDevice
und InstallationDirRootOnDevice
festgelegten Berechtigungen liegen. Führen Sie den folgenden Befehl aus, um die Berechtigungen für diesen Ordner korrekt festzulegen.
Ersetzen Sie ihn 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 durchführen. JSONLint
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 der AWS IoT Greengrass V2 Qualification Suite (GGV2Q) zur Erstellung von Qualifizierungsberichten, die Sie einreichen können, AWS Partner Network um Ihre Geräte in den AWS Partner Gerätekatalog aufzunehmen. Frühere Versionen der Qualification Suite generieren keine Qualifikationsberichte.major
.minor
Wenn Sie Fragen zu den Support-Richtlinien haben, wenden Sie sich an AWS -Support
Fehler aufgrund fehlender erforderlicher Parameter
Wenn IDT neue Funktionen hinzufügt, kann es zu Änderungen an den Konfigurationsdateien kommen. 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ü die Systemeinstellungen.
-
Wählen Sie Sicherheit und Datenschutz und dann auf der Registerkarte Allgemein das Schlosssymbol, um Änderungen an den Sicherheitseinstellungen vorzunehmen.
-
Suchen Sie im Falle einer Blockierung
devicetester_mac_x86-64
nach der Nachricht"devicetester_mac_x86-64" was blocked from use because it is not from an identified developer.
und wählen Sie „Trotzdem zulassen“. -
Setzen Sie den IDT-Test 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-Meldungen werden oben in dieser Protokolldatei angezeigt, da die Verbindung zu einem getesteten Gerät eine der ersten Operationen ist, die IDT ausführt.<execution-id>
/logs/<test-case-id>
.log
Die meisten Windows-Konfigurationen verwenden die TTy Pu-Terminal-Anwendung, 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 Ihrer device.json
Datei konfigurieren, verwenden Sie PEM-Dateien. Wenn Sie eine PPK-Datei verwenden, kann IDT keine SSH-Verbindung mit dem AWS IoT Greengrass Gerät herstellen und keine Tests ausführen.
Ab IDT v4.4.0 wird in der Protokolldatei möglicherweise der folgende Fehler angezeigt, wenn Sie SFTP auf Ihrem zu testenden Gerät nicht aktiviert haben.
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 der com.aws.StreamManagerExport.log
Datei angezeigt.
Failed to upload data to S3
Dieser Fehler kann auftreten, wenn Stream Manager die AWS Anmeldeinformationen in der ~/root/.aws/credentials
Datei auf Ihrem Gerät verwendet, anstatt die Umgebungsinformationen zu verwenden, die IDT auf das zu testende Gerät exportiert. Um dieses Problem zu vermeiden, löschen Sie die credentials
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
. Zum Beispiel:
./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
Access denied
Fehler enthalten, verfügt Ihr Greengrass-Installationsordner möglicherweise nicht über die richtigen Dateiberechtigungen. Führen Sie den folgenden Befehl für jeden Ordner im Installationspfad aus, den Sie in Ihrer Datei definiert haben.userdata.json
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
es auf dem zu testenden Gerät installiert ist. -
Wenn Ihre
userdata.json
Datei denGreengrassCliVersion
Konfigurationsparameter enthält, entfernen Sie 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 (
idt-gg2-lambda-function-idt-
) erhalten, die besagt<resource-id>
.logError: Could not find or load main class com.amazonaws.greengrass.runtime.LambdaRuntime.
, gehen Sie wie folgt vor:-
Überprüfen Sie, für welchen Ordner
InstallationDirRootOnDevice
in der Datei verwendet wurde.userdata.json
-
Stellen Sie sicher, dass die richtigen Benutzerberechtigungen auf Ihrem Gerät eingerichtet sind. Weitere Informationen finden Sie unter Benutzerberechtigungen auf Ihrem Gerät konfigurieren.
-
Fehler bei der Versionsprüfung
IDT gibt den folgenden Fehler aus, wenn die AWS Benutzeranmeldeinformationen für den IDT-Benutzer nicht über die erforderlichen IAM-Berechtigungen verfügen.
Failed to check version compatibility
Der AWS Benutzer, der nicht über die erforderlichen IAM-Berechtigungen verfügt.