Configurazione delle impostazioni per i test runner - AWS IoT Greengrass

AWS IoT Greengrass Version 1 è entrato nella fase di estensione della vita utile il 30 giugno 2023. Per ulteriori informazioni, consulta la politica AWS IoT Greengrass V1 di manutenzione. Dopo questa data, AWS IoT Greengrass V1 non rilascerà aggiornamenti che forniscano funzionalità, miglioramenti, correzioni di bug o patch di sicurezza. I dispositivi che funzionano AWS IoT Greengrass V1 non subiranno interruzioni e continueranno a funzionare e a connettersi al cloud. Ti consigliamo vivamente di eseguire la migrazione a AWS IoT Greengrass Version 2, che aggiunge nuove importanti funzionalità e supporto per piattaforme aggiuntive.

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

Configurazione delle impostazioni per i test runner

Per eseguire suite di test personalizzate, i test runner devono configurare le impostazioni in base alla suite di test che desiderano eseguire. Le impostazioni sono specificate in base ai modelli di file di configurazione JSON situati nel<device-tester-extract-location>/configs/folder. Se necessario, devono essere configurati anche i test runnerAWScredenziali che IDT utilizzerà per connettersi alAWSnuvola.

In qualità di test writer, è necessario configurare questi fileEseguire il debug della suite di test. È necessario fornire istruzioni per testare i runner in modo che possano configurare le seguenti impostazioni secondo necessità per eseguire le suite di test.

Configura dispositivo.json

Ladevice.jsonIl file contiene le informazioni sui dispositivi su cui eseguire i test (ad esempio l'indirizzo IP, le informazioni di accesso, il sistema operativo e l'architettura della CPU).

I corridori di test possono fornire queste informazioni utilizzando il seguente modellodevice.jsonfile situato nel<device-tester-extract-location>/configs/folder.

[ { "id": "<pool-id>", "sku": "<pool-sku>", "features": [ { "name": "<feature-name>", "value": "<feature-value>", "configs": [ { "name": "<config-name>", "value": "<config-value>" } ], } ], "devices": [ { "id": "<device-id>", "connectivity": { "protocol": "ssh | uart | docker", // ssh "ip": "<ip-address>", "port": <port-number>, "auth": { "method": "pki | password", "credentials": { "user": "<user-name>", // pki "privKeyPath": "/path/to/private/key", // password "password": "<password>", } }, // uart "serialPort": "<serial-port>", // docker "containerId": "<container-id>", "containerUser": "<container-user-name>", } } ] } ]

Tutti i campi che includono valori sono obbligatori, come descritto di seguito:

id

Un ID alfanumerico definito dall'utente che identifica in modo univoco una raccolta di dispositivi denominata un pool di dispositivi. I dispositivi che appartengono a un pool devono avere lo stesso hardware. Durante l'esecuzione di una suite di test, i dispositivi del pool vengono utilizzati per parallelizzare il carico di lavoro. Più dispositivi vengono utilizzati per eseguire diversi test.

sku

Un valore alfanumerico che identifica in modo univoco il dispositivo sottoposto a test. Lo SKU viene utilizzato per tenere traccia dei dispositivi qualificati.

Nota

Se vuoi elencare la scheda in AWS Partner Device Catalog, il codice SKU specificato qui deve corrispondere al codice SKU utilizzato nel processo di elencazione.

features

Facoltativo. Un array contenente le caratteristiche supportate del dispositivo. Le funzionalità del dispositivo sono valori definiti dall'utente configurati nella suite di test. È necessario fornire ai partecipanti di test informazioni sui nomi e sui valori delle feature da includere nelladevice.jsonfile. Ad esempio, se si desidera testare un dispositivo che funzioni come server MQTT per altri dispositivi, è possibile configurare la logica di test per convalidare livelli supportati specifici per una funzionalità denominataMQTT_QOS. I test runner forniscono questo nome di funzionalità e impostano il valore della funzione sui livelli QOS supportati dal dispositivo. Puoi recuperare le informazioni fornite dalContesto IDTcon ildevicePool.featuresquery, o dalcontesto della macchina a staticon ilpool.featuresquery.

features.name

Il nome della funzionalità.

features.value

I valori delle funzionalità supportati.

features.configs

Impostazioni di configurazione, se necessario, per la funzione.

features.config.name

Il nome dell'impostazione di configurazione.

features.config.value

I valori di impostazione supportati.

devices

Una serie di dispositivi nel pool da testare. È necessario specificare almeno un dispositivo.

devices.id

Un identificativo univoco definito dall'utente del dispositivo sottoposto a test.

connectivity.protocol

Il protocollo di comunicazione utilizzato per comunicare con questo dispositivo. Ciascun dispositivo in un pool deve utilizzare lo stesso protocollo.

Attualmente, gli unici valori supportati sono.ssheuartper dispositivi fisici edockerper container Docker.

connectivity.ip

L'indirizzo IP del dispositivo sottoposto a test.

Questa proprietà si applica solo se connectivity.protocol è impostata su ssh.

connectivity.port

Facoltativo. Il numero di porta da utilizzare per le connessioni SSH.

Il valore predefinito è 22.

Questa proprietà si applica solo se connectivity.protocol è impostata su ssh.

connectivity.auth

Informazioni di autenticazione per la connessione.

Questa proprietà si applica solo se connectivity.protocol è impostata su ssh.

connectivity.auth.method

Il metodo di autorizzazione utilizzato per accedere a un dispositivo con un determinato protocollo di connettività.

I valori supportati sono:

  • pki

  • password

connectivity.auth.credentials

Le credenziali utilizzate per l'autenticazione.

connectivity.auth.credentials.password

La password utilizzata per l'accesso al dispositivo da testare.

Questo valore si applica solo se connectivity.auth.method è impostato su password.

connectivity.auth.credentials.privKeyPath

Il percorso completo alla chiave privata utilizzata per accedere al dispositivo sottoposto a test.

Questo valore si applica solo se connectivity.auth.method è impostato su pki.

connectivity.auth.credentials.user

Il nome utente per l'accesso al dispositivo sottoposto a test.

connectivity.serialPort

Facoltativo. La porta seriale a cui è collegato il dispositivo.

Questa proprietà si applica solo se connectivity.protocol è impostata su uart.

connectivity.containerId

L'ID contenitore o il nome del contenitore Docker in fase di test.

Questa proprietà si applica solo se connectivity.protocol è impostata su docker.

connectivity.containerUser

Facoltativo. Il nome dell'utente a utente all'interno del contenitore. Il valore predefinito è l'utente fornito nel Dockerfile.

Il valore predefinito è 22.

Questa proprietà si applica solo se connectivity.protocol è impostata su docker.

Nota

Per verificare se i test runner configurano la connessione errata del dispositivo per un test, è possibile recuperarepool.Devices[0].Connectivity.Protocoldal contesto della macchina statale e confrontarlo con il valore atteso in aChoicestato. Se viene utilizzato un protocollo errato, stampare un messaggio utilizzando ilLogMessagestato e transizione alFailstato.

In alternativa, è possibile utilizzare il codice di gestione degli errori per segnalare un errore di test per tipi di dispositivi errati.

(Facoltativo) Configurazione di userdata.json

Lauserdata.jsonil file contiene qualsiasi informazione aggiuntiva richiesta da una suite di test ma non specificata nelladevice.jsonfile. Il formato di questo file dipende dallauserdata_scheme.jsondocumentodefinito nella suite di test. Se sei un test writer, assicurati di fornire queste informazioni agli utenti che eseguiranno le suite di test che scrivi.

(Facoltativo) Configurazione di resource.json

Laresource.jsonil file contiene informazioni su tutti i dispositivi che verranno utilizzati come dispositivi di risorse. I dispositivi di risorse sono dispositivi necessari per testare determinate funzionalità di un dispositivo in fase di test. Ad esempio, per testare la funzionalità Bluetooth di un dispositivo, è possibile utilizzare un dispositivo di risorse per verificare che il dispositivo possa connettersi correttamente. I dispositivi di risorse sono facoltativi e puoi richiedere tutte le risorse di cui hai bisogno. Come scrittore di test, si utilizza iltest.jsonper definire le funzionalità del dispositivo di risorse necessarie per un test. I corridori di prova quindi usano ilresource.jsonfile per fornire un pool di dispositivi di risorse che dispongono delle funzionalità richieste. Assicurati di fornire queste informazioni agli utenti che eseguiranno le suite di test che scrivi.

I corridori di test possono fornire queste informazioni utilizzando il seguente modelloresource.jsonfile situato nel<device-tester-extract-location>/configs/folder.

[ { "id": "<pool-id>", "features": [ { "name": "<feature-name>", "version": "<feature-value>", "jobSlots": <job-slots> } ], "devices": [ { "id": "<device-id>", "connectivity": { "protocol": "ssh | uart | docker", // ssh "ip": "<ip-address>", "port": <port-number>, "auth": { "method": "pki | password", "credentials": { "user": "<user-name>", // pki "privKeyPath": "/path/to/private/key", // password "password": "<password>", } }, // uart "serialPort": "<serial-port>", // docker "containerId": "<container-id>", "containerUser": "<container-user-name>", } } ] } ]

Tutti i campi che includono valori sono obbligatori, come descritto di seguito:

id

Un ID alfanumerico definito dall'utente che identifica in modo univoco una raccolta di dispositivi denominata un pool di dispositivi. I dispositivi che appartengono a un pool devono avere lo stesso hardware. Durante l'esecuzione di una suite di test, i dispositivi del pool vengono utilizzati per parallelizzare il carico di lavoro. Più dispositivi vengono utilizzati per eseguire diversi test.

features

Facoltativo. Un array contenente le caratteristiche supportate del dispositivo. Le informazioni richieste in questo campo sono definite nelfile test.jsonnella suite di test e determina quali test eseguire e come eseguire tali test. Se la suite di test non richiede alcuna funzionalità, questo campo non è obbligatorio.

features.name

Il nome della funzionalità.

features.version

La versione della funzione.

features.jobSlots

Impostazione per indicare quanti test possono utilizzare contemporaneamente il dispositivo. Il valore di default è 1.

devices

Una serie di dispositivi nel pool da testare. È necessario specificare almeno un dispositivo.

devices.id

Un identificativo univoco definito dall'utente del dispositivo sottoposto a test.

connectivity.protocol

Il protocollo di comunicazione utilizzato per comunicare con questo dispositivo. Ciascun dispositivo in un pool deve utilizzare lo stesso protocollo.

Attualmente, gli unici valori supportati sono.ssheuartper dispositivi fisici edockerper container Docker.

connectivity.ip

L'indirizzo IP del dispositivo sottoposto a test.

Questa proprietà si applica solo se connectivity.protocol è impostata su ssh.

connectivity.port

Facoltativo. Il numero di porta da utilizzare per le connessioni SSH.

Il valore predefinito è 22.

Questa proprietà si applica solo se connectivity.protocol è impostata su ssh.

connectivity.auth

Informazioni di autenticazione per la connessione.

Questa proprietà si applica solo se connectivity.protocol è impostata su ssh.

connectivity.auth.method

Il metodo di autorizzazione utilizzato per accedere a un dispositivo con un determinato protocollo di connettività.

I valori supportati sono:

  • pki

  • password

connectivity.auth.credentials

Le credenziali utilizzate per l'autenticazione.

connectivity.auth.credentials.password

La password utilizzata per l'accesso al dispositivo da testare.

Questo valore si applica solo se connectivity.auth.method è impostato su password.

connectivity.auth.credentials.privKeyPath

Il percorso completo alla chiave privata utilizzata per accedere al dispositivo sottoposto a test.

Questo valore si applica solo se connectivity.auth.method è impostato su pki.

connectivity.auth.credentials.user

Il nome utente per l'accesso al dispositivo sottoposto a test.

connectivity.serialPort

Facoltativo. La porta seriale a cui è collegato il dispositivo.

Questa proprietà si applica solo se connectivity.protocol è impostata su uart.

connectivity.containerId

L'ID contenitore o il nome del contenitore Docker in fase di test.

Questa proprietà si applica solo se connectivity.protocol è impostata su docker.

connectivity.containerUser

Facoltativo. Il nome dell'utente a utente all'interno del contenitore. Il valore predefinito è l'utente fornito nel Dockerfile.

Il valore predefinito è 22.

Questa proprietà si applica solo se connectivity.protocol è impostata su docker.

(Facoltativo) Config.json

Laconfig.jsonil file contiene informazioni di configurazione per IDT. In genere, i test runner non dovranno modificare questo file, tranne che per fornire il loroAWScredenziali utente per IDT e, facoltativamente, unAWSregione. SeAWSvengono fornite credenziali con autorizzazioni richiesteAWS IoTDevice Tester raccoglie e invia le metriche di utilizzo aAWS. Questa è una funzionalità di consenso e viene utilizzata per migliorare la funzionalità IDT. Per ulteriori informazioni, consulta la pagina Parametri di utilizzo IDT .

I test runner possono configurare il loroAWScredenziali in uno dei seguenti modi:

  • File delle credenziali

    IDT usa lo stesso file delle credenziali di AWS CLI. Per ulteriori informazioni, consulta l'argomento relativo ai file di configurazione e delle credenziali.

    La posizione del file delle credenziali varia in base al sistema operativo in uso:

    • macOS, Linux: ~/.aws/credentials

    • Windows: C:\Users\UserName\.aws\credentials

  • Variabili di ambiente

    Le variabili di ambiente sono variabili gestite dal sistema operativo e utilizzate dai comandi di sistema. Le variabili definite durante una sessione SSH non sono disponibili dopo la chiusura della sessione. IDT può utilizzare ilAWS_ACCESS_KEY_IDeAWS_SECRET_ACCESS_KEYvariabili di ambiente da memorizzareAWScredenziali

    Per impostare queste variabili su Linux, macOS o Unix, utilizza export:

    export AWS_ACCESS_KEY_ID=<your_access_key_id> export AWS_SECRET_ACCESS_KEY=<your_secret_access_key>

    Per impostare queste variabili su Windows, utilizza set:

    set AWS_ACCESS_KEY_ID=<your_access_key_id> set AWS_SECRET_ACCESS_KEY=<your_secret_access_key>

Per configurareAWScredenziali per IDT, i test runner modificanoauthsezione nellaconfig.jsonfile situato nel<device-tester-extract-location>/configs/folder.

{ "log": { "location": "logs" }, "configFiles": { "root": "configs", "device": "configs/device.json" }, "testPath": "tests", "reportPath": "results", "awsRegion": "<region>", "auth": { "method": "file | environment", "credentials": { "profile": "<profile-name>" } } } ]

Tutti i campi che includono valori sono obbligatori, come descritto di seguito:

Nota

Tutti i percorsi di questo file sono definiti in relazione alla<device-tester-extract-location>.

log.location

Il percorso alla cartella dei log nella<device-tester-extract-location>.

configFiles.root

Il percorso alla cartella contenente i file di configurazione.

configFiles.device

Il percorso alladevice.jsonfile.

testPath

Il percorso alla cartella contenente le suite di test.

reportPath

Il percorso della cartella che conterrà i risultati del test dopo che IDT ha eseguito una suite di test.

awsRegion

Facoltativo. LaAWSregione che utilizzeranno le suite di test. Se non è impostato, le suite di test utilizzeranno la regione predefinita specificata in ogni suite di test.

auth.method

Il metodo utilizzato da IDT per recuperareAWSCredenziali . I valori supportati sono.fileper recuperare credenziali da un file di credenziali eenvironmentper recuperare le credenziali utilizzando variabili d'ambiente.

auth.credentials.profile

Il profilo delle credenziali da utilizzare dal file delle credenziali. Questa proprietà si applica solo se auth.method è impostata su file.