Configuration des paramètres pour les coureurs de tests - AWS IoT Greengrass

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<device-tester-extract-location>/configs/folder. Si nécessaire, les coureurs d'essai doivent également configurerAWSinformations d'identification qu'IDT utilisera pour se connecter auAWScloud.

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.jsoncontient 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.jsonsitué dans le fichier<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>", } } ] } ]

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 ledevice.jsondans 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.featuresou à partir de la requêtecontexte de machine d'étatavec lepool.featuresrequê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.sshetuartpour les appareils physiques, etdockerpour conteneurs Docker.

connectivity.ip

L'adresse IP de l'appareil testé.

Cette propriété s'applique uniquement si connectivity.protocol est défini sur ssh.

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 sur ssh.

connectivity.auth

Informations d'authentification pour la connexion.

Cette propriété s'applique uniquement si connectivity.protocol est défini sur ssh.

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 sur password.

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 sur pki.

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 sur uart.

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 sur docker.

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 sur docker.

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érerpool.Devices[0].Connectivity.Protocoldepuis 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.jsoncontient toutes les informations supplémentaires requises par une suite de tests, mais qui ne sont pas spécifiées dans ledevice.jsondans 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.jsoncontient 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.jsonpour 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.jsonsitué dans le fichier<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>", } } ] } ]

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.sshetuartpour les appareils physiques, etdockerpour conteneurs Docker.

connectivity.ip

L'adresse IP de l'appareil testé.

Cette propriété s'applique uniquement si connectivity.protocol est défini sur ssh.

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 sur ssh.

connectivity.auth

Informations d'authentification pour la connexion.

Cette propriété s'applique uniquement si connectivity.protocol est défini sur ssh.

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 sur password.

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 sur pki.

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 sur uart.

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 sur docker.

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 sur docker.

(Facultatif) Configuration de config.json

Leconfig.jsoncontient 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 leAWS_ACCESS_KEY_IDetAWS_SECRET_ACCESS_KEYvariables d'environnement à stockerAWSinformations d'identification

    Pour 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 leauthdans la sectionconfig.jsonsitué dans le fichier<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>" } } } ]

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 ladevice.jsondans 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 sontfilepour récupérer les informations d'identification depuis un fichier d'informations d'identification, etenvironmentpour 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 sur file.