

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.

# Tutoriel : Nettoyage après avoir exécuté les didacticiels AWS IoT Device Client
<a name="iot-dc-cleanup"></a>

Les procédures décrites dans ce didacticiel vous expliquent comment supprimer les fichiers et les ressources que vous avez créés tout en suivant les didacticiels de ce parcours d'apprentissage.

**Topics**
+ [Étape 1 : Nettoyage de vos appareils après avoir créé des démos avec le AWS IoT Device Client](#iot-dc-cleanup-devices)
+ [Étape 2 : Nettoyage de vos démos Compte AWS après la création avec le AWS IoT Device Client](#iot-dc-cleanup-cloud)

## Étape 1 : Nettoyage de vos appareils après avoir créé des démos avec le AWS IoT Device Client
<a name="iot-dc-cleanup-devices"></a>

Ce didacticiel décrit deux options pour nettoyer la carte microSD après avoir créé les démos dans le cadre de ce parcours d'apprentissage. Choisissez l'option qui fournit le niveau de sécurité dont vous avez besoin.

Notez que le nettoyage de la carte microSD de l'appareil ne supprime aucune AWS IoT ressource que vous avez créée. Pour nettoyer les AWS IoT ressources après avoir nettoyé la carte microSD de l'appareil, vous devez consulter le didacticiel sur. [Étape 2 : Nettoyage de vos démos Compte AWS après la création avec le AWS IoT Device Client](#iot-dc-cleanup-cloud)

### Option 1 : Nettoyage en réécrivant la carte microSD
<a name="iot-dc-cleanup-devices-flash"></a>

La méthode la plus simple et la plus complète pour nettoyer la carte microSD après avoir suivi les didacticiels de ce cours d'apprentissage consiste à remplacer la carte microSD par un fichier image enregistré que vous avez créé lors de la première préparation de votre appareil.

Cette procédure utilise l'ordinateur hôte local pour écrire une image de carte microSD enregistrée sur une carte microSD.

**Note**  
Si votre appareil n'utilise pas de support de stockage amovible pour son système d'exploitation, reportez-vous à la procédure correspondante.

**Pour écrire une nouvelle image sur la carte microSD**

1. Sur votre ordinateur hôte local, localisez l'image de carte microSD enregistrée que vous souhaitez écrire sur votre carte microSD. 

1. Insérez votre carte microSD dans l'ordinateur hôte local.

1. À l'aide d'un outil d'imagerie de carte SD, écrivez le fichier image sélectionné sur la carte microSD.

1. Après avoir écrit l'image du système d'exploitation Raspberry Pi sur la carte microSD, éjectez la carte microSD et retirez-la en toute sécurité de l'ordinateur hôte local.

Votre carte microSD est prête à l'emploi.

### Option 2 : Nettoyage en supprimant les répertoires des utilisateurs
<a name="iot-dc-cleanup-devices-dirs"></a>

Pour nettoyer la carte microSD après avoir terminé les didacticiels sans réécrire l'image de la carte microSD, vous pouvez supprimer les répertoires utilisateur individuellement. Cela n'est pas aussi complet que la réécriture de la carte microSD à partir d'une image enregistrée, car cela ne supprime aucun fichier système qui aurait pu être installé.

Si la suppression des répertoires d'utilisateurs est suffisamment complète pour répondre à vos besoins, vous pouvez suivre cette procédure.

**Pour supprimer les répertoires d'utilisateurs de ce parcours d'apprentissage de votre appareil**

1. Exécutez ces commandes pour supprimer les répertoires utilisateur, les sous-répertoires et tous leurs fichiers créés dans ce parcours d'apprentissage, dans la fenêtre du terminal connectée à votre appareil.
**Note**  
Une fois ces répertoires et fichiers supprimés, vous ne pourrez plus exécuter les démos sans avoir à nouveau suivi les didacticiels.

   ```
   rm -Rf ~/dc-configs
   rm -Rf ~/policies
   rm -Rf ~/messages
   rm -Rf ~/certs
   rm -Rf ~/.aws-iot-device-client
   ```

1. Exécutez ces commandes pour supprimer les répertoires et fichiers sources de l'application, dans la fenêtre du terminal connectée à votre appareil.
**Note**  
Ces commandes ne désinstallent aucun programme. Ils suppriment uniquement les fichiers source utilisés pour les compiler et les installer. Une fois que vous avez supprimé ces fichiers, le client AWS CLI et le AWS IoT périphérique risquent de ne pas fonctionner.

   ```
   rm -Rf ~/aws-cli
   rm -Rf ~/aws
   rm -Rf ~/aws-iot-device-client
   ```

## Étape 2 : Nettoyage de vos démos Compte AWS après la création avec le AWS IoT Device Client
<a name="iot-dc-cleanup-cloud"></a>

Ces procédures vous aident à identifier et à supprimer les AWS ressources que vous avez créées lors de la réalisation des didacticiels de ce parcours de formation.

### Nettoyer les AWS IoT ressources
<a name="iot-dc-cleanup-cloud-iot"></a>

Cette procédure vous aide à identifier et à supprimer les AWS IoT ressources que vous avez créées lors de la réalisation des didacticiels de ce parcours d'apprentissage.


**AWS IoT ressources créées dans le cadre de ce parcours d'apprentissage**  

| didacticiel | Ressources d'objet | Ressources de politique | 
| --- | --- | --- | 
|  [Tutoriel : Installation et configuration du client de AWS IoT périphérique](iot-dc-install-dc.md)  |  **DevCliTestThing**  | DevCliTestThingPolicy | 
|  [Tutoriel : Démonstration de la communication des messages MQTT avec le client du AWS IoT périphérique](iot-dc-testconn.md)  |  **PubSubTestThing**  | PubSubTestThingPolicy | 
|  [Tutoriel : Démonstration d'actions à distance (tâches) avec le client du AWS IoT périphérique](iot-dc-runjobs.md)  | défini par l'utilisateur (il peut y en avoir plusieurs) |  *défini par l'utilisateur* (il peut y en avoir plusieurs)  | 

**Pour supprimer les AWS IoT ressources, suivez cette procédure pour chaque objet (ressource) que vous avez créée**

1. Remplacez `thing_name` par le nom de la ressource d'objet que vous souhaitez supprimer, puis exécutez cette commande pour répertorier les certificats attachés à la ressource d'objet, à partir de l'ordinateur hôte local.

   ```
   aws iot list-thing-principals --thing-name thing_name
   ```

   Cette commande renvoie une réponse comme celle-ci qui répertorie les certificats attachés à `thing_name`. Dans la plupart des cas, il n'y aura qu'un seul certificat dans la liste.

   ```
   {
       "principals": [
           "arn:aws:iot:us-west-2:57EXAMPLE833:cert/23853eea3cf0edc7f8a69c74abeafa27b2b52823cab5b3e156295e94b26ae8ac"
       ]
   }
   ```

1. Pour chaque certificat répertorié par la commande précédente :

   1. Remplacez `certificate_ID` par l'ID du certificat de la commande précédente. L'ID du certificat est constitué des caractères alphanumériques qui suivent `cert/` l'ARN renvoyé par la commande précédente. Exécutez ensuite cette commande pour désactiver le certificat.

      ```
      aws iot update-certificate --new-status INACTIVE --certificate-id certificate_ID
      ```

      En cas de succès, cette commande ne renvoie rien.

   1. Remplacez-le `certificate_ARN` par l'ARN du certificat figurant dans la liste des certificats renvoyés précédemment, puis exécutez cette commande pour répertorier les politiques associées à ce certificat.

      ```
      aws iot list-attached-policies --target certificate_ARN
      ```

      Cette commande renvoie une réponse comme celle-ci qui répertorie les politiques attachées au certificat. Dans la plupart des cas, il n’y aura qu’une seule politique dans la liste.

      ```
      {
          "policies": [
              {
                  "policyName": "DevCliTestThingPolicy",
                  "policyArn": "arn:aws:iot:us-west-2:57EXAMPLE833:policy/DevCliTestThingPolicy"
              }
          ]
      }
      ```

   1. Pour chaque politique attachée au certificat :

      1. Remplacez `policy_name` par la valeur `policyName` de la commande précédente, remplacez `certificate_ARN` par l'ARN du certificat, puis exécutez cette commande pour détacher la politique du certificat.

         ```
         aws iot detach-policy --policy-name policy_name --target certificate_ARN
         ```

         En cas de succès, cette commande ne renvoie rien.

      1. Remplacez `policy_name` par la valeur `policyName`, puis exécutez cette commande pour voir si la politique est attachée à d'autres certificats.

         ```
         aws iot list-targets-for-policy --policy-name policy_name
         ```

         Si la commande renvoie une liste vide comme celle-ci, la politique n'est attachée à aucun certificat et vous continuez à répertorier les versions de la politique. Si des certificats sont toujours attachés à la politique, passez à l'étape **detach-thing-principal**.

         ```
         {
             "targets": []
         }
         ```

      1. Remplacez `policy_name` par la valeur `policyName`, puis exécutez cette commande pour vérifier les versions des politiques. Pour supprimer la politique, elle ne doit comporter qu'une seule version.

         ```
         aws iot list-policy-versions --policy-name policy_name
         ```

         Si la politique n'a qu'une seule version, comme dans cet exemple, vous pouvez passer à l'étape **delete-policy** et supprimer la politique maintenant.

         ```
         {
             "policyVersions": [
                 {
                     "versionId": "1",
                     "isDefaultVersion": true,
                     "createDate": "2021-11-18T01:02:46.778000+00:00"
                 }
             ]
         }
         ```

         Si la politique comporte plusieurs versions, comme dans cet exemple, les versions de stratégie dont la valeur `isDefaultVersion` est égale à `false` doivent être supprimées pour que la politique puisse être supprimée.

         ```
         {
             "policyVersions": [
                 {
                     "versionId": "2",
                     "isDefaultVersion": true,
                     "createDate": "2021-11-18T01:52:04.423000+00:00"
                 },
                 {
                     "versionId": "1",
                     "isDefaultVersion": false,
                     "createDate": "2021-11-18T01:30:18.083000+00:00"
                 }
             ]
         }
         ```

         Si vous devez supprimer une version de stratégie, remplacez `policy_name` par la valeur `policyName`, remplacez `version_ID` par la valeur `versionId` de la commande précédente, puis exécutez cette commande pour supprimer une version de stratégie.

         ```
         aws iot delete-policy-version --policy-name policy_name --policy-version-id version_ID
         ```

         En cas de succès, cette commande ne renvoie rien.

         Après avoir supprimé une version de politique, répétez cette étape jusqu'à ce que la politique ne comporte qu'une seule version.

      1. Remplacez `policy_name` par la valeur `policyName`, puis exécutez cette commande pour supprimer la politique.

         ```
         aws iot delete-policy --policy-name policy_name
         ```

   1. Remplacez `thing_name` par le nom de l'objet, remplacez `certificate_ARN` par l'ARN du certificat, puis exécutez cette commande pour détacher le certificat de la ressource de l'objet.​

      ```
      aws iot detach-thing-principal --thing-name thing_name --principal certificate_ARN
      ```

      En cas de succès, cette commande ne renvoie rien.

   1. Remplacez `certificate_ID` par l'ID du certificat de la commande précédente. L'ID du certificat est constitué des caractères alphanumériques qui suivent `cert/` l'ARN renvoyé par la commande précédente. Exécutez ensuite cette commande pour supprimer la ressource de certificat.

      ```
      aws iot delete-certificate --certificate-id certificate_ID
      ```

      En cas de succès, cette commande ne renvoie rien.

1. Remplacez `thing_name` par le nom de l'objet, puis exécutez cette commande pour supprimer l'objet.

   ```
   aws iot delete-thing --thing-name thing_name
   ```

   En cas de succès, cette commande ne renvoie rien. 

### Nettoyer les AWS ressources
<a name="iot-dc-cleanup-cloud-aws"></a>

Cette procédure vous aide à identifier et à supprimer les autres AWS ressources que vous avez créées lors de la réalisation des didacticiels de ce parcours d'apprentissage.


**Autres AWS ressources créées dans le cadre de ce parcours d'apprentissage**  

| didacticiel | Type de ressource | Nom ou ID de la ressource | 
| --- | --- | --- | 
|  [Tutoriel : Démonstration d'actions à distance (tâches) avec le client du AWS IoT périphérique](iot-dc-runjobs.md)  | Objet Amazon S3 | hello-world-job.json | 
|  [Tutoriel : Démonstration d'actions à distance (tâches) avec le client du AWS IoT périphérique](iot-dc-runjobs.md)  |  AWS IoT ressources pour l'emploi  | défini par l'utilisateur | 

**Pour supprimer les AWS ressources créées dans ce parcours de formation**

1. Pour supprimer les jobs créés dans ce parcours de formation

   1. Exécutez cette commande pour répertorier les tâches de votre Compte AWS.

      ```
      aws iot list-jobs
      ```

      La commande renvoie une liste des AWS IoT tâches qui se trouvent dans votre Compte AWS fichier et Région AWS qui ressemble à ceci.

      ```
      {
          "jobs": [
              {
                  "jobArn": "arn:aws:iot:us-west-2:57EXAMPLE833:job/hello-world-job-2",
                  "jobId": "hello-world-job-2",
                  "targetSelection": "SNAPSHOT",
                  "status": "COMPLETED",
                  "createdAt": "2021-11-16T23:40:36.825000+00:00",
                  "lastUpdatedAt": "2021-11-16T23:40:41.375000+00:00",
                  "completedAt": "2021-11-16T23:40:41.375000+00:00"
              },
              {
                  "jobArn": "arn:aws:iot:us-west-2:57EXAMPLE833:job/hello-world-job-1",
                  "jobId": "hello-world-job-1",
                  "targetSelection": "SNAPSHOT",
                  "status": "COMPLETED",
                  "createdAt": "2021-11-16T23:35:26.381000+00:00",
                  "lastUpdatedAt": "2021-11-16T23:35:29.239000+00:00",
                  "completedAt": "2021-11-16T23:35:29.239000+00:00"
              }
          ]
      }
      ```

   1. Pour chaque tâche que vous reconnaissez dans la liste comme une tâche que vous avez créée dans ce cursus de formation, `jobId` remplacez-la par la `jobId` valeur de la tâche à supprimer, puis exécutez cette commande pour supprimer une AWS IoT tâche.

      ```
      aws iot delete-job --job-id jobId
      ```

      Si la commande réussit, elle ne renvoie rien.

1. Suppression des documents job que vous avez stockés dans un compartiment Amazon S3 dans ce parcours de formation.

   1. Remplacez `bucket` par le nom du compartiment que vous avez utilisé, puis exécutez cette commande pour répertorier les objets dans le compartiment Amazon S3 que vous avez utilisé.

      ```
      aws s3api list-objects --bucket bucket
      ```

      La commande renvoie une liste des objets Amazon S3 dans le compartiment qui ressemble à ceci.

      ```
      {
          "Contents": [
              {
                  "Key": "hello-world-job.json",
                  "LastModified": "2021-11-18T03:02:12+00:00",
                  "ETag": "\"868c8bc3f56b5787964764d4b18ed5ef\"",
                  "Size": 54,
                  "StorageClass": "STANDARD",
                  "Owner": {
                      "DisplayName": "EXAMPLE",
                      "ID": "e9e3d6ec1EXAMPLEf5bfb5e6bd0a2b6ed03884d1ed392a82ad011c144736a4ee"
                  }
              },
              {
                  "Key": "iot_job_firmware_update.json",
                  "LastModified": "2021-04-13T21:57:07+00:00",
                  "ETag": "\"7c68c591949391791ecf625253658c61\"",
                  "Size": 66,
                  "StorageClass": "STANDARD",
                  "Owner": {
                      "DisplayName": "EXAMPLE",
                      "ID": "e9e3d6ec1EXAMPLEf5bfb5e6bd0a2b6ed03884d1ed392a82ad011c144736a4ee"
                  }
              },
              {
                  "Key": "order66.json",
                  "LastModified": "2021-04-13T21:57:07+00:00",
                  "ETag": "\"bca60d5380b88e1a70cc27d321caba72\"",
                  "Size": 29,
                  "StorageClass": "STANDARD",
                  "Owner": {
                      "DisplayName": "EXAMPLE",
                      "ID": "e9e3d6ec1EXAMPLEf5bfb5e6bd0a2b6ed03884d1ed392a82ad011c144736a4ee"
                  }
              }
          ]
      }
      ```

   1. Pour chaque objet que vous reconnaissez dans la liste comme un objet que vous avez créé dans ce parcours d'apprentissage, remplacez `bucket` par le nom du compartiment et `key` par la valeur clé de l'objet à supprimer, puis exécutez cette commande pour supprimer un objet Amazon S3.

      ```
       aws s3api delete-object --bucket bucket --key key
      ```

      Si la commande réussit, elle ne renvoie rien.

Après avoir supprimé toutes les AWS ressources et tous les objets que vous avez créés au cours de ce parcours d'apprentissage, vous pouvez recommencer à zéro et répéter les didacticiels.