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
folder. Se necessario, devono essere configurati anche i test runnerAWScredenziali che IDT utilizzerà per connettersi alAWSnuvola. <device-tester-extract-location>
/configs/
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.json
Il 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.json
file situato nel
folder.<device-tester-extract-location>
/configs/
[ { "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 nella
device.json
file. 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.features
query, o dalcontesto della macchina a staticon ilpool.features
query.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.
ssh
euart
per dispositivi fisici edocker
per container Docker. connectivity.ip
-
L'indirizzo IP del dispositivo sottoposto a test.
Questa proprietà si applica solo se
connectivity.protocol
è impostata sussh
. 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 sussh
. connectivity.auth
-
Informazioni di autenticazione per la connessione.
Questa proprietà si applica solo se
connectivity.protocol
è impostata sussh
.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 supassword
. 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 supki
. 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 suuart
. connectivity.containerId
-
L'ID contenitore o il nome del contenitore Docker in fase di test.
Questa proprietà si applica solo se
connectivity.protocol
è impostata sudocker
. 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 sudocker
.
Nota
Per verificare se i test runner configurano la connessione errata del dispositivo per un test, è possibile recuperare
pool.Devices[0].Connectivity.Protocol
dal contesto della macchina statale e confrontarlo con il valore atteso in aChoice
stato. Se viene utilizzato un protocollo errato, stampare un messaggio utilizzando ilLogMessage
stato e transizione alFail
stato.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.json
il file contiene qualsiasi informazione aggiuntiva richiesta da una suite di test ma non specificata nelladevice.json
file. 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.json
il 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.json
file 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.json
file situato nel
folder.<device-tester-extract-location>
/configs/
[ { "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.
ssh
euart
per dispositivi fisici edocker
per container Docker. connectivity.ip
-
L'indirizzo IP del dispositivo sottoposto a test.
Questa proprietà si applica solo se
connectivity.protocol
è impostata sussh
. 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 sussh
. connectivity.auth
-
Informazioni di autenticazione per la connessione.
Questa proprietà si applica solo se
connectivity.protocol
è impostata sussh
.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 supassword
. 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 supki
. 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 suuart
. connectivity.containerId
-
L'ID contenitore o il nome del contenitore Docker in fase di test.
Questa proprietà si applica solo se
connectivity.protocol
è impostata sudocker
. 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 sudocker
.
(Facoltativo) Config.json
Laconfig.json
il 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 il
AWS_ACCESS_KEY_ID
eAWS_SECRET_ACCESS_KEY
variabili di ambiente da memorizzareAWScredenzialiPer 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 modificanoauth
sezione nellaconfig.json
file situato nel
folder.<device-tester-extract-location>
/configs/
{ "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 alla
device.json
file. 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.
file
per recuperare credenziali da un file di credenziali eenvironment
per 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 sufile
.