Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Risoluzione dei problemi IDT perAWS IoT GreengrassV2
IDT perAWS IoT GreengrassV2 scrive gli errori in varie posizioni in base al tipo di errore. IDT scrive gli errori nella console, nei file di registro e nei rapporti di test.
Dove cercare gli errori
Gli errori di alto livello vengono visualizzati sulla console durante l'esecuzione del test e, una volta completati tutti i test, viene visualizzato un riepilogo dei test non riusciti.awsiotdevicetester_report.xml
contiene un riepilogo di tutti gli errori che hanno causato il fallimento di un test. IDT archivia i file di registro per ogni esecuzione del test in una directory con un UUID per l'esecuzione del test, visualizzato sulla console durante l'esecuzione del test.
La directory dei registri di test IDT è
. Questa directory contiene i seguenti file visualizzati nella tabella. Questo parametro è utile per il debugging.<device-tester-extract-location>
/results/<execution-id>
/logs/
File | Descrizione |
---|---|
test_manager.log |
I log scritti sulla console durante l'esecuzione del test. Il riepilogo dei risultati alla fine di questo file include un elenco dei test non riusciti. I log di avviso e di errore in questo file possono fornire informazioni sull'errore. |
|
Registri dettagliati per il test specifico in un gruppo di test. Per i test che utilizzano componenti Greengrass, viene chiamato il file di registro del test casegreengrass-test-run.log . |
|
Registri dettagliati perAWS IoT GreengrassSoftware di base. IDT copia questo file dal dispositivo sottoposto a test quando esegue i test di installazioneAWS IoT GreengrassSoftware di base sul dispositivo. Per ulteriori informazioni sui messaggi contenuti in questo file di registro, vedereRisoluzione dei problemi AWS IoT Greengrass V2. |
|
Registri dettagliati per i componenti Greengrass che vengono distribuiti durante le esecuzioni di test. IDT copia i file di registro dei componenti dal dispositivo sottoposto a test quando esegue test che distribuiscono componenti specifici. Il nome di ogni file di registro dei componenti corrisponde al nome del componente distribuito. Per ulteriori informazioni sui messaggi in questo file di registro, vedereRisoluzione dei problemi AWS IoT Greengrass V2. |
Risoluzione di IDT perAWS IoT GreengrassErrori V2
Prima di eseguire IDT perAWS IoT Greengrass, installa i file di configurazione corretti. Se si verificano errori di analisi e configurazione, il primo passaggio consiste nell'individuare e utilizzare un modello di configurazione appropriato per l'ambiente in uso.
Se continui a riscontare problemi, consulta la seguente procedura di debug.
Argomenti
- errori di risoluzione degli alias
- Errori di conflitto
- Errore di avvio del test non riuscito
- L'immagine di qualificazione Docker presenta errori
- Impossibile leggere le credenziali
- Guidare gli errori con PreInstalled Greengrass
- Eccezione di firma non valida
- Errori di qualificazione dell'apprendimento automatico
- Implementazioni di Open Test Framework (OTF) non riuscite
- Errori di parsing
- Errori di autorizzazione negata
- Errore di generazione del rapporto di qualificazione
- Errore di parametro richiesto mancante
- Eccezione di sicurezza su macOS
- Errori di connessione SSH
- Errori di qualificazione dello Stream Manager
- Errori di timeout
- Errori di controllo della versione
errori di risoluzione degli alias
Quando esegui suite di test personalizzate, potresti visualizzare il seguente errore nella console e neltest_manager.log
.
Couldn't resolve placeholders: couldn't do a json lookup: index out of range
Questo errore può verificarsi quando gli alias configurati nell'orchestrator di test IDT non si risolvono correttamente o se i valori risolti non sono presenti nei file di configurazione. Per risolvere questo errore, assicurati chedevice.json
euserdata.json
contengono le informazioni corrette richieste per la tua suite di test. Per informazioni sulla configurazione richiesta perAWS IoT Greengrassqualifica, vedereConfigurare le impostazioni IDT per eseguire la suite di AWS IoT Greengrass qualifiche.
Errori di conflitto
È possibile che venga visualizzato il seguente errore quando si esegue ilAWS IoT Greengrasssuite di qualificazione contemporaneamente su più di un dispositivo.
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]” }
L'esecuzione simultanea di test non è ancora supportata perAWS IoT Greengrasssuite di qualificazione. Esegui la suite di qualificazione in sequenza per ogni dispositivo.
Errore di avvio del test non riuscito
È possibile che si verifichino errori che indicano errori verificatisi durante il tentativo di avvio del test. Le cause sono diverse, quindi esegui le operazioni descritte di seguito:
-
Assicurati che il nome del pool nel comando di esecuzione esista effettivamente. IDT fa riferimento al nome del pool direttamente dal
device.json
file. -
Verifica che i parametri di configurazione dei dispositivi nel pool siano corretti.
L'immagine di qualificazione Docker presenta errori
I test di qualificazione del gestore di applicazioni Docker utilizzano ilamazon/amazon-ec2-metadata-mock
immagine del contenitore in Amazon ECR per qualificare il dispositivo sottoposto a test.
Potresti ricevere il seguente errore se l'immagine è già presente in un contenitore Docker sul dispositivo in prova.
The Docker image amazon/amazon-ec2-metadata-mock:
version
already exists on the device.
Se in precedenza hai scaricato questa immagine ed eseguito ilamazon/amazon-ec2-metadata-mock
contenitore sul tuo dispositivo, assicurati di rimuovere questa immagine dal dispositivo sottoposto a test prima di eseguire i test di qualificazione.
Impossibile leggere le credenziali
Durante il test dei dispositivi Windows, potresti riscontrareFailed to read
credential
errore nelgreengrass.log
file se l'utente che usi per connetterti al dispositivo in prova non è configurato nel gestore delle credenziali su quel dispositivo.
Per risolvere questo errore, configura l'utente e la password per l'utente IDT nel gestore delle credenziali sul dispositivo in prova.
Per ulteriori informazioni, consulta Configura le credenziali utente per i dispositivi Windows.
Guidare gli errori con PreInstalled Greengrass
Durante l'esecuzione di IDT con PreInstalled Greengrass, se riscontri un errore diGuice
oErrorInCustomProvider
, controlla se il fileuserdata.json
ha ilInstalledDirRootOnDevice
impostato nella cartella di installazione di Greengrass. IDT verifica la presenza del fileeffectiveConfig.yaml
sotto<InstallationDirRootOnDevice>/config/effectiveConfig.yaml
.
Per ulteriori informazioni, consulta Configura le credenziali utente per i dispositivi Windows.
Eccezione di firma non valida
Quando esegui i test di qualificazione Lambda, potresti riscontrare ilinvalidsignatureexception
errore se la macchina host IDT presenta problemi di accesso alla rete. Reimposta il router ed esegui nuovamente i test.
Errori di qualificazione dell'apprendimento automatico
Quando esegui test di qualificazione dell'apprendimento automatico (ML), potresti riscontrare errori di qualificazione se il tuo dispositivo non soddisfa irequisitiper implementare ilAWS- componenti ML forniti. Per risolvere gli errori di qualificazione ML, procedi come segue:
-
Cerca i dettagli degli errori nei registri dei componenti che sono stati distribuiti durante l'esecuzione del test. I registri dei componenti si trovano nel
rubrica.<device-tester-extract-location>
/results/<execution-id>
/logs/<test-group-id>
-
Aggiungi il
-Dgg.persist=installed.software
argomento altest.json
file per il test case fallito. Latest.json
il file si trova in<device-tester-extract-location>
/tests/GGV2Q_version
directory.
Implementazioni di Open Test Framework (OTF) non riuscite
Se i test OTF non riescono a completare la distribuzione, una causa probabile potrebbe essere rappresentata dalle autorizzazioni impostate per la cartella principale diTempResourcesDirOnDevice
eInstallationDirRootOnDevice
. Per impostare correttamente le autorizzazioni di questa cartella, esegui il comando seguente. Sostituisci
con il nome della cartella principale.folder-name
sudo chmod
755
folder-name
Errori di parsing
Gli errori di battitura in una configurazione JSON possono causare errori di analisi. Nella maggior parte dei casi, il problema è dovuto all'omissione di parentesi, virgole o virgolette nel file JSON. IDT esegue una convalida JSON e visualizza le informazioni di debug. Inoltre indica la riga in cui si è verificato l'errore, il numero di riga e il numero di colonna dell'errore di sintassi. Queste informazioni dovrebbero essere sufficienti per aiutarti a correggere l'errore, ma se ancora non riesci a individuare l'errore, puoi eseguire la convalida manualmente nel tuo IDE, in un editor di testo come Atom o Sublime o tramite uno strumento online come JSONLint.
Errori di autorizzazione negata
IDT esegue operazioni su varie directory e file in un dispositivo sottoposto a test. Alcune di queste operazioni richiedono l'accesso root. Per automatizzare queste operazioni, IDT deve essere in grado di eseguire comandi con il comando sudo senza la digitazione di una password.
Segui questi passaggi per consentire l'accesso al comando sudo senza la digitazione di una password.
Nota
user
e username
si riferiscono all'utente SSH utilizzato da IDT per accedere al dispositivo sottoposto a test.
-
Utilizza sudo usermod -aG sudo
<ssh-username>
per aggiungere l'utente SSH al gruppo sudo -
Per rendere effettive le modifiche, esci ed esegui di nuovo l'accesso.
-
Apri il file
/etc/sudoers
e aggiungi la riga seguente alla fine del file:<ssh-username>
ALL=(ALL) NOPASSWD: ALLNota
Come best practice, ti consigliamo di utilizzare sudo visudo quando modifichi
/etc/sudoers
.
Errore di generazione del rapporto di qualificazione
IDT supporta le quattro versioni più recenti
versioni diAWS IoT Greengrasssuite di qualificazione V2 (GGV2Q) per generare report sulle qualifiche da inviare aAWS Partner Networkper includere i tuoi dispositivi nelAWS PartnerCatalogo dei dispositivi. Le versioni precedenti della suite di qualificazione non generano report sulle qualifiche.major
.minor
Se hai domande sulla politica di supporto, contattaAWS Support
Errore di parametro richiesto mancante
Quando IDT aggiunge nuove funzionalità, potrebbe apportare modifiche ai file di configurazione. L'utilizzo di un file di configurazione precedente potrebbe invalidare la tua configurazione. Se dovesse succedere, il file
in <test_case_id>
.log/results/
elenca in modo esplicito tutti i parametri mancanti. IDT convalida anche gli schemi dei file di configurazione JSON per verificare che stiate utilizzando l'ultima versione supportata.<execution-id>
/logs
Eccezione di sicurezza su macOS
Quando esegui IDT su un computer host macOS, ne blocca l'esecuzione. Per eseguire IDT, concedi un'eccezione di sicurezza agli eseguibili che fa parte della funzionalità di runtime IDT. Quando viene visualizzato il messaggio di avviso sul computer host, effettuate le seguenti operazioni per ciascuno degli eseguibili applicabili:
Per concedere un'eccezione di sicurezza agli eseguibili IDT
-
Sul computer macOS, nel menu Apple, apriPreferenze di sistema.
-
ScegliSicurezza e privacy, quindi suGeneralescheda, scegli l'icona del lucchetto per apportare modifiche alle impostazioni di sicurezza.
-
In caso di blocco
devicetester_mac_x86-64
, cerca il messaggio"devicetester_mac_x86-64" was blocked from use because it is not from an identified developer.
e scegliConsenti comunque. -
Riprendi i test IDT, finché non avrai completato tutti gli eseguibili coinvolti.
Errori di connessione SSH
Quando IDT non riesce a connettersi a un dispositivo sottoposto a test, registra gli errori di connessione/results/
. I messaggi SSH vengono visualizzati nella parte superiore di questo file di registro perché la connessione a un dispositivo sottoposto a test è una delle prime operazioni eseguite da IDT.<execution-id>
/logs/<test-case-id>
.log
La maggior parte delle configurazioni Windows utilizza l'applicazione terminale PuTTY per connettersi agli host Linux. Questa applicazione richiede la conversione dei file di chiave privata PEM standard in un formato Windows proprietario chiamato PPK. Se configuri SSH nel tuodevice.json
file, usa file PEM. Se si utilizza un file PPK, IDT non è in grado di creare una connessione SSH conAWS IoT Greengrassdispositivo e non può eseguire test.
A partire da IDT v4.4.0, se non hai abilitato SFTP sul dispositivo in prova, potresti vedere il seguente errore nel file di registro.
SSH connection failed with EOF
Per risolvere questo errore, abilita SFTP sul tuo dispositivo.
Errori di qualificazione dello Stream Manager
Quando esegui i test di qualificazione dello stream manager, potresti visualizzare il seguente errore nelcom.aws.StreamManagerExport.log
file.
Failed to upload data to S3
Questo errore può verificarsi quando lo stream manager utilizzaAWScredenziali in~/root/.aws/credentials
file sul dispositivo invece di utilizzare le credenziali di ambiente che IDT esporta sul dispositivo in prova. Per evitare questo problema, elimina ilcredentials
archivia il file sul dispositivo ed esegui nuovamente il test di qualificazione.
Errori di timeout
Puoi aumentare il timeout per ogni test specificando un moltiplicatore di timeout applicato al valore predefinito del timeout di ogni test. Qualsiasi valore configurato per questo flag deve essere maggiore o uguale a 1.0.
Per usare il moltiplicatore di timeout, utilizza il flag --timeout-multiplier
durante l'esecuzione dei test. Ad esempio:
./devicetester_linux run-suite --suite-id GGV2Q_1.0.0 --pool-id DevicePool1 --timeout-multiplier 2.5
Per ulteriori informazioni, esegui run-suite --help
.
Alcuni errori di timeout si verificano quando i test case IDT non possono essere completati a causa di problemi di configurazione. Non è possibile risolvere questi errori aumentando il moltiplicatore di timeout. Utilizza i log dell'esecuzione del test per risolvere i problemi di configurazione sottostanti.
-
Se i log dei componenti MQTT o Lambda contengono
Access denied
errori, la cartella di installazione di Greengrass potrebbe non avere le autorizzazioni di file corrette. Eseguite il seguente comando per ogni cartella nel percorso di installazione definito neluserdata.json
file.sudo chmod 755
folder-name
-
Se i log di Greengrass indicano che l'implementazione della CLI di Greengrass non è completa, procedi come segue:
-
Verificate che
bash
è installato sul dispositivo in prova. -
Se il tuo
userdata.json
il file includeGreengrassCliVersion
parametro di configurazione, rimuoverlo. Questo parametro è obsoleto in IDT v4.1.0 e versioni successive. Per ulteriori informazioni, consulta Configura userdata.json.
-
-
Se il test di implementazione Lambda ha esito negativo e viene visualizzato il messaggio di errore «Validating Lambda publish: timeout» e viene visualizzato un errore nel file di registro del test (
idt-gg2-lambda-function-idt-
) che dice<resource-id>
.logError: Could not find or load main class com.amazonaws.greengrass.runtime.LambdaRuntime.
, procedi come segue:-
Verifica per quale cartella è stata utilizzata
InstallationDirRootOnDevice
neluserdata.json
fascicolo. -
Assicurati che sul tuo dispositivo siano configurate le autorizzazioni utente corrette. Per ulteriori dettagli, consultaConfigura le autorizzazioni utente sul tuo dispositivo.
-
Errori di controllo della versione
IDT emette il seguente errore quandoAWSle credenziali utente per l'utente IDT non dispongono delle autorizzazioni IAM richieste.
Failed to check version compatibility
IlAWSutente che non dispone delle autorizzazioni IAM richieste.