AWS IoT Greengrass Version 1 est entré dans la phase de durée de vie prolongée le 30 juin 2023. Pour plus d'informations, consultez la politique de AWS IoT Greengrass V1 maintenance. Après cette date, AWS IoT Greengrass V1 ne publiera pas de mises à jour fournissant des fonctionnalités, des améliorations, des corrections de bogues ou des correctifs de sécurité. Les appareils qui fonctionnent AWS IoT Greengrass V1 sous tension ne seront pas perturbés et continueront à fonctionner et à se connecter au cloud. Nous vous recommandons vivement de migrer vers AWS IoT Greengrass Version 2, qui ajoute de nouvelles fonctionnalités importantes et prend en charge des plateformes supplémentaires.
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Configuration des paramètres pour les coureurs de tests
Pour exécuter des suites de tests personnalisées, les exécuteurs de tests doivent configurer leurs paramètres en fonction de la suite de tests qu'ils souhaitent exécuter. Les paramètres sont spécifiés en fonction des modèles de fichiers de configuration JSON situés dans le
folder. Si nécessaire, les coureurs d'essai doivent également configurerAWSinformations d'identification qu'IDT utilisera pour se connecter auAWScloud. <device-tester-extract-location>
/configs/
En tant que rédacteur de tests, vous devez configurer ces fichiers pourdéboguer votre suite de tests. Vous devez fournir des instructions pour tester les coureurs afin qu'ils puissent configurer les paramètres suivants au besoin pour exécuter vos suites de tests.
Configurer device.json
Ledevice.json
contient des informations sur les appareils sur lesquels les tests sont effectués (par exemple, l'adresse IP, les informations de connexion, le système d'exploitation et l'architecture d'UC).
Les coureurs de tests peuvent fournir ces informations via le modèle suivant.device.json
situé dans le fichier
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>
", } } ] } ]
Tous les champs qui contiennent des valeurs sont requis, comme indiqué ici :
id
-
ID alphanumérique défini par l'utilisateur qui identifie de façon unique un ensemble d'appareils appelé un groupe d'appareils. Le matériel doit être identique pour les appareils d'un même groupe. Lorsque vous exécutez une suite de tests, les appareils du groupe sont utilisés pour paralléliser la charge de travail. Plusieurs appareils sont utilisés pour exécuter différents tests.
sku
-
Valeur alphanumérique qui identifie de façon unique l'appareil que vous testez. Le SKU est utilisé pour effectuer le suivi des appareils qualifiés.
Note
Si vous souhaitez ajouter votre carte dans le catalogue d'appareils AWS Partner, la référence que vous indiquez ici doit correspondre à celle indiquée pendant le processus d'élaboration de la liste.
features
-
Facultatif. Un tableau contenant les fonctions prises en charge de l'appareil. Les fonctionnalités de l'appareil sont des valeurs définies par l'utilisateur que vous configurez dans votre suite de tests. Vous devez fournir à vos exécuteurs de tests des informations sur les noms et les valeurs des entités à inclure dans le
device.json
dans le fichier. Par exemple, si vous souhaitez tester un appareil qui fonctionne comme un serveur MQTT pour d'autres appareils, vous pouvez configurer votre logique de test pour valider des niveaux pris en charge spécifiques pour une fonctionnalité nomméeMQTT_QOS
. Les exécuteurs de test fournissent ce nom de fonctionnalité et définissent la valeur de la fonction sur les niveaux de QOS pris en charge par leur appareil. Vous pouvez récupérer les informations fournies à partir duContexte IDTavec ledevicePool.features
ou à partir de la requêtecontexte de machine d'étatavec lepool.features
requête.features.name
-
Nom de la fonction.
features.value
-
Les valeurs des entités prises en charge.
features.configs
-
Les paramètres de configuration, le cas échéant, pour la fonctionnalité.
features.config.name
-
Nom du paramètre de configuration.
features.config.value
-
Les valeurs de réglage prises en charge.
devices
-
Un ensemble d'appareils dans le pool à tester. Au moins un appareil est requis.
devices.id
-
Un identificateur unique défini par l'utilisateur pour l'appareil testé.
connectivity.protocol
-
Le protocole de communication utilisé pour communiquer avec cet appareil. Chaque appareil d'un pool doit utiliser le même protocole.
Actuellement, les seules valeurs prises en charge sont.
ssh
etuart
pour les appareils physiques, etdocker
pour conteneurs Docker. connectivity.ip
-
L'adresse IP de l'appareil testé.
Cette propriété s'applique uniquement si
connectivity.protocol
est défini surssh
. connectivity.port
-
Facultatif. Numéro de port à utiliser pour les connexions SSH.
La valeur par défaut est 22.
Cette propriété s'applique uniquement si
connectivity.protocol
est défini surssh
. connectivity.auth
-
Informations d'authentification pour la connexion.
Cette propriété s'applique uniquement si
connectivity.protocol
est défini surssh
.connectivity.auth.method
-
Méthode d'authentification utilisée pour accéder à un appareil sur le protocole de connectivité donné.
Les valeurs prises en charge sont :
-
pki
-
password
-
connectivity.auth.credentials
-
Informations d'identification utilisées pour l'authentification.
connectivity.auth.credentials.password
-
Mot de passe utilisé pour se connecter à l'appareil à tester.
Cette valeur s'applique uniquement si
connectivity.auth.method
est défini surpassword
. connectivity.auth.credentials.privKeyPath
-
Chemin complet de la clé privée utilisée pour se connecter à l'appareil testé.
Cette valeur s'applique uniquement si
connectivity.auth.method
est défini surpki
. connectivity.auth.credentials.user
-
Nom d'utilisateur pour la connexion à l'appareil testé.
connectivity.serialPort
-
Facultatif. Port série auquel l'appareil est connecté.
Cette propriété s'applique uniquement si
connectivity.protocol
est défini suruart
. connectivity.containerId
-
ID de conteneur ou nom du conteneur Docker en cours de test.
Cette propriété s'applique uniquement si
connectivity.protocol
est défini surdocker
. connectivity.containerUser
-
Facultatif. Nom de l'utilisateur à l'utilisateur à l'intérieur du conteneur. La valeur par défaut est celle fournie par l'utilisateur dans Dockerfile.
La valeur par défaut est 22.
Cette propriété s'applique uniquement si
connectivity.protocol
est défini surdocker
.
Note
Pour vérifier si les exécuteurs de tests configurent la connexion de périphérique incorrecte pour un test, vous pouvez récupérer
pool.Devices[0].Connectivity.Protocol
depuis le contexte de la machine d'état et comparez-le à la valeur attendue dans unChoice
état. Si un protocole incorrect est utilisé, imprimez un message à l'aide de la commandeLogMessage
état et transition vers leFail
état.Vous pouvez également utiliser un code de gestion des erreurs pour signaler un échec de test pour des types de périphériques incorrects.
(Facultatif) Configuration de userdata.json
Leuserdata.json
contient toutes les informations supplémentaires requises par une suite de tests, mais qui ne sont pas spécifiées dans ledevice.json
dans le fichier. Le format de ce fichier dépend de lauserdata_scheme.jsonfichierdéfini dans la suite de tests. Si vous êtes un rédacteur de tests, assurez-vous de fournir ces informations aux utilisateurs qui exécuteront les suites de tests que vous écrivez.
(Facultatif) Configuration de resource.json
Leresource.json
contient des informations sur tous les appareils qui seront utilisés comme périphériques de ressources. Les périphériques de ressources sont des appareils nécessaires pour tester certaines fonctionnalités d'un appareil en cours de test. Par exemple, pour tester la capacité Bluetooth d'un appareil, vous pouvez utiliser un périphérique de ressources pour vérifier si votre appareil peut s'y connecter correctement. Les périphériques de ressources sont facultatifs et vous pouvez avoir besoin d'autant d'appareils de ressources que nécessaire. En tant que rédacteur de tests, vous utilisez lefichier test.jsonpour définir les fonctionnalités du périphérique de ressources requises pour un test. Les coureurs de test utilisent ensuite leresource.json
pour fournir un pool de périphériques de ressources dotés des fonctionnalités requises. Assurez-vous de fournir ces informations aux utilisateurs qui exécuteront les suites de tests que vous écrivez.
Les coureurs de tests peuvent fournir ces informations via le modèle suivant.resource.json
situé dans le fichier
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>
", } } ] } ]
Tous les champs qui contiennent des valeurs sont requis, comme indiqué ici :
id
-
ID alphanumérique défini par l'utilisateur qui identifie de façon unique un ensemble d'appareils appelé un groupe d'appareils. Le matériel doit être identique pour les appareils d'un même groupe. Lorsque vous exécutez une suite de tests, les appareils du groupe sont utilisés pour paralléliser la charge de travail. Plusieurs appareils sont utilisés pour exécuter différents tests.
features
-
Facultatif. Un tableau contenant les fonctions prises en charge de l'appareil. Les informations requises dans ce champ sont définies dans lefichiers test.jsondans la suite de tests et détermine quels tests exécuter et comment exécuter ces tests. Si la suite de tests ne nécessite aucune fonctionnalité, ce champ n'est pas obligatoire.
features.name
-
Nom de la fonction.
features.version
-
La version des fonctionnalités.
features.jobSlots
-
Paramètre pour indiquer le nombre de tests pouvant utiliser simultanément l'appareil. La valeur par défaut est
1
.
devices
-
Un ensemble d'appareils dans le pool à tester. Au moins un appareil est requis.
devices.id
-
Un identificateur unique défini par l'utilisateur pour l'appareil testé.
connectivity.protocol
-
Le protocole de communication utilisé pour communiquer avec cet appareil. Chaque appareil d'un pool doit utiliser le même protocole.
Actuellement, les seules valeurs prises en charge sont.
ssh
etuart
pour les appareils physiques, etdocker
pour conteneurs Docker. connectivity.ip
-
L'adresse IP de l'appareil testé.
Cette propriété s'applique uniquement si
connectivity.protocol
est défini surssh
. connectivity.port
-
Facultatif. Numéro de port à utiliser pour les connexions SSH.
La valeur par défaut est 22.
Cette propriété s'applique uniquement si
connectivity.protocol
est défini surssh
. connectivity.auth
-
Informations d'authentification pour la connexion.
Cette propriété s'applique uniquement si
connectivity.protocol
est défini surssh
.connectivity.auth.method
-
Méthode d'authentification utilisée pour accéder à un appareil sur le protocole de connectivité donné.
Les valeurs prises en charge sont :
-
pki
-
password
-
connectivity.auth.credentials
-
Informations d'identification utilisées pour l'authentification.
connectivity.auth.credentials.password
-
Mot de passe utilisé pour se connecter à l'appareil à tester.
Cette valeur s'applique uniquement si
connectivity.auth.method
est défini surpassword
. connectivity.auth.credentials.privKeyPath
-
Chemin complet de la clé privée utilisée pour se connecter à l'appareil testé.
Cette valeur s'applique uniquement si
connectivity.auth.method
est défini surpki
. connectivity.auth.credentials.user
-
Nom d'utilisateur pour la connexion à l'appareil testé.
connectivity.serialPort
-
Facultatif. Port série auquel l'appareil est connecté.
Cette propriété s'applique uniquement si
connectivity.protocol
est défini suruart
. connectivity.containerId
-
ID de conteneur ou nom du conteneur Docker en cours de test.
Cette propriété s'applique uniquement si
connectivity.protocol
est défini surdocker
. connectivity.containerUser
-
Facultatif. Nom de l'utilisateur à l'utilisateur à l'intérieur du conteneur. La valeur par défaut est celle fournie par l'utilisateur dans Dockerfile.
La valeur par défaut est 22.
Cette propriété s'applique uniquement si
connectivity.protocol
est défini surdocker
.
(Facultatif) Configuration de config.json
Leconfig.json
contient des informations de configuration pour IDT. En règle générale, les exécuteurs de tests n'auront pas besoin de modifier ce fichier, sauf pour fournir leurAWSinformations d'identification utilisateur pour IDT, et éventuellement, unAWSrégion. SiAWSles informations d'identification avec les autorisations requises sont fourniesAWS IoTDevice Tester collecte et soumet des mesures d'utilisation àAWS. Il s'agit d'une fonctionnalité d'option facultative utilisée pour améliorer la fonctionnalité IDT. Pour plus d'informations, consultez Métriques d'utilisation IDT.
Les coureurs de test peuvent configurer leurAWSinformations d'identification de l'une des manières suivantes :
-
Fichier d'informations d'identification.
IDT utilise le même fichier d'informations d'identification que l'AWS CLI. Pour de plus amples informations, veuillez consulter Fichiers de configuration et d'informations d'identification.
L'emplacement du fichier d'informations d'identification varie en fonction du système d'exploitation que vous utilisez :
-
macOS, Linux :
~/.aws/credentials
-
Windows:
C:\Users\
UserName
\.aws\credentials
-
-
Variables d'environnement
Les variables d'environnement sont des variables gérées par le système d'exploitation et utilisées par les commandes du système. Les variables définies pendant une session SSH ne sont pas disponibles après la fermeture de cette session. IDT peut utiliser le
AWS_ACCESS_KEY_ID
etAWS_SECRET_ACCESS_KEY
variables d'environnement à stockerAWSinformations d'identificationPour définir ces variables sous Linux, macOS ou Unix, utilisez export:
export AWS_ACCESS_KEY_ID=
<your_access_key_id>
export AWS_SECRET_ACCESS_KEY=<your_secret_access_key>
Pour définir ces variables sous Windows, utilisez set :
set AWS_ACCESS_KEY_ID=
<your_access_key_id>
set AWS_SECRET_ACCESS_KEY=<your_secret_access_key>
Pour configurerAWSinformations d'identification pour IDT, les coureurs de test modifient leauth
dans la sectionconfig.json
situé dans le fichier
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>
" } } } ]
Tous les champs qui contiennent des valeurs sont requis, comme indiqué ici :
Note
Tous les chemins d'accès de ce fichier sont définis par rapport au<device-tester-extract-location>
.
log.location
-
Chemin d'accès au dossier de journaux dans le
<device-tester-extract-location>
. configFiles.root
-
Chemin d'accès au dossier contenant les fichiers de configuration.
configFiles.device
-
Chemin vers la
device.json
dans le fichier. testPath
-
Chemin d'accès au dossier contenant des suites de tests.
reportPath
-
Chemin d'accès au dossier qui contiendra les résultats des tests après l'exécution d'une suite de tests par IDT.
awsRegion
-
Facultatif. LeAWSrégion que les suites de tests utiliseront. Si elle n'est pas définie, les suites de tests utiliseront la région par défaut spécifiée dans chaque suite de tests.
auth.method
-
La méthode utilisée par IDT pour récupérerAWSInformations d'identification . Les valeurs prises en charge sont
file
pour récupérer les informations d'identification depuis un fichier d'informations d'identification, etenvironment
pour récupérer les informations d'identification à l'aide de variables d'environnement. auth.credentials.profile
-
Profil d'informations d'identification à utiliser depuis le fichier d'informations d'identification. Cette propriété s'applique uniquement si
auth.method
est défini surfile
.