

Avis de fin de support : le 7 octobre 2026, AWS le support de. AWS IoT Greengrass Version 1 Après le 7 octobre 2026, vous ne pourrez plus accéder aux AWS IoT Greengrass V1 ressources. Pour plus d'informations, rendez-vous sur [Migrer depuis AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html).

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.

# Configurer les paramètres IDT pour exécuter la suite de AWS IoT Greengrass qualification
<a name="set-config"></a>

Avant d'exécuter les tests, vous devez configurer les paramètres des AWS informations d'identification et des périphériques sur votre ordinateur hôte.

## Configurez vos AWS informations d'identification
<a name="cfg-aws-gg"></a>

Vous devez configurer vos informations d'identification d'utilisateur IAM dans le `<device-tester-extract-location> /configs/config.json` fichier. Utilisez les informations d'identification de l'IDT pour AWS IoT Greengrass l'utilisateur créé dans[Créez et configurez un Compte AWS](dev-tst-prereqs.md#config-aws-account-for-idt). Vous pouvez spécifier vos informations d'identification de deux manières :
+ Fichier d’informations d’identification
+ Variables d’environnement

### Configurer les AWS informations d'identification avec un fichier d'informations d'identification
<a name="config-cred-file"></a>

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](https://docs.aws.amazon.com/cli/latest/userguide/cli-config-files.html).

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 vos AWS informations d'identification au `credentials` fichier au format suivant :

```
[default]
aws_access_key_id = <your_access_key_id>
aws_secret_access_key = <your_secret_access_key>
```

Pour configurer IDT AWS IoT Greengrass afin d'utiliser les AWS informations d'identification de votre `credentials` fichier, modifiez votre `config.json` fichier comme suit :

```
{
	"awsRegion": "us-west-2",
	"auth": {
		"method": "file",
		"credentials": {
			"profile": "default"
		}
	}
}
```

**Note**  
Si vous n'utilisez pas le `default` AWS profil, veillez à modifier le nom du profil dans votre `config.json` fichier. Pour de plus amples informations, veuillez consulter [Profils nommés](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html).

### Configurer les AWS informations d'identification avec des variables d'environnement
<a name="config-env-vars"></a>

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 for AWS IoT Greengrass peut utiliser les variables d'`AWS_SECRET_ACCESS_KEY`environnement `AWS_ACCESS_KEY_ID` et pour stocker vos AWS informations 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
<a name="device-config"></a>

Outre les AWS informations d'identification, IDT for AWS IoT Greengrass a besoin d'informations sur les appareils sur lesquels les tests sont exécutés (par exemple, adresse IP, informations de connexion, système d'exploitation et architecture du processeur).

Vous pouvez fournir ces informations à l'aide du modèle `device.json` situé dans ` <device_tester_extract_location>/configs/device.json` :

------
#### [ Physical device ]

```
[
  {
    "id": "<pool-id>",
    "sku": "<sku>",
    "features": [
      {
        "name": "os",
        "value": "linux | ubuntu | openwrt"
      },
      {
        "name": "arch",
        "value": "x86_64 | armv6l | armv7l | aarch64"
      },
      {
        "name": "container",
        "value": "yes | no"
      },
      {
        "name": "docker",
        "value": "yes | no"
      },
      {
        "name": "streamManagement",
        "value": "yes | no"
      },
      {
        "name": "hsi",
        "value": "yes | no"
      },
      {
        "name": "ml",
        "value": "mxnet | tensorflow | dlr | mxnet,dlr,tensorflow | no"
      },
      *********** Remove the section below if the device is not qualifying for ML **************,
      {
        "name": "mlLambdaContainerizationMode",
        "value": "container | process | both"
      },
      {
        "name": "processor",
        "value": "cpu | gpu"
      },
      ******************************************************************************************
    ],
    *********** Remove the section below if the device is not qualifying for HSI ***************
    "hsm": {
      "p11Provider": "/path/to/pkcs11ProviderLibrary",
      "slotLabel": "<slot_label>",
      "slotUserPin": "<slot_pin>",
      "privateKeyLabel": "<key_label>",
      "openSSLEngine": "/path/to/openssl/engine"
    },
    ********************************************************************************************
    *********** Remove the section below if the device is not qualifying for ML ****************
    "machineLearning": {
      "dlrModelPath": "/path/to/compiled/dlr/model",
      "environmentVariables": [
        {
          "key": "<environment-variable-name>",
          "value": "<Path:$PATH>"
        }
      ],
      "deviceResources": [
        {
          "name": "<resource-name>",
          "path": "<resource-path>",
          "type": "device | volume"
        }
      ]
    },
    ******************************************************************************************
    "kernelConfigLocation": "",
    "greengrassLocation": "",
    "devices": [
      {
        "id": "<device-id>",
        "connectivity": {
          "protocol": "ssh",
          "ip": "<ip-address>",
          "port": 22,
          "auth": {
            "method": "pki | password",
            "credentials": {
              "user": "<user-name>",
              "privKeyPath": "/path/to/private/key",
              "password": "<password>"
            }
          }
        }
      }
    ]
  }
]
```

**Note**  
Spécifiez `privKeyPath` uniquement si `method` est défini sur `pki`.  
Spécifiez `password` uniquement si `method` est défini sur `password`.

------
#### [ Docker container ]

```
[
  {
    "id": "<pool-id>",
    "sku": "<sku>",
    "features": [
      {
        "name": "os",
        "value": "linux | ubuntu | openwrt"
      },
      {
        "name": "arch",
        "value": "x86_64"
      },
      {
        "name": "container",
        "value": "no"
      },
      {
        "name": "docker",
        "value": "no"
      },
      {
        "name": "streamManagement",
        "value": "yes | no"
      },
      {
        "name": "hsi",
        "value": "no"
      },
      {
        "name": "ml",
        "value": "mxnet | tensorflow | dlr | mxnet,dlr,tensorflow | no"
      },
      *********** Remove the section below if the device is not qualifying for ML **************,
      {
        "name": "mlLambdaContainerizationMode",
        "value": "process"
      },
      {
        "name": "processor",
        "value": "cpu | gpu"
      },
      ******************************************************************************************
    ],
    *********** Remove the section below if the device is not qualifying for ML ****************
    "machineLearning": {
      "dlrModelPath": "/path/to/compiled/dlr/model",
      "environmentVariables": [
        {
          "key": "<environment-variable-name>",
          "value": "<Path:$PATH>"
        }
      ],
      "deviceResources": [
        {
          "name": "<resource-name>",
          "path": "<resource-path>",
          "type": "device | volume"
        }
      ]
    },
    ******************************************************************************************
    "kernelConfigLocation": "",
    "greengrassLocation": "",
    "devices": [
      {
        "id": "<device-id>",
        "connectivity": {
          "protocol": "docker",
          "containerId": "<container-name | container-id>",
          "containerUser": "<user>"
        }
      }
    ]
  }
]
```

------

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.  
Si vous souhaitez mettre votre carte en vente dans le catalogue des AWS Partner appareils, le SKU que vous spécifiez ici doit correspondre au SKU que vous avez utilisé lors du processus de mise en vente.

`features`  
Un tableau contenant les fonctions prises en charge de l'appareil. Toutes les fonctionnalités sont requises.    
`os` et `arch`  
  
Combinaisons de systèmes d'exploitation (OS) et d'architectures prises en charge :  
+ `linux`, `x86_64`
+ `linux`, `armv6l`
+ `linux`, `armv7l`
+ `linux`, `aarch64`
+ `ubuntu`, `x86_64`
+ `openwrt`, `armv7l`
+ `openwrt`, `aarch64`
Si vous utilisez IDT pour tester l' AWS IoT Greengrass exécution dans un conteneur Docker, seule l'architecture Docker x86\$164 est prise en charge.  
`container`  
<a name="description-container"></a>Vérifie que l'appareil répond à toutes les exigences logicielles et matérielles pour exécuter les fonctions Lambda en mode conteneur sur un cœur Greengrass.  
La valeur valide est `yes` ou`no`.  
`docker`  
<a name="description-docker"></a>Vérifie que l'appareil répond à toutes les dépendances techniques requises pour utiliser le connecteur de déploiement d'applications Greengrass Docker pour exécuter des conteneurs  
La valeur valide est `yes` ou`no`.  
`streamManagement`  
<a name="description-sm"></a>Vérifie que l'appareil répond à toutes les dépendances techniques requises pour exécuter le gestionnaire de AWS IoT Greengrass flux.  
La valeur valide est `yes` ou`no`.  
`hsi`  
<a name="description-hsi"></a>Vérifie que la bibliothèque partagée HSI fournie peut s'interfacer avec le module de sécurité matériel (HSM) et implémente correctement le PKCS \$111 requis. APIs 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` ou`no`.  
`ml`  
<a name="description-ml"></a>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 n'importe quelle combinaison de `mxnet` `tensorflow``dlr`,, et `no` (par exemple`mxnet`,`mxnet,tensorflow`,`mxnet,tensorflow,dlr`, ou`no`).  
`mlLambdaContainerizationMode`  
Valide que l'appareil répond à toutes les dépendances techniques requises pour effectuer une inférence ML en mode conteneur sur un appareil Greengrass.  
La valeur valide est `container``process`, ou`both`.  
`processor`  
Vérifie que le périphérique répond à toutes les exigences matérielles pour le type de processeur spécifié.  
La valeur valide est `cpu` ou`gpu`.
Si vous ne souhaitez pas utiliser la `ml` fonctionnalité`container`,`docker`, ou `streamManager``hsi`, ou, vous pouvez définir la fonction correspondante `value` sur`no`.  
Docker ne prend en charge que la qualification des fonctionnalités pour `streamManagement` et. `ml`

`machineLearning`  
Facultatif. Informations de configuration pour les tests de qualification ML. Pour de plus amples informations, veuillez consulter [Configurer device.json pour la qualification ML](#device-json-ml-qualification).

`hsm`  
Facultatif. Informations de configuration pour les tests avec un module de sécurité AWS IoT Greengrass matériel (HSM). Sinon, la propriété `hsm` doit être omise. Pour de plus amples informations, veuillez consulter [Intégration de sécurité matérielle](hardware-security.md).  
<a name="connectivity-protocol-ssh-only"></a>Cette propriété s'applique uniquement si `connectivity.protocol` est défini sur `ssh`.    
`hsm.p11Provider`  
Chemin absolu vers la bibliothèque libdl-loadable d'implémentation PKCS \$1 11.  
`hsm.slotLabel`  
Étiquette d'emplacement utilisée pour identifier le module matériel.  
`hsm.slotUserPin`  
Le code PIN utilisateur utilisé pour authentifier le AWS IoT Greengrass noyau auprès 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 \$1 11 sur OpenSSL. Utilisé par l'agent de mise à jour AWS IoT Greengrass OTA.

`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 et `docker` pour les conteneurs Docker.

`connectivity.ip`  
L'adresse IP de l'appareil testé.  
<a name="connectivity-protocol-ssh-only"></a>Cette propriété s'applique uniquement si `connectivity.protocol` est défini sur `ssh`.

`connectivity.containerId`  
ID de conteneur ou nom du conteneur Docker en cours de test.  
<a name="connectivity-protocol-docker-only"></a>Cette propriété s'applique uniquement si `connectivity.protocol` est défini sur `docker`.

`connectivity.auth`  
Informations d'authentification pour la connexion.  
<a name="connectivity-protocol-ssh-only"></a>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.auth.credentials.privKeyPath`  
Chemin complet à la clé privée utilisée pour se connecter à l'appareil testé.

`connectivity.port`  
Facultatif. Le numéro de port à utiliser pour les connexions SSH.  
La valeur par défaut est 22.  
Cette propriété ne s'applique que si elle `connectivity.protocol` est définie sur`ssh`.

`greengrassLocation`  
L'emplacement du logiciel AWS IoT Greengrass Core sur vos appareils.  
Pour les appareils physiques, cette valeur n'est utilisée que lorsque vous utilisez une installation existante 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 d'une image Docker ou d'un Dockerfile fourni par AWS IoT Greengrass, définissez cette valeur sur. `/greengrass`

`kernelConfigLocation`  
Facultatif. Le chemin d'accès au fichier de configuration du noyau. AWS IoT Device Tester utilise ce fichier pour vérifier si les fonctionnalités du noyau requises sont activées sur les périphériques. 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-<kernel-version>`. AWS IoT Device Tester utilise le premier chemin qu'il trouve.

## Configurer device.json pour la qualification ML
<a name="device-json-ml-qualification"></a>

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 `<device-tester-extract-location>/configs` et incluent les propriétés de qualification ML. Si vous utilisez `device-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](#device-config).

 

`ml` dans le tableau `features`  
Les frameworks ML que votre carte prend en charge. <a name="idt-version-ml-qualification"></a>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 tableau `features`  
[Mode de conteneurisation](lambda-group-config.md#lambda-containerization-considerations) que vous souhaitez utiliser pour le test. <a name="idt-version-ml-qualification"></a>Cette propriété nécessite IDT v3.1.0 ou version ultérieure.  
+ Choisissez `process` d'exécuter le code d'inférence ML avec une fonction Lambda non conteneurisée. Cette option nécessite la AWS IoT Greengrass version v1.10.x ou ultérieure.
+ Choisissez `container` d'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 la AWS IoT Greengrass version v1.10.x ou ultérieure.

`processor` dans le tableau `features`  
Indique l'accélérateur matériel pris en charge par votre carte. <a name="idt-version-ml-qualification"></a>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. <a name="idt-version-ml-qualification"></a>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 de plus amples informations, veuillez consulter [Compilation du modèle DLR](idt-ml-qualification.md#ml-qualification-dlr-compile-model).  
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 MXNet d'inférence 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/"
    },
    ...
]
```
Le `value` champ peut varier en fonction de votre MXNet installation.
Si vous testez des fonctions Lambda qui s'exécutent avec la [conteneurisation](lambda-group-config.md#lambda-containerization-considerations) sur des périphériques 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.  
Configurez les clés suivantes si la fonction `mlLambdaContainerizationMode` est définie sur `container` ou `both`.

```
"environmentVariables": [
    {
        "key": "PATH",      
        "value": "<path/to/software/bin>:$PATH"    
    },
    {
        "key": "LD_LIBRARY_PATH",      
        "value": "<path/to/ld/lib>"    
    },
    ...
]
```  
`deviceResources`  
Requis par les appareils GPU. Contient des [ressources locales](access-local-resources.md#lra-resource-types) accessibles 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"`.