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.
Configurez les paramètres IDT pour exécuter leAWS IoT Greengrasssuite de qualification
Avant d'exécuter des tests, vous devez configurer les paramètres pourAWSinformations d'identification et appareils sur votre ordinateur hôte.
Configuration de vos informations d'identification pour l'AWS
Vous devez configurer les informations d'identification utilisateur IAM dans le fichier
dans le fichier. Utilisez les informations d'identification pour l'IDT pour l'utilisateur AWS IoT Greengrass créé dans Créez et configurez un Compte AWS. Vous pouvez spécifier vos informations d'identification de deux manières :<device-tester-extract-location>
/configs/config.json
-
Fichier d'informations d'identification.
-
Variables d’environnement
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
Ajoutez votreAWSInformations d'identification pour le kitcredentials
fichier au format suivant :
[default] aws_access_key_id =
<your_access_key_id>
aws_secret_access_key =<your_secret_access_key>
Pour configurer IDT pourAWS IoT Greengrassà utiliserAWSInformations d'identification de votre fichiercredentials
, modifiez votre fichierconfig.json
fichier comme suit :
{ "awsRegion": "us-west-2", "auth": { "method": "file", "credentials": { "profile": "default" } } }
Note
Si vous n'utilisez pas le kitdefault
AWSassurez-vous de changer le nom du profil dans votre profilconfig.json
dans le fichier. Pour de plus amples informations, veuillez consulter Profils nommés.
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. Elles ne sont pas enregistrées si vous fermez la session SSH. IDT pourAWS IoT Greengrasspeut utiliser le kitAWS_ACCESS_KEY_ID
etAWS_SECRET_ACCESS_KEY
variables d'environnement pour stocker votreAWSInformations 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 configurer l'IDT afin que l'outil utilise les variables d'environnement, modifiez la section auth
dans votre fichier config.json
. Voici un exemple :
{ "awsRegion": "us-west-2", "auth": { "method": "environment" } }
Configurer device.json
Outre le kitAWSInformations d'identification, IDT pourAWS IoT Greengrassa besoin d'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).
Vous pouvez fournir ces informations à l'aide du modèle device.json
situé dans
:
<device_tester_extract_location>
/configs/device.json
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. La référence est utilisée pour effectuer le suivi des cartes qualifiées.
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
-
Un tableau contenant les fonctions prises en charge de l'appareil. Toutes les fonctionnalités sont requises.
os
etarch
-
Combinaisons d'architecture et de systèmes d'exploitation (OS) prises en charge :
-
linux
,x86_64
-
linux
,armv6l
-
linux
,armv7l
-
linux
,aarch64
-
ubuntu
,x86_64
-
openwrt
,armv7l
-
openwrt
,aarch64
Note
Si vous utilisez IDT pour testerAWS IoT Greengrasss'exécutant dans un conteneur Docker, seule l'architecture Docker x86_64 est prise en charge.
-
container
-
Valide que l'appareil répond à toutes les exigences logicielles et matérielles requises pour exécuter des fonctions Lambda en mode conteneur sur un noyau Greengrass.
La valeur valide est
yes
ouno
. docker
-
Valide que l'appareil répond à toutes les dépendances techniques requises pour pouvoir utiliser le connecteur de déploiement d'application Greengrass Docker pour exécuter des conteneurs.
La valeur valide est
yes
ouno
. streamManagement
-
Valide que l'appareil est conforme à toutes les dépendances techniques requises pour pouvoir exécuter le gestionnaire de flux AWS IoT Greengrass.
La valeur valide est
yes
ouno
. hsi
-
Vérifie que la bibliothèque partagée HSI fournie peut interagir avec le module de sécurité matérielle (HSM) et qu'elle implémente correctement les API PKCS # 11 requises. La bibliothèque partagée/HSM doit signer une CSR, effectuer des opérations TLS et fournir les longueurs de clé et l'algorithme de clé publique corrects.
La valeur valide est
yes
ouno
. ml
-
Valide que l'appareil est conforme à toutes les dépendances techniques requises pour pouvoir exécuter une inférence ML localement.
La valeur valide peut être une combinaison quelconque de
mxnet
,tensorflow
,dlr
, etno
(par exemple,mxnet
,mxnet,tensorflow
,mxnet,tensorflow,dlr
, ouno
). mlLambdaContainerizationMode
-
Valide que l'appareil est conforme à toutes les dépendances techniques requises pour pouvoir exécuter une inférence ML en mode conteneur sur un appareil Greengrass.
La valeur valide est
container
,process
, ouboth
. processor
-
Valide que l'appareil répond à toutes les exigences matérielles requises pour le type de processeur spécifié.
La valeur valide est
cpu
ougpu
.
Note
Si vous ne souhaitez pas utiliser la stratégie
container
,docker
,streamManager
,hsi
, ouml
, vous pouvez définir la fonction correspondantevalue
pourno
.Docker prend uniquement en charge la qualification des fonctionnalités pour
streamManagement
etml
. machineLearning
-
Facultatif. Informations de configuration pour les tests de qualification ML. Pour plus d'informations, consultez Configurer device.json pour la qualification ML.
hsm
-
Facultatif. Informations de configuration pour les tests avec un module de sécurité matérielle (HSM) AWS IoT Greengrass. Sinon, la propriété
hsm
doit être omise. Pour plus d'informations, consultez Intégration de sécurité matérielle.Cette propriété s'applique uniquement si
connectivity.protocol
est défini surssh
.hsm.p11Provider
-
Chemin absolu vers la bibliothèque libdl-loadable d'implémentation PKCS # 11.
hsm.slotLabel
-
Étiquette d'emplacement utilisée pour identifier le module matériel.
hsm.slotUserPin
-
PIN de l'utilisateur utilisé pour authentifier le fichierAWS IoT Greengrassau cœur du module.
hsm.privateKeyLabel
-
Étiquette utilisée pour identifier la clé dans le module matériel.
hsm.openSSLEngine
-
Chemin d'accès absolu au fichier
.so
du moteur OpenSSL qui active la prise en charge PKCS # 11 sur OpenSSL. C'est l'approche utilisée par l'agent des mises à jour OTA AWS IoT Greengrass.
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. Actuellement, les seules valeurs prises en charge concernent
ssh
pour les appareils physiques etdocker
pour les 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.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.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.auth.credentials.privKeyPath
-
Chemin complet à la clé privée utilisée pour se connecter à l'appareil testé.
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
a la valeurssh
. greengrassLocation
-
Emplacement du logiciel AWS IoT Greengrass Core sur vos appareils.
Pour les appareils physiques, cette valeur est utilisée uniquement lorsque vous utilisez une installation de AWS IoT Greengrass. Utilisez cet attribut pour indiquer à IDT qu'il doit utiliser le logiciel AWS IoT Greengrass Core installé sur vos appareils.
Lorsque vous exécutez des tests dans un conteneur Docker à partir de l'image Docker ou de Dockerfile fourni par AWS IoT Greengrass, définissez cette valeur sur
/greengrass
. kernelConfigLocation
-
Facultatif. Chemin d'accès au fichier de configuration du noyau.AWS IoT Device Tester utilise ce fichier pour vérifier si les fonctions de noyau requises sont activées sur les appareils. S'il n'est pas spécifié, IDT utilise les chemins suivants pour rechercher le fichier de configuration du noyau :
/proc/config.gz
et/boot/config-
.AWS IoT Device Tester utilise le premier chemin qu'il trouve.<kernel-version>
Configurer device.json pour la qualification ML
Cette section décrit les propriétés facultatives du fichier de configuration d'appareil qui s'appliquent à la qualification ML. Si vous prévoyez d'exécuter des tests pour la qualification ML, vous devez définir les propriétés qui s'appliquent à votre cas d'utilisation.
Vous pouvez utiliser le modèle device-ml.json
pour définir les paramètres de configuration de votre appareil. Ce modèle contient les propriétés ML facultatives. Vous pouvez également utiliser device.json
et ajouter les propriétés de qualification ML. Ces fichiers se trouvent dans
et incluent les propriétés de qualification ML. Si vous utilisez <device-tester-extract-location>
/configsdevice-ml.json
, vous devez renommer le fichier device.json
avant d'exécuter des tests IDT.
Pour de plus amples informations sur les propriétés de configuration d'appareil qui ne s'appliquent pas à la qualification ML, veuillez consulter Configurer device.json.
ml
dans le tableaufeatures
-
Les frameworks ML que votre carte prend en charge. Cette propriété nécessite IDT v3.1.0 ou version ultérieure.
-
Si votre carte ne prend en charge qu'un seul framework, spécifiez le framework. Par exemple :
{ "name": "ml", "value": "mxnet" }
-
Si votre carte prend en charge plusieurs frameworks, spécifiez les frameworks sous la forme d'une liste séparée par des virgules. Par exemple :
{ "name": "ml", "value": "mxnet,tensorflow" }
-
mlLambdaContainerizationMode
dans le tableaufeatures
-
Mode de conteneurisation que vous souhaitez utiliser pour le test. Cette propriété nécessite IDT v3.1.0 ou version ultérieure.
-
Choisissez
process
pour exécuter le code d'inférence ML avec une fonction Lambda non conteneurisée. Cette option nécessite AWS IoT Greengrass v1.10.x ou version ultérieure. -
Choisissez
container
pour exécuter le code d'inférence ML avec une fonction Lambda conteneurisée. -
Choisissez
both
pour exécuter le code d'inférence ML avec les deux modes. Cette option nécessite AWS IoT Greengrass v1.10.x ou version ultérieure.
-
processor
dans le tableaufeatures
-
Indique l'accélérateur matériel pris en charge par votre carte. Cette propriété nécessite IDT v3.1.0 ou version ultérieure.
-
Choisissez
cpu
si votre carte utilise un processeur de type CPU. -
Choisissez
gpu
si votre carte utilise un processeur de type GPU.
-
machineLearning
-
Facultatif. Informations de configuration pour les tests de qualification ML. Cette propriété nécessite IDT v3.1.0 ou version ultérieure.
dlrModelPath
-
Requis pour utiliser le framework
dlr
. Chemin absolu vers le répertoire de votre modèle compilé DLR, qui doit être nomméresnet18
. Pour plus d'informations, consultez Compilation du modèle DLR.Note
Voici un exemple de chemin d'accès sur macOS :
/Users/
.<user>
/Downloads/resnet18 environmentVariables
-
Tableau de paires clé-valeur qui peuvent transmettre dynamiquement des paramètres aux tests d'inférence ML. Facultatif pour les appareils avec processeur de type CPU. Vous pouvez utiliser cette section pour ajouter des variables d'environnement spécifiques au framework requises par votre type d'appareil. Pour de plus amples informations sur ces exigences, veuillez consulter le site Web officiel du framework ou de l'appareil. Par exemple, pour exécuter des tests d'inférence MxNet sur certains appareils, les variables d'environnement suivantes peuvent être requises.
"environmentVariables": [ ... { "key": "PYTHONPATH", "value": "$MXNET_HOME/python:$PYTHONPATH" }, { "key": "MXNET_HOME", "value": "$HOME/mxnet/" }, ... ]
Note
Le champ
value
peut varier en fonction de votre installation MxNet.Si vous testez des fonctions Lambda exécutées avecconteneurisationSur les appareils GPU, ajoutez des variables d'environnement pour la bibliothèque GPU. Cela permet au GPU d'effectuer des calculs. Pour utiliser des bibliothèques GPU différentes, veuillez consulter la documentation officielle de la bibliothèque ou de l'appareil.
Note
Configurez les clés suivantes si la fonction
mlLambdaContainerizationMode
est définie surcontainer
ouboth
."environmentVariables": [ { "key": "PATH", "value": "
<path/to/software/bin>
:$PATH" }, { "key": "LD_LIBRARY_PATH", "value": "<path/to/ld/lib>
" }, ... ] deviceResources
-
Requis par les appareils GPU. Contientressources localesaccessibles par les fonctions Lambda. Utilisez cette section pour ajouter des ressources d'appareil et de volume locales.
-
Pour les ressources d'appareil, spécifiez
"type": "device"
. Pour les appareils GPU, les ressources d'appareil doivent être des fichiers d'appareil liés au GPU sous/dev
.Note
Le répertoire
/dev/shm
est une exception. Il peut être configuré en tant que ressource de volume uniquement. -
Pour les ressources de volume, spécifiez
"type": "volume"
.
-