

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.

# Configurez votre appareil pour exécuter des tests IDT
<a name="device-config-setup"></a>

Pour configurer votre appareil, vous devez installer des AWS IoT Greengrass dépendances, configurer le logiciel AWS IoT Greengrass principal, configurer votre ordinateur hôte pour accéder à votre appareil et configurer les autorisations utilisateur sur votre appareil.

## Vérifiez AWS IoT Greengrass les dépendances sur l'appareil testé
<a name="install-gg-dependencies"></a>

Avant qu'IDT for AWS IoT Greengrass puisse tester vos appareils, assurez-vous que vous les avez configurés comme décrit dans la section [Mise en route avec AWS IoT Greengrass](https://docs.aws.amazon.com/greengrass/latest/developerguide/gg-gs.html). Pour de plus amples informations sur les plateformes prises en charge, veuillez consulter [Plateformes prises en charge](https://docs.aws.amazon.com/greengrass/latest/developerguide/what-is-gg.html#gg-platforms).

## Configuration du AWS IoT Greengrass logiciel
<a name="config-gg"></a>

IDT pour AWS IoT Greengrass tester la compatibilité de votre appareil avec une version spécifique de AWS IoT Greengrass. IDT propose deux options pour effectuer des tests AWS IoT Greengrass sur vos appareils :
+ Téléchargez et utilisez une version du [logiciel AWS IoT Greengrass Core](what-is-gg.md#gg-core-download-tab). IDT installe le logiciel pour vous.
+ Utilisez une version du logiciel AWS IoT Greengrass Core déjà installée sur votre appareil.

**Note**  
Chaque version de AWS IoT Greengrass possède une version IDT correspondante. Vous devez télécharger la version d'IDT qui correspond à la version que AWS IoT Greengrass vous utilisez.

Les sections suivantes décrivent ces options. Vous devez en choisir une seule.

### Option 1 : télécharger le logiciel AWS IoT Greengrass principal et configurer AWS IoT Device Tester pour l'utiliser
<a name="download-gg"></a>

Vous pouvez télécharger le logiciel AWS IoT Greengrass Core depuis la page de téléchargement du [logiciel AWS IoT Greengrass Core](what-is-gg.md#gg-core-download-tab). 

1. Identifiez l'architecture et la distribution Linux appropriées, puis choisissez **Download (Télécharger)**.

1. Copiez le fichier tar.gz dans `<device-tester-extract-location>/products/greengrass/ggc`.

**Note**  
Ne modifiez pas le nom du fichier AWS IoT Greengrass tar.gz. Ne placez pas plusieurs fichiers dans ce répertoire pour le même système d'exploitation et la même architecture. Par exemple, si les fichiers `greengrass-linux-armv7l-1.7.1.tar.gz` et `greengrass-linux-armv7l-1.8.1.tar.gz` figurent tous les deux dans ce répertoire, le test échoue.

### Option 2 : utiliser une installation existante de AWS IoT Greengrass avec AWS IoT Device Tester
<a name="existing-gg"></a>

Configurez IDT pour tester le logiciel AWS IoT Greengrass Core installé sur votre appareil en ajoutant l'`greengrassLocation`attribut au `device.json` fichier du `<device-tester-extract-location>/configs` dossier. Par exemple :

```
"greengrassLocation" : "<path-to-greengrass-on-device>"
```

Pour plus d'informations sur le fichier `device.json`, consultez [Configurer device.json](set-config.md#device-config).

Sur les appareils Linux, l'emplacement par défaut du logiciel AWS IoT Greengrass Core est`/greengrass`.

**Note**  
Le logiciel AWS IoT Greengrass Core doit être installé sur votre appareil mais celui-ci n'a pas encore été démarré.  
Vérifiez que vous avez ajouté l'utilisateur `ggc_user` et `ggc_group` sur votre appareil. Pour de plus amples informations, veuillez consulter [Configuration de l'environnement pour AWS IoT Greengrass](https://docs.aws.amazon.com/greengrass/latest/developerguide/module1.html).

## Configurer votre ordinateur hôte pour accéder à l'appareil testé
<a name="configure-host"></a>

IDT s'exécute sur votre ordinateur hôte et doit être en mesure d'utiliser SSH pour se connecter à votre appareil. Il existe deux options pour permettre à IDT d'obtenir un accès SSH à vos appareils testés :

1. Suivez les instructions indiquées ici pour créer une paire de clés SSH et autoriser votre clé à se connecter à votre appareil testé sans spécifier de mot de passe.

1. Fournissez un nom d'utilisateur et un mot de passe pour chaque appareil du fichier `device.json`. Pour de plus amples informations, veuillez consulter [Configurer device.json](set-config.md#device-config).

Vous pouvez utiliser n'importe quelle implémentation SSL pour créer une clé SSH. Les instructions suivantes vous montrent comment utiliser [SSH-KEYGEN](https://www.ssh.com/ssh/keygen/) ou [Pu TTYgen](https://www.ssh.com/ssh/putty/windows/puttygen) (pour Windows). Si vous utilisez une autre implémentation SSL, veuillez vous reporter à la documentation correspondante.

IDT utilise les clés SSH pour s'authentifier avec votre appareil testé. 

**Pour créer une clé SSH avec SSH-KEYGEN**

1. Créez une clé SSH.

   Vous pouvez utiliser la commande **ssh-keygen** Open SSH pour créer une paire de clés SSH. Si vous disposez déjà d'une paire de clés SSH sur votre ordinateur hôte, la bonne pratique consiste à créer une paire de clés SSH spécifique pour IDT. Ainsi, une fois que vous avez terminé le test, votre ordinateur hôte ne peut plus se connecter à votre appareil sans saisir de mot de passe. Cela vous permet également de restreindre l'accès à l'appareil à distance aux seules personnes qui en ont besoin.
**Note**  
Windows n'a pas de client SSH installé. Pour plus d'informations sur l'installation d'un client SSH sous Windows, consultez [Download SSH Client Software](https://www.ssh.com/ssh/#sec-Download-client-software).

   La commande **ssh-keygen** vous invite à indiquer un nom et un chemin d'accès pour stocker la paire de clés. Par défaut, les fichiers de la paire de clés sont nommés `id_rsa` (clé privée) et `id_rsa.pub` (clé publique). Sur Mac OS et Linux, l'emplacement par défaut de ces fichiers est `~/.ssh/`. Sur Windows, l'emplacement par défaut est `C:\Users\<user-name>\.ssh`.

   Lorsque vous y êtes invité, saisissez une expression clé pour protéger votre clé SSH. Pour de plus amples informations, veuillez consulter [Generate a New SSH key](https://www.ssh.com/ssh/keygen/).

1. Ajoutez des clés SSH autorisées à l'appareil testé.

   IDT doit utiliser votre clé SSH privée pour se connecter à l'appareil testé. Pour autoriser votre clé SSH privée à se connecter à l'appareil testé, utilisez la commande **ssh-copy-id** à partir de votre ordinateur hôte. Cette commande ajoute votre clé publique au fichier `~/.ssh/authorized_keys` sur l'appareil testé. Par exemple :

   **\$1 ssh-copy-id *<remote-ssh-user>*@*<remote-device-ip>***

   Où *remote-ssh-user* sont le nom d'utilisateur utilisé pour vous connecter à votre appareil testé et *remote-device-ip* l'adresse IP de l'appareil testé sur lequel effectuer les tests ? Par exemple :

   **ssh-copy-id pi@192.168.1.5**

   Lorsque vous y êtes invité, entrez le mot de passe du nom d'utilisateur que vous avez spécifié dans la commande **ssh-copy-id**.

   **ssh-copy-id** suppose que la clé publique est nommée `id_rsa.pub` et est stockée à l'emplacement par défaut (sur Mac OS et Linux, `~/.ssh/` et sur Windows, `C:\Users\<user-name>\.ssh`). Si vous avez donné à la clé publique un autre nom ou si vous l'avez stockée à un autre emplacement, vous devez spécifier le chemin d'accès qualifié complet de votre clé publique SSH à l'aide de l'option **-i** pour **ssh-copy-id** (par exemple, **ssh-copy-id -i \$1/my/path/myKey.pub**). Pour plus d'informations sur la création de clés SSH et la copie des clés publiques, consultez [SSH-COPY-ID](https://www.ssh.com/ssh/copy-id).

**Pour créer une clé SSH à l'aide de Pu TTYgen (Windows uniquement)**

1. Assurez-vous que le serveur et le client OpenSSH sont installés sur votre appareil testé. Pour plus d'informations, consultez [OpenSSH](https://www.openssh.com/).

1. Installez [Pu TTYgen](https://www.puttygen.com/) sur votre appareil en cours de test.

1. Ouvrez PuTTYgen.

1. Choisissez **Generate (Générer)** et déplacez le curseur de la souris dans la zone pour générer une clé privée.

1. Dans le menu **Conversions** choisissez **Export OpenSSH key**, et enregistrez la clé privée avec une extension de fichier `.pem`.

1. Ajoutez la clé publique au fichier `/home/<user>/.ssh/authorized_keys` sur l'appareil testé.

   1. Copiez le texte de la clé publique depuis la TTYgen fenêtre Pu.

   1. Utilisez PuTTY pour créer une session sur votre appareil testé.

      1. À partir d'une invite de commande ou d'une fenêtre Windows Powershell, exécutez la commande suivante :

         **C:/*<path-to-putty>*/putty.exe -ssh *<user>*@*<dut-ip-address>***

      1. Lorsque vous y êtes invité, entrez le mot de passe de votre appareil.

      1. Utilisez vi ou un autre éditeur de texte pour ajouter la clé publique au fichier `/home/<user>/.ssh/authorized_keys` sur votre appareil testé.

1. Mettez à jour votre fichier `device.json` avec votre nom d'utilisateur, l'adresse IP et le chemin d'accès au fichier de clé privée que vous venez d'enregistrer sur votre ordinateur hôte pour chaque appareil testé. Pour de plus amples informations, veuillez consulter [Configurer device.json](set-config.md#device-config). Assurez-vous de fournir le chemin d'accès complet et le nom de fichier à la clé privée et d'utiliser des barres obliques (« / »). Par exemple, pour le chemin Windows `C:\DT\privatekey.pem`, utilisez `C:/DT/privatekey.pem` dans le fichier `device.json`. 

## Configurer les autorisations utilisateur sur votre appareil
<a name="root-access"></a>

IDT effectue des opérations sur différents répertoires et fichiers d'un appareil testé. Certaines de ces opérations nécessitent des autorisations d'un niveau élevé (à l'aide de la commande **sudo**). Pour automatiser ces opérations, IDT for AWS IoT Greengrass doit être capable d'exécuter des commandes avec sudo sans qu'un mot de passe ne soit demandé.

Suivez ces étapes sur l'appareil testé afin d'autoriser l'accès sudo sans avoir à saisir un mot de passe. 

**Note**  
`username` fait référence à l'utilisateur SSH utilisé par IDT pour accéder à l'appareil testé.

**Pour ajouter l'utilisateur au groupe sudo**

1. Sur l'appareil testé, exécutez `sudo usermod -aG sudo <username>`

1. Déconnectez-vous, puis reconnectez-vous pour que les modifications entrent en vigueur.

1. Vérifiez que votre nom d'utilisateur a été correctement ajouté et exécutez **sudo echo test**. Si vous n'êtes pas invité à saisir un mot de passe, cela signifie que votre utilisateur est configuré correctement.

1. Ouvrez le fichier `/etc/sudoers`, puis ajoutez la ligne suivante à la fin du fichier :

   `<ssh-username> ALL=(ALL) NOPASSWD: ALL`

## Configurer votre appareil pour tester des fonctions facultatives
<a name="optional-feature-config"></a>

Les rubriques suivantes décrivent comment configurer vos appareils pour exécuter des tests IDT pour des fonctions facultatives. Suivez ces étapes de configuration uniquement si vous souhaitez tester ces fonctions. Dans le cas contraire, passez à [Configurer les paramètres IDT pour exécuter la suite de AWS IoT Greengrass qualification](set-config.md).

**Topics**
+ [Vérifiez AWS IoT Greengrass les dépendances sur l'appareil testé](#install-gg-dependencies)
+ [Configuration du AWS IoT Greengrass logiciel](#config-gg)
+ [Configurer votre ordinateur hôte pour accéder à l'appareil testé](#configure-host)
+ [Configurer les autorisations utilisateur sur votre appareil](#root-access)
+ [Configurer votre appareil pour tester des fonctions facultatives](#optional-feature-config)
+ [Facultatif : Configuration de votre conteneur Docker pour IDT pour AWS IoT Greengrass](docker-config-setup.md)
+ [Facultatif : Configuration de votre appareil pour la qualification ML](idt-ml-qualification.md)

# Facultatif : Configuration de votre conteneur Docker pour IDT pour AWS IoT Greengrass
<a name="docker-config-setup"></a>

AWS IoT Greengrass fournit une image Docker et un Dockerfile qui facilitent l'exécution du logiciel AWS IoT Greengrass Core dans un conteneur Docker. Après avoir configuré le AWS IoT Greengrass conteneur, vous pouvez exécuter des tests IDT. Actuellement, seules les architectures Docker x86\$164 sont prises en charge pour exécuter IDT pour AWS IoT Greengrass.

Cette fonctionnalité nécessite IDT v2.3.0 ou une version ultérieure.

Le processus de configuration du conteneur Docker pour exécuter des tests IDT dépend de l'utilisation de l'image Docker ou du Dockerfile fourni par. AWS IoT Greengrass
+ [Utilisez l'image Docker](#docker-config-setup-docker-image). Le logiciel AWS IoT Greengrass Core et ses dépendances sont installés sur l'image Docker.
+ [Utilisez le Dockerfile](#docker-config-setup-dockerfile). Le Dockerfile contient le code source que vous pouvez utiliser pour créer des images de AWS IoT Greengrass conteneur personnalisées. L'image peut être modifiée pour s'exécuter sur différentes architectures de plateformes ou pour réduire la taille de l'image.
**Note**  
AWS IoT Greengrass ne fournit pas de Dockerfiles ou d'images Docker pour la version 1.11.1 du logiciel AWS IoT Greengrass de base. Pour exécuter des tests IDT sur vos propres images de conteneur personnalisées, votre image doit inclure les dépendances définies dans le Dockerfile fourni par. AWS IoT Greengrass

Les fonctionnalités suivantes ne sont pas disponibles lorsque vous exécutez AWS IoT Greengrass dans un conteneur Docker :<a name="docker-image-unsupported-features"></a>
+ [Connecteurs](connectors.md) qui s'exécutent en mode **Greengrass container (Conteneur Greengrass)**. Pour exécuter un connecteur dans un conteneur Docker, le connecteur doit s'exécuter en mode **No container (Aucun conteneur)**. Pour rechercher des connecteurs prenant en charge le mode **No container (Aucun conteneur)** veuillez consulter [AWS- connecteurs Greengrass fournis](connectors-list.md). Certains de ces connecteurs ont un paramètre de mode d'isolement que vous devez définir sur **Aucun conteneur**.
+ [Ressources de volumes et d'appareils locales](access-local-resources.md). Vos fonctions Lambda définies par l'utilisateur qui s'exécutent dans le conteneur Docker doivent accéder directement aux appareils et aux volumes du cœur.

## Configurez l'image Docker fournie par AWS IoT Greengrass
<a name="docker-config-setup-docker-image"></a>

Suivez ces étapes pour configurer l'image AWS IoT Greengrass Docker afin d'exécuter des tests IDT.

**Conditions préalables**

Avant de commencer ce didacticiel, vous devez effectuer les opérations suivantes.<a name="docker-image-prereq-list"></a>
+ Vous devez installer les logiciels et versions suivants sur votre ordinateur hôte en fonction de la version AWS Command Line Interface (AWS CLI) que vous avez choisie.

------
#### [ AWS CLI version 2 ]
  + [Docker](https://docs.docker.com/install/) version 18.09 ou ultérieure. Les versions antérieures peuvent également fonctionner, mais nous recommandons la version 18.09 ou ultérieure.
  + AWS CLI version 2.0.0 ou ultérieure.
    + Pour installer la AWS CLI version 2, voir [Installation de la AWS CLI version 2](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html).
    + Pour configurer le AWS CLI, reportez-vous à [la section Configuration du AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html).
**Note**  
Pour effectuer une mise à niveau vers une AWS CLI version 2 ultérieure sur un ordinateur Windows, vous devez répéter le processus [d'installation de MSI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2-windows.html).

------
#### [ AWS CLI version 1 ]
  + [Docker](https://docs.docker.com/install/) version 18.09 ou ultérieure. Les versions antérieures peuvent également fonctionner, mais nous recommandons la version 18.09 ou ultérieure.
  + [Python](https://www.python.org/downloads/) version 3.6 ou ultérieure.
  + [pip](https://pip.pypa.io/en/stable/installing) version 18.1 ou suivante.
  + AWS CLI version 1.17.10 ou ultérieure
    + Pour installer la AWS CLI version 1, voir [Installation de la AWS CLI version 1](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html).
    + Pour configurer le AWS CLI, reportez-vous à [la section Configuration du AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html).
    + Pour effectuer une mise à niveau vers la dernière AWS CLI version de la version 1, exécutez la commande suivante.

      ```
      pip install awscli --upgrade --user
      ```
**Note**  
Si vous utilisez l'[installation MSI](https://docs.aws.amazon.com/cli/latest/userguide/install-windows.html#msi-on-windows) de la AWS CLI version 1 sous Windows, tenez compte des points suivants :  
Si l'installation de la AWS CLI version 1 ne parvient pas à installer botocore, essayez d'utiliser l'installation [Python et pip](https://docs.aws.amazon.com/cli/latest/userguide/awscli-install-windows.html#awscli-install-windows-pip).
Pour effectuer une mise à niveau vers une AWS CLI version 1 ultérieure, vous devez répéter le processus d'installation de MSI.

------
+ Pour accéder aux ressources d'Amazon Elastic Container Registry (Amazon ECR), vous devez accorder l'autorisation suivante. 
  + Amazon ECR demande aux utilisateurs d'accorder l'`ecr:GetAuthorizationToken`autorisation par le biais d'une politique Gestion des identités et des accès AWS (IAM) avant de pouvoir s'authentifier auprès d'un registre et envoyer ou extraire des images d'un référentiel Amazon ECR. Pour plus d'informations, consultez les [exemples de politiques relatives aux référentiels Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-policy-examples.html) et [l'accès à un référentiel Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/security_iam_id-based-policy-examples.html#security_iam_id-based-policy-examples-access-one-bucket) dans le guide de l'*utilisateur d'Amazon Elastic Container Registry*.

 

1. Téléchargez l'image Docker et configurez le conteneur. Vous pouvez télécharger l'image prédéfinie depuis [Docker Hub](https://hub.docker.com/r/amazon/aws-iot-greengrass) ou [Amazon Elastic Container Registry](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html) (Amazon ECR) et l'exécuter sur les plateformes Windows, macOS et Linux (x86\$164).

   Pour télécharger l'image Docker depuis Amazon ECR, suivez toutes les étapes décrites dans. [Étape 1 : obtenir l'image du AWS IoT Greengrass conteneur depuis Amazon ECR](run-gg-in-docker-container.md#docker-pull-image) Revenez ensuite à cette rubrique pour continuer la configuration.

1. <a name="docker-linux-non-root"></a>Utilisateurs Linux uniquement : assurez-vous que l'utilisateur qui exécute IDT a l'autorisation d'exécuter les commandes Docker. Pour de plus amples informations, veuillez consulter [Gérer Docker en tant qu'utilisateur non-racine](https://docs.docker.com/install/linux/linux-postinstall/#manage-docker-as-a-non-root-user) dans la documentation Docker.

1. <a name="docker-run-gg-container"></a>Pour exécuter le AWS IoT Greengrass conteneur, utilisez la commande correspondant à votre système d'exploitation :

------
#### [ Linux ]

   ```
   docker run --rm --init -it -d --name aws-iot-greengrass \
   -p 8883:8883 \
   -v <host-path-to-kernel-config-file>:<container-path> \
   <image-repository>:<tag>
   ```
   + Remplacez-le *<host-path-to-kernel-config-file>* par le chemin du fichier de configuration du noyau sur l'hôte et *<container-path>* par le chemin où le volume est monté dans le conteneur.

     Le fichier de configuration du noyau sur l'hôte se trouve généralement dans `/proc/config.gz` ou `/boot/config-<kernel-release-date>`. Vous pouvez courir `uname -r` pour trouver la *<kernel-release-date>* valeur.

     **Exemple :** Pour monter le fichier de configuration à partir de `/boot/config-<kernel-release-date>`

     ```
     -v /boot/config-4.15.0-74-generic:/boot/config-4.15.0-74-generic \
     ```

     **Exemple :** Pour monter le fichier de configuration à partir de `proc/config.gz`

     ```
     -v /proc/config.gz:/proc/config.gz \
     ```
   + Remplacez *<image-repository>* : *<tag>* dans la commande par le nom du référentiel et le tag de l'image cible.

     **Exemple :** pour pointer vers la dernière version du logiciel de AWS IoT Greengrass base

     ```
     216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-iot-greengrass:latest
     ```

     Pour obtenir la liste des images AWS IoT Greengrass Docker, exécutez la commande suivante.

     ```
     aws ecr list-images --region us-west-2 --registry-id 216483018798 --repository-name aws-iot-greengrass
     ```

------
#### [ macOS ]

   ```
   docker run --rm --init -it -d --name aws-iot-greengrass \
   -p 8883:8883 \
   <image-repository>:<tag>
   ```
   + Remplacez *<image-repository>* : *<tag>* dans la commande par le nom du référentiel et le tag de l'image cible.

     **Exemple :** pour pointer vers la dernière version du logiciel de AWS IoT Greengrass base

     ```
     216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-iot-greengrass:latest
     ```

     Pour obtenir la liste des images AWS IoT Greengrass Docker, exécutez la commande suivante :

     ```
     aws ecr list-images --region us-west-2 --registry-id 216483018798 --repository-name aws-iot-greengrass
     ```

------
#### [ Windows ]

   ```
   docker run --rm --init -it -d --name aws-iot-greengrass \
   -p 8883:8883 \
   <image-repository>:<tag>
   ```
   + Remplacez *<image-repository>* : *<tag>* dans la commande par le nom du référentiel et le tag de l'image cible.

     **Exemple :** pour pointer vers la dernière version du logiciel de AWS IoT Greengrass base

     ```
     216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-iot-greengrass:latest
     ```

     Pour obtenir la liste des images AWS IoT Greengrass Docker, exécutez la commande suivante :

     ```
     aws ecr list-images --region us-west-2 --registry-id 216483018798 --repository-name aws-iot-greengrass
     ```

------
**Important**  
Lorsque vous testez avec IDT, n'incluez pas l'`--entrypoint /greengrass-entrypoint.sh \`argument utilisé pour exécuter l'image pour un AWS IoT Greengrass usage général.

1. <a name="docker-config-next-steps"></a>Étape suivante : [configurez vos AWS informations d'identification et votre `device.json` fichier](set-config.md).

## Configurez le fichier docker fourni par AWS IoT Greengrass
<a name="docker-config-setup-dockerfile"></a>

Suivez ces étapes pour configurer l'image Docker créée à partir du AWS IoT Greengrass Dockerfile afin d'exécuter des tests IDT.

1. À partir de [AWS IoT Greengrass Logiciel Docker](what-is-gg.md#gg-docker-download), téléchargez le package Dockerfile sur votre ordinateur hôte et extrayez-le.

1. Ouvrir `README.md`. Les trois étapes suivantes font référence aux sections de ce fichier.

1. Assurez-vous que vous remplissez les conditions requises indiquées dans la section **Conditions préalables**.

1. Utilisateurs de Linux uniquement : suivez les étapes **Activer la protection des liens symboliques et physiques** et **Activer le transfert IPv4 réseau**.

1. Pour créer l'image Docker, suivez toutes les étapes de l'**étape 1. Créez l'image AWS IoT Greengrass Docker**. Revenez ensuite à cette rubrique pour continuer la configuration.

1. <a name="docker-run-gg-container"></a>Pour exécuter le AWS IoT Greengrass conteneur, utilisez la commande correspondant à votre système d'exploitation :

------
#### [ Linux ]

   ```
   docker run --rm --init -it -d --name aws-iot-greengrass \
   -p 8883:8883 \
   -v <host-path-to-kernel-config-file>:<container-path> \
   <image-repository>:<tag>
   ```
   + Remplacez-le *<host-path-to-kernel-config-file>* par le chemin du fichier de configuration du noyau sur l'hôte et *<container-path>* par le chemin où le volume est monté dans le conteneur.

     Le fichier de configuration du noyau sur l'hôte se trouve généralement dans `/proc/config.gz` ou `/boot/config-<kernel-release-date>`. Vous pouvez courir `uname -r` pour trouver la *<kernel-release-date>* valeur.

     **Exemple :** Pour monter le fichier de configuration à partir de `/boot/config-<kernel-release-date>`

     ```
     -v /boot/config-4.15.0-74-generic:/boot/config-4.15.0-74-generic \
     ```

     **Exemple :** Pour monter le fichier de configuration à partir de `proc/config.gz`

     ```
     -v /proc/config.gz:/proc/config.gz \
     ```
   + Remplacez *<image-repository>* : *<tag>* dans la commande par le nom du référentiel et le tag de l'image cible.

     **Exemple :** pour pointer vers la dernière version du logiciel de AWS IoT Greengrass base

     ```
     216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-iot-greengrass:latest
     ```

     Pour obtenir la liste des images AWS IoT Greengrass Docker, exécutez la commande suivante.

     ```
     aws ecr list-images --region us-west-2 --registry-id 216483018798 --repository-name aws-iot-greengrass
     ```

------
#### [ macOS ]

   ```
   docker run --rm --init -it -d --name aws-iot-greengrass \
   -p 8883:8883 \
   <image-repository>:<tag>
   ```
   + Remplacez *<image-repository>* : *<tag>* dans la commande par le nom du référentiel et le tag de l'image cible.

     **Exemple :** pour pointer vers la dernière version du logiciel de AWS IoT Greengrass base

     ```
     216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-iot-greengrass:latest
     ```

     Pour obtenir la liste des images AWS IoT Greengrass Docker, exécutez la commande suivante :

     ```
     aws ecr list-images --region us-west-2 --registry-id 216483018798 --repository-name aws-iot-greengrass
     ```

------
#### [ Windows ]

   ```
   docker run --rm --init -it -d --name aws-iot-greengrass \
   -p 8883:8883 \
   <image-repository>:<tag>
   ```
   + Remplacez *<image-repository>* : *<tag>* dans la commande par le nom du référentiel et le tag de l'image cible.

     **Exemple :** pour pointer vers la dernière version du logiciel de AWS IoT Greengrass base

     ```
     216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-iot-greengrass:latest
     ```

     Pour obtenir la liste des images AWS IoT Greengrass Docker, exécutez la commande suivante :

     ```
     aws ecr list-images --region us-west-2 --registry-id 216483018798 --repository-name aws-iot-greengrass
     ```

------
**Important**  
Lorsque vous testez avec IDT, n'incluez pas l'`--entrypoint /greengrass-entrypoint.sh \`argument utilisé pour exécuter l'image pour un AWS IoT Greengrass usage général.

1. <a name="docker-config-next-steps"></a>Étape suivante : [configurez vos AWS informations d'identification et votre `device.json` fichier](set-config.md).

## Résolution des problèmes de configuration de votre conteneur Docker pour IDT pour AWS IoT Greengrass
<a name="docker-config-setup-troubleshooting"></a>

Utilisez les informations suivantes pour résoudre les problèmes liés à l'exécution d'un conteneur Docker pour IDT à des fins de test. AWS IoT Greengrass 

### AVERTISSEMENT : Erreur lors du chargement de la configurationfile:/home/user/.docker/config.json - stat /home/<user>/.docker/config.json : autorisation refusée
<a name="docker-config-permissions-linux"></a>

Si vous obtenez cette erreur lors de l'exécution des commandes `docker` sous Linux, exécutez la commande suivante. Remplacez *<user>* la commande suivante par l'utilisateur qui exécute IDT.

```
sudo chown <user>:<user> /home/<user>/.docker -R
sudo chmod g+rwx /home/<user>/.docker -R
```

# Facultatif : Configuration de votre appareil pour la qualification ML
<a name="idt-ml-qualification"></a>

IDT for AWS IoT Greengrass propose des tests de qualification pour le machine learning (ML) afin de valider que vos appareils peuvent effectuer des inférences de machine learning localement à l'aide de modèles conçus dans le cloud.

Pour exécuter des tests de qualification ML, vous devez d'abord configurer vos appareils comme décrit dans [Configurez votre appareil pour exécuter des tests IDT](device-config-setup.md). Ensuite, suivez les étapes de cette rubrique pour installer les dépendances pour les frameworks ML que vous souhaitez exécuter.

IDT v3.1.0 ou version ultérieure est nécessaire pour exécuter les tests de qualification ML.

## Installation des dépendances du framework ML
<a name="ml-qualification-framework-dependencies"></a>

Toutes les dépendances du framework ML doivent être installées sous le répertoire `/usr/local/lib/python3.x/site-packages`. Pour vous assurer qu'elles sont installées dans le répertoire correct, nous vous recommandons d'utiliser les autorisations racine `sudo` lors de l'installation des dépendances. Les environnements virtuels ne sont pas pris en charge pour les tests de qualification.

**Note**  
Si vous testez des fonctions Lambda qui s'exécutent avec la [conteneurisation (](lambda-group-config.md#lambda-containerization-considerations)en mode **conteneur Greengrass**), la création de liens symboliques pour les bibliothèques Python n'est pas prise en charge. `/usr/local/lib/python3.x` Pour éviter les erreurs, vous devez installer les dépendances dans le répertoire correct.

Suivez les étapes pour installer les dépendances pour votre framework cible :
+ [Installer MXNet les dépendances](#ml-qualification-mxnet-dependencies)
+ [Installer TensorFlow les dépendances](#ml-qualification-tensorflow-dependencies)
+ [Installation des dépendances DLR](#ml-qualification-dlr-dependencies)

 

## Installation des MXNet dépendances Apache
<a name="ml-qualification-mxnet-dependencies"></a>

<a name="test-framework-dependencies"></a>Les tests de qualification IDT pour ce framework ont les dépendances suivantes :
+ <a name="ml-qualification-python-req"></a>Python 3.6 ou Python 3.7.
**Note**  <a name="python-symlink-command"></a>
Si vous utilisez Python 3.6, vous devez créer un lien symbolique entre les fichiers binaires de Python 3.7 vers Python 3.6. Ceci configure votre appareil de sorte qu'il réponde aux exigence de Python pour AWS IoT Greengrass. Par exemple :  

  ```
  sudo ln -s path-to-python-3.6/python3.6 path-to-python-3.7/python3.7
  ```
+ Apache MXNet v1.2.1 ou version ultérieure.
+ NumPy. La version doit être compatible avec MXNet la vôtre.

### Installation MXNet
<a name="ml-qualification-mxnet-install"></a>

Suivez les instructions de la MXNet documentation pour procéder à [l'installation MXNet](https://mxnet.apache.org/get_started/?platform=linux&language=python&processor=cpu&environ=pip&).

**Note**  
<a name="run-python3-commands"></a>Si Python 2.x et Python 3.x sont tous deux installés sur votre appareil, utilisez Python 3.x dans les commandes que vous exécutez pour installer les dépendances.

### Validation de l'installation MXNet
<a name="ml-qualification-mxnet-validate"></a>

Choisissez l'une des options suivantes pour valider l' MXNet installation.

#### Option 1 : SSH dans votre appareil et exécuter des scripts
<a name="ml-qualification-validate-mxnet-option-1"></a>

1. <a name="ssh-validate-framework-install-ssh"></a>SSH dans votre appareil.

1. <a name="ssh-validate-framework-install-run-scripts"></a>Exécutez les scripts suivants pour vérifier que les dépendances sont correctement installées.

   ```
   sudo python3.7 -c "import mxnet; print(mxnet.__version__)"
   ```

   ```
   sudo python3.7 -c "import numpy; print(numpy.__version__)"
   ```

   <a name="ssh-passed-mldependencies"></a>La sortie imprime le numéro de version et le script doit se terminer sans erreur.

#### Option 2 : Exécuter le test de dépendance IDT
<a name="ml-qualification-validate-mxnet-option-2"></a>

1. <a name="idt-validate-framework-install-check-config"></a>Assurez-vous que le fichier `device.json` est configuré pour la qualification ML. Pour de plus amples informations, veuillez consulter [Configurer device.json pour la qualification ML](set-config.md#device-json-ml-qualification).

1. <a name="idt-validate-framework-install-run-test"></a>Exécutez le test des dépendances pour le framework.

   ```
   devicetester_[linux | mac | win_x86-64] run-suite --group-id mldependencies --test-id mxnet_dependency_check
   ```

   <a name="idt-passed-mldependencies"></a>Le récapitulatif du test affiche un résultat `PASSED` pour `mldependencies`.

 

## Installer TensorFlow les dépendances
<a name="ml-qualification-tensorflow-dependencies"></a>

<a name="test-framework-dependencies"></a>Les tests de qualification IDT pour ce framework ont les dépendances suivantes :
+ <a name="ml-qualification-python-req"></a>Python 3.6 ou Python 3.7.
**Note**  <a name="python-symlink-command"></a>
Si vous utilisez Python 3.6, vous devez créer un lien symbolique entre les fichiers binaires de Python 3.7 vers Python 3.6. Ceci configure votre appareil de sorte qu'il réponde aux exigence de Python pour AWS IoT Greengrass. Par exemple :  

  ```
  sudo ln -s path-to-python-3.6/python3.6 path-to-python-3.7/python3.7
  ```
+ TensorFlow 1.x.

### Installation TensorFlow
<a name="ml-qualification-tensorflow-install"></a>

Suivez les instructions de la TensorFlow documentation pour installer TensorFlow 1.x [avec pip](https://www.tensorflow.org/install/pip) ou [depuis](https://www.tensorflow.org/install/source) les sources.

**Note**  
<a name="run-python3-commands"></a>Si Python 2.x et Python 3.x sont tous deux installés sur votre appareil, utilisez Python 3.x dans les commandes que vous exécutez pour installer les dépendances.

### Validation de l'installation TensorFlow
<a name="ml-qualification-tensorflow-validate"></a>

Choisissez l'une des options suivantes pour valider l' TensorFlow installation.

#### Option 1 : SSH dans votre appareil et exécuter un script
<a name="ml-qualification-validate-tensorflow-option-1"></a>

1. <a name="ssh-validate-framework-install-ssh"></a>SSH dans votre appareil.

1. Exécutez le script suivant pour vérifier que la dépendance est correctement installée.

   ```
   sudo python3.7 -c "import tensorflow; print(tensorflow.__version__)"
   ```

   <a name="ssh-passed-mldependencies"></a>La sortie imprime le numéro de version et le script doit se terminer sans erreur.

#### Option 2 : Exécuter le test de dépendance IDT
<a name="ml-qualification-validate-tensorflow-option-2"></a>

1. <a name="idt-validate-framework-install-check-config"></a>Assurez-vous que le fichier `device.json` est configuré pour la qualification ML. Pour de plus amples informations, veuillez consulter [Configurer device.json pour la qualification ML](set-config.md#device-json-ml-qualification).

1. <a name="idt-validate-framework-install-run-test"></a>Exécutez le test des dépendances pour le framework.

   ```
   devicetester_[linux | mac | win_x86-64] run-suite --group-id mldependencies --test-id tensorflow_dependency_check
   ```

   <a name="idt-passed-mldependencies"></a>Le récapitulatif du test affiche un résultat `PASSED` pour `mldependencies`.

 

## Installer les dépendances d'Amazon SageMaker AI Neo Deep Learning Runtime (DLR)
<a name="ml-qualification-dlr-dependencies"></a>

<a name="test-framework-dependencies"></a>Les tests de qualification IDT pour ce framework ont les dépendances suivantes :
+ <a name="ml-qualification-python-req"></a>Python 3.6 ou Python 3.7.
**Note**  <a name="python-symlink-command"></a>
Si vous utilisez Python 3.6, vous devez créer un lien symbolique entre les fichiers binaires de Python 3.7 vers Python 3.6. Ceci configure votre appareil de sorte qu'il réponde aux exigence de Python pour AWS IoT Greengrass. Par exemple :  

  ```
  sudo ln -s path-to-python-3.6/python3.6 path-to-python-3.7/python3.7
  ```
+ SageMaker AI Neo DLR.
+ numpy.

Après avoir installé les dépendances de test DLR, vous devez [compiler le modèle](#ml-qualification-dlr-compile-model).

### Installation de DLR
<a name="ml-qualification-dlr-install"></a>

Suivez les instructions de la documentation DLR pour [installer le Neo DLR](https://neo-ai-dlr.readthedocs.io/en/latest/install.html#building-on-linux).

**Note**  
<a name="run-python3-commands"></a>Si Python 2.x et Python 3.x sont tous deux installés sur votre appareil, utilisez Python 3.x dans les commandes que vous exécutez pour installer les dépendances.

### Validation de l'installation de DLR
<a name="ml-qualification-dlr-validate"></a>

Choisissez une des options suivantes pour valider l'installation de DLR.

#### Option 1 : SSH dans votre appareil et exécuter des scripts
<a name="ml-qualification-validate-dlr-option-1"></a>

1. <a name="ssh-validate-framework-install-ssh"></a>SSH dans votre appareil.

1. <a name="ssh-validate-framework-install-run-scripts"></a>Exécutez les scripts suivants pour vérifier que les dépendances sont correctement installées.

   ```
   sudo python3.7 -c "import dlr; print(dlr.__version__)"
   ```

   ```
   sudo python3.7 -c "import numpy; print(numpy.__version__)"
   ```

   <a name="ssh-passed-mldependencies"></a>La sortie imprime le numéro de version et le script doit se terminer sans erreur.

#### Option 2 : Exécuter le test de dépendance IDT
<a name="ml-qualification-validate-dlr-option-2"></a>

1. <a name="idt-validate-framework-install-check-config"></a>Assurez-vous que le fichier `device.json` est configuré pour la qualification ML. Pour de plus amples informations, veuillez consulter [Configurer device.json pour la qualification ML](set-config.md#device-json-ml-qualification).

1. <a name="idt-validate-framework-install-run-test"></a>Exécutez le test des dépendances pour le framework.

   ```
   devicetester_[linux | mac | win_x86-64] run-suite --group-id mldependencies --test-id dlr_dependency_check
   ```

   <a name="idt-passed-mldependencies"></a>Le récapitulatif du test affiche un résultat `PASSED` pour `mldependencies`.

## Compilation du modèle DLR
<a name="ml-qualification-dlr-compile-model"></a>

Vous devez compiler le modèle DLR avant de pouvoir l'utiliser pour les tests de qualification ML. Pour les étapes, choisissez une des options suivantes :

### Option 1 : utiliser Amazon SageMaker AI pour compiler le modèle
<a name="ml-qualification-compile-dlr-option-1"></a>

Suivez ces étapes pour utiliser l' SageMaker IA afin de compiler le modèle ML fourni par IDT. Ce modèle est préentraîné avec Apache MXNet.

1. Vérifiez que votre type d'appareil est compatible avec l' SageMaker IA. Pour plus d'informations, consultez les [options de l'appareil cible](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OutputConfig.html#sagemaker-Type-OutputConfig-TargetDevice) dans le *manuel Amazon SageMaker AI API Reference*. Si votre type d'appareil n'est actuellement pas pris en charge par l' SageMaker IA, suivez les étapes décrites dans[Option 2 : Utiliser TVM pour compiler le modèle DLR](#ml-qualification-compile-dlr-option-2).
**Note**  
L'exécution du test DLR avec un modèle compilé par SageMaker AI peut prendre 4 ou 5 minutes. N'arrêtez pas IDT au cours de cette période.

1. <a name="compile-dlr-download-uncompiled-model"></a>Téléchargez le fichier tarball qui contient le MXNet modèle préentraîné et non compilé pour le DLR :
   + [dlr-noncompiled-model-1.0.tar.gz](https://docs.aws.amazon.com/greengrass/latest/developerguide/download-dlr-noncompiled-model-1.0.html)

1. <a name="compile-dlr-decompress-uncompiled-model"></a>Décompressez le fichier tarball. Cette commande génère la structure de répertoire suivante.  
![\[Le répertoire resnet18 contient trois fichiers.\]](http://docs.aws.amazon.com/fr_fr/greengrass/v1/developerguide/images/idt/idt-ml-qualification-dlr-uncompiled.png)

1. Déplacez `synset.txt` hors du répertoire `resnet18`. Notez le nouvel emplacement. Vous copierez ce fichier dans le répertoire du modèle compilé ultérieurement.

1. Compressez le contenu du répertoire `resnet18`.

   ```
   tar cvfz model.tar.gz resnet18v1-symbol.json resnet18v1-0000.params
   ```

1. Téléchargez le fichier compressé dans un compartiment Amazon S3 de votre Compte AWS, puis suivez les étapes décrites dans [Compiler un modèle (console)](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-job-compilation-console.html) pour créer une tâche de compilation.

   1. Pour **Configuration d'entrée**, utilisez les valeurs suivantes :
      + Pour **Configuration d'entrée de données**, entrez `{"data": [1, 3, 224, 224]}`.
      + Pour **Cadre de machine learning**, choisissez `MXNet`.

   1. Pour **Configuration de sortie**, utilisez les valeurs suivantes :
      + Pour l'**emplacement de sortie S3**, entrez le chemin d'accès au compartiment ou au dossier Amazon S3 dans lequel vous souhaitez stocker le modèle compilé.
      + Pour **Périphérique cible**, choisissez votre type d'appareil.

1. Téléchargez le modèle compilé à partir de l'emplacement de sortie spécifié, puis décompressez le fichier.

1. Copiez `synset.txt` dans le répertoire du modèle compilé.

1. Renommez le répertoire du modèle compilé en `resnet18`.

   Votre répertoire de modèle compilé doit avoir la structure de répertoire suivante.  
![\[Le répertoire du modèle compilé resnet18 contient quatre fichiers.\]](http://docs.aws.amazon.com/fr_fr/greengrass/v1/developerguide/images/idt/idt-ml-qualification-dlr-compiled-sm.png)

### Option 2 : Utiliser TVM pour compiler le modèle DLR
<a name="ml-qualification-compile-dlr-option-2"></a>

Suivez ces étapes pour utiliser TVM afin de compiler le modèle ML fourni par IDT. Ce modèle étant préentraîné avec Apache MXNet, vous devez l'installer MXNet sur l'ordinateur ou le périphérique sur lequel vous compilez le modèle. Pour l'installer MXNet, suivez les instructions de la [ MXNet documentation](https://mxnet.apache.org/get_started/?platform=linux&language=python&processor=cpu&environ=pip&).

**Note**  
Nous vous recommandons de compiler le modèle sur votre appareil cible. Cette pratique est facultative, mais elle peut aider à assurer la compatibilité et à atténuer les problèmes potentiels.

 

1. <a name="compile-dlr-download-uncompiled-model"></a>Téléchargez le fichier tarball qui contient le MXNet modèle préentraîné et non compilé pour le DLR :
   + [dlr-noncompiled-model-1.0.tar.gz](https://docs.aws.amazon.com/greengrass/latest/developerguide/download-dlr-noncompiled-model-1.0.html)

1. <a name="compile-dlr-decompress-uncompiled-model"></a>Décompressez le fichier tarball. Cette commande génère la structure de répertoire suivante.  
![\[Le répertoire resnet18 contient trois fichiers.\]](http://docs.aws.amazon.com/fr_fr/greengrass/v1/developerguide/images/idt/idt-ml-qualification-dlr-uncompiled.png)

1. Suivez les instructions de la documentation TVM pour [créer et installer TVM à partir de la source pour votre plateforme](https://docs.tvm.ai/install/from_source.html).

1. Une fois TVM créé, exécutez la compilation TVM pour le modèle resnet18. Les étapes suivantes sont basées sur le didacticiel [Quick Start Tutorial for Compiling Deep Learning Models](https://tvm.apache.org/docs/tutorial/relay_quick_start.html#sphx-glr-tutorials-get-started-relay-quick-start-py), de la documentation TVM.

   1. Ouvrez le fichier `relay_quick_start.py` à partir du référentiel TVM cloné.

   1. Mettez à jour le code qui [définit un réseau neuronal en relais](https://tvm.apache.org/docs/tutorial/relay_quick_start.html#define-neural-network-in-relay). Vous pouvez utiliser une des options suivantes :
      + Option 1 : Utiliser `mxnet.gluon.model_zoo.vision.get_model` pour obtenir le module et les paramètres de relais :

        ```
        from mxnet.gluon.model_zoo.vision import get_model
        block = get_model('resnet18_v1', pretrained=True)
        mod, params = relay.frontend.from_mxnet(block, {"data": data_shape})
        ```
      + Option 2 : À partir du modèle non compilé que vous avez téléchargé à l'étape 1, copier les fichiers suivants dans le même répertoire que le fichier `relay_quick_start.py`. Ces fichiers contiennent le module et les paramètres de relais.
        + `resnet18v1-symbol.json`
        + `resnet18v1-0000.params`

   1. Mettez à jour le code qui [enregistre et charge le module compilé](https://tvm.apache.org/docs/tutorial/relay_quick_start.html#save-and-load-compiled-module) pour utiliser le code suivant.

      ```
      from tvm.contrib import util
      path_lib = "deploy_lib.so"
      #  Export the model library based on your device architecture
      lib.export_library("deploy_lib.so", cc="aarch64-linux-gnu-g++")
      with open("deploy_graph.json", "w") as fo:
          fo.write(graph)
      with open("deploy_param.params", "wb") as fo:
          fo.write(relay.save_param_dict(params))
      ```

   1. Créez le modèle :

      ```
      python3 tutorials/relay_quick_start.py --build-dir ./model
      ```

      Cette commande génère les fichiers suivants.
      + `deploy_graph.json`
      + `deploy_lib.so`
      + `deploy_param.params`

1. Copiez les fichiers du modèle généré dans un répertoire nommé `resnet18`. Ceci est votre répertoire de modèle compilé.

1. Copiez le répertoire de modèle compilé sur votre ordinateur hôte. Copiez ensuite `synset.txt` à partir du modèle non compilé que vous avez téléchargé à l'étape 1 dans le répertoire de modèle compilé.

   Votre répertoire de modèle compilé doit avoir la structure de répertoire suivante.  
![\[Le répertoire du modèle compilé resnet18 contient quatre fichiers.\]](http://docs.aws.amazon.com/fr_fr/greengrass/v1/developerguide/images/idt/idt-ml-qualification-dlr-compiled-tvm.png)

[Configurez ensuite vos AWS informations d'identification et votre `device.json` fichier](set-config.md).