Risoluzione dei problemi IDT perAWS IoT GreengrassV2 - AWS IoT Greengrass

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.xmlcontiene 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 è<device-tester-extract-location>/results/<execution-id>/logs/. Questa directory contiene i seguenti file visualizzati nella tabella. Questo parametro è utile per il debugging.

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.

test-group-id/test-case-id/test-name.log 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.
test-group-id/test-case-id/greengrass.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.
test-group-id/test-case-id/component-name.log 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.

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.jsoneuserdata.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 daldevice.jsonfile.

  • 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-mockimmagine 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-mockcontenitore 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 credentialerrore nelgreengrass.logfile 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 diGuiceoErrorInCustomProvider, controlla se il fileuserdata.jsonha ilInstalledDirRootOnDeviceimpostato nella cartella di installazione di Greengrass. IDT verifica la presenza del fileeffectiveConfig.yamlsotto<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 ilinvalidsignatureexceptionerrore 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<device-tester-extract-location>/results/<execution-id>/logs/<test-group-id>rubrica.

  • Aggiungi il-Dgg.persist=installed.softwareargomento altest.jsonfile per il test case fallito. Latest.jsonil 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 diTempResourcesDirOnDeviceeInstallationDirRootOnDevice. Per impostare correttamente le autorizzazioni di questa cartella, esegui il comando seguente. Sostituiscifolder-namecon il nome della cartella principale.

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.

  1. Utilizza sudo usermod -aG sudo <ssh-username> per aggiungere l'utente SSH al gruppo sudo

  2. Per rendere effettive le modifiche, esci ed esegui di nuovo l'accesso.

  3. Apri il file /etc/sudoers e aggiungi la riga seguente alla fine del file: <ssh-username> ALL=(ALL) NOPASSWD: ALL

    Nota

    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ù recentimajor.minorversioni 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.

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 <test_case_id>.log in /results/<execution-id>/logs 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.

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

  1. Sul computer macOS, nel menu Apple, apriPreferenze di sistema.

  2. ScegliSicurezza e privacy, quindi suGeneralescheda, scegli l'icona del lucchetto per apportare modifiche alle impostazioni di sicurezza.

  3. In caso di bloccodevicetester_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.

  4. 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/<execution-id>/logs/<test-case-id>.log. 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.

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.jsonfile, 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.logfile.

Failed to upload data to S3

Questo errore può verificarsi quando lo stream manager utilizzaAWScredenziali in~/root/.aws/credentialsfile sul dispositivo invece di utilizzare le credenziali di ambiente che IDT esporta sul dispositivo in prova. Per evitare questo problema, elimina ilcredentialsarchivia 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 contengonoAccess deniederrori, 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.jsonfile.

    sudo chmod 755 folder-name
  • Se i log di Greengrass indicano che l'implementazione della CLI di Greengrass non è completa, procedi come segue:

    • Verificate chebashè installato sul dispositivo in prova.

    • Se il tuouserdata.jsonil file includeGreengrassCliVersionparametro 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-<resource-id>.log) che diceError: Could not find or load main class com.amazonaws.greengrass.runtime.LambdaRuntime., procedi come segue:

    • Verifica per quale cartella è stata utilizzataInstallationDirRootOnDeviceneluserdata.jsonfascicolo.

    • 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.