AWS IoT Guida alla risoluzione di Device Advisor - AWS IoT Core

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

AWS IoT Guida alla risoluzione di Device Advisor

Aiutaci a migliorare questo argomento
Generali
D: È possibile eseguire più suite di test in contemporanea?

R: Sì. Ora Device Advisor supporta l'esecuzione di più suite di test su dispositivi diversi utilizzando un endpoint a livello di dispositivo. Se utilizzi l'endpoint a livello di account, puoi eseguire una suite alla volta perché è disponibile un endpoint Device Advisor per account. Per ulteriori informazioni, consulta la sezione Configurazione del dispositivo.

D: Ho visto dal mio dispositivo che la connessione TLS è stata negata da Device Advisor. È previsto?

R: Sì. Device Advisor nega la connessione TLS prima e dopo ogni esecuzione di un test. Consigliamo agli utenti di implementare il meccanismo di nuovo tentativo del dispositivo per un'esperienza di test completamente automatizzata con Device Advisor. Se esegui una suite di test con più di un test case, ad esempio TLS connect, MQTT connect e MQTT publish, ti consigliamo di disporre di un meccanismo progettato per il tuo dispositivo. Il meccanismo può provare a connettersi al nostro endpoint di test ogni 5 secondi per un minuto o due. In questo modo, puoi eseguire più test case in sequenza in modo automatico.

D: È possibile ottenere uno storico di tutte le chiamate alle API effettuate sull'account per analizzare la sicurezza e per la risoluzione dei problemi operativi?

R: Sì. Per ricevere una cronologia delle chiamate API di Device Advisor effettuate sul tuo account, devi semplicemente attivarla CloudTrail nella Console di AWS IoT gestione e filtrare la fonte dell'evento desiderataiotdeviceadvisor.amazonaws.com.

D: Come posso visualizzare gli accessi di Device Advisor? CloudWatch

R: I log generati durante l'esecuzione di una suite di test vengono caricati CloudWatch se aggiungi la policy richiesta (ad esempio, CloudWatchFullAccess) al tuo ruolo di servizio (vediConfigurazione). Se nella suite di test è presente almeno un test case, viene creato un gruppo di log «testSuiteIdaws/iot/deviceadvisor/$" con due flussi di log. Uno stream è «$testRunId" e include i registri delle azioni intraprese prima e dopo l'esecuzione dei casi di test nella suite di test, come le fasi di configurazione e pulizia. L'altro flusso di log è «$ suiteRunId _$»testRunId, che è specifico per l'esecuzione di una suite di test. Gli eventi inviati dai dispositivi AWS IoT Core verranno registrati in questo flusso di log.

D: Qual è lo scopo del ruolo di autorizzazione del dispositivo?

R: Device Advisor si colloca tra il dispositivo di test e la simulazione AWS IoT Core di scenari di test. Accetta connessioni e messaggi dai tuoi dispositivi di test e li inoltra a AWS IoT Core assumendo il ruolo di autorizzazione del dispositivo e avviando una connessione per conto dell'utente. È importante assicurarsi che le autorizzazioni del ruolo del dispositivo siano le stesse del certificato utilizzato per l'esecuzione dei test. AWS IoT le politiche relative ai certificati non vengono applicate quando Device Advisor avvia una connessione per AWS IoT Core conto dell'utente utilizzando il ruolo di autorizzazione del dispositivo. Tuttavia, vengono applicate le autorizzazioni del ruolo di autorizzazione del dispositivo impostato.

D: In quali regioni è supportato Device Advisor?

R: Device Advisor è supportato nelle regioni us-east-1, us-west-2, ap-northeast-1 e eu-west-1.

D: Perché vedo risultati incoerenti?

R: Una delle cause principali di risultati incoerenti è l'impostazione di un test EXECUTION_TIMEOUT a un valore troppo basso. Per ulteriori informazioni sui valori consigliati e di default EXECUTION_TIMEOUT, consulta Test case di Device Advisor.

D: Quale protocollo MQTT è supportato da Device Advisor?

R: Device Advisor supporta MQTT versione 3.1.1 con certificati client X509.

D: Che cosa succede se il test case non è riuscito con un messaggio di timeout di esecuzione, anche se ho provato a collegare il dispositivo all'endpoint di test?

R: Convalida tutti i passaggi indicati in Creazione di un ruolo IAM da utilizzare come ruolo del dispositivo. Se il test continua a fallire, è possibile che il dispositivo non invii l'estensione Server Name Indication (SNI) corretta, necessaria per il funzionamento di Device Advisor. Il valore SNI corretto è l'indirizzo dell'endpoint restituito quando si segue la sezione Configura il dispositivo. AWS IoT richiede inoltre che i dispositivi inviino l'estensione SNI (Server Name Indication) al protocollo Transport Layer Security (TLS). Per ulteriori informazioni, vedere Transport security in. AWS IoT

D: La mia connessione MQTT si interrompe con un errore "libaws-c-mqtt: AWS_ERROR_MQTT_UNEXPECTED_HANGUP» (oppure) la connessione MQTT del mio dispositivo viene disconnessa automaticamente dall'endpoint Device Advisor. Come si può risolvere questo problema?

R: Questo particolare codice di errore e le disconnessioni impreviste possono essere causati da numerosi fattori, ma molto probabilmente sono correlati al ruolo assegnato al dispositivo. I seguenti punti di controllo (in ordine di priorità) risolveranno il problema.

  • Il ruolo assegnato al dispositivo deve disporre delle autorizzazioni IAM minime richieste per eseguire i test. Device Advisor utilizzerà il ruolo del dispositivo collegato per eseguire azioni MQTT per conto del dispositivo di test. AWS IoT Se le autorizzazioni richieste non sono presenti, allora verrà visualizzato l'errore AWS_ERROR_MQTT_UNEXPECTED_HANGUP o si verificheranno disconnessioni impreviste mentre il dispositivo prova a connettersi all'endpoint Device Advisor. Ad esempio, se avete scelto di eseguire il test case MQTT Publish, entrambe le azioni Connect e Publish devono essere incluse nel ruolo con il corrispondente ClientId e l'argomento (potete fornire più valori utilizzando virgole per separare i valori e potete fornire valori di prefisso utilizzando un carattere jolly (*). Ad esempio, per fornire l'autorizzazione per la pubblicazione su qualsiasi argomento che inizia con TestTopic, puoi fornire "TestTopic*" come valore della risorsa. Ecco alcuni esempi di policy.

  • Mancata corrispondenza tra i valori definiti nel ruolo del dispositivo per i tipi di risorse e i valori effettivi utilizzati nel codice. Ad esempio: una mancata corrispondenza tra la ClientId definizione del ruolo e quella effettivamente ClientId utilizzata nel codice del dispositivo. Valori come ClientId Topic e TopicFilter devono essere identici nel ruolo e nel codice del dispositivo.

  • Il certificato del dispositivo collegato al dispositivo deve essere attivo e disporre di una policy collegata con le autorizzazioni delle operazioni necessarie per le risorse. Tieni presente che la policy relativa ai certificati dei dispositivi concede o nega l'accesso alle AWS IoT risorse e alle operazioni del piano AWS IoT Core dati. Device Advisor richiede che tu abbia un certificato del dispositivo attivo collegato al dispositivo che conceda le autorizzazioni delle operazioni utilizzate durante un test case.