

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Tutorial: pulizia dopo l'esecuzione dei tutorial AWS IoT Device Client
<a name="iot-dc-cleanup"></a>

Le procedure contenute in questo tutorial ti guidano nella rimozione dei file e delle risorse che hai creato durante il completamento dei tutorial in questo percorso di apprendimento.

**Topics**
+ [Fase 1: Pulizia dei dispositivi dopo aver creato delle demo con Device Client AWS IoT](#iot-dc-cleanup-devices)
+ [Passo 2: Pulizia delle demo Account AWS dopo la creazione con AWS IoT Device Client](#iot-dc-cleanup-cloud)

## Fase 1: Pulizia dei dispositivi dopo aver creato delle demo con Device Client AWS IoT
<a name="iot-dc-cleanup-devices"></a>

Questo tutorial descrive due opzioni su come pulire la scheda microSD dopo aver creato le demo in questo percorso di apprendimento. Scegli l'opzione che fornisce il livello di sicurezza di cui hai bisogno.

Tieni presente che la pulizia della scheda microSD del dispositivo non rimuove le risorse che hai AWS IoT creato. Per ripulire le AWS IoT risorse dopo aver pulito la scheda microSD del dispositivo, è necessario consultare il tutorial su. [Passo 2: Pulizia delle demo Account AWS dopo la creazione con AWS IoT Device Client](#iot-dc-cleanup-cloud)

### Opzione 1: Effettuare la pulizia riscrivendo la scheda microSD
<a name="iot-dc-cleanup-devices-flash"></a>

Il modo più semplice e completo per pulire la scheda microSD dopo aver completato i tutorial in questo percorso di apprendimento è sovrascrivere la scheda microSD con un file immagine salvato, creato durante la preparazione del dispositivo la prima volta.

Questa procedura utilizza il computer host locale per scrivere un'immagine della scheda microSD salvata su una scheda microSD.

**Nota**  
Se il dispositivo non utilizza un supporto di archiviazione rimovibile per il sistema operativo, fai riferimento alla procedura per quel dispositivo.

**Per scrivere una nuova immagine alla scheda microSD**

1. Sul computer host locale, individua l'immagine della scheda microSD salvata che si desidera scrivere sulla scheda microSD. 

1. Inserisci la microSD nel computer host locale.

1. Utilizzando uno strumento di imaging per schede SD, scrivi il file immagine selezionato sulla scheda microSD.

1. Dopo aver scritto l'immagine del sistema operativo Raspberry Pi sulla scheda microSD, espelli la scheda microSD e rimuovila in modo sicuro dal computer host locale.

La tua scheda microSD è pronta per l'uso.

### Opzione 2: Effettuare la pulizia eliminando le directory utente
<a name="iot-dc-cleanup-devices-dirs"></a>

Per pulire la scheda microSD dopo aver completato i tutorial senza riscrivere l'immagine della scheda microSD, è possibile eliminare le directory utente singolarmente. Ciò non è accurato come riscrivere la scheda microSD da un'immagine salvata perché non rimuove i file di sistema che potrebbero essere stati installati.

Se la rimozione delle directory utente è sufficientemente completa per le tue esigenze, puoi seguire questa procedura.

**Eliminare le directory utente di questo percorso di apprendimento dal dispositivo**

1. Esegui questi comandi per eliminare le directory utente, le sottodirectory e tutti i file creati in questo percorso di apprendimento, nella finestra del terminale connesso al dispositivo.
**Nota**  
Dopo l'eliminazione di queste directory e file, non potrai eseguire le demo senza completare nuovamente i tutorial.

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

1. Eseguire questi comandi per eliminare le directory e i file di origine dell'applicazione, nella finestra terminale connessa al dispositivo.
**Nota**  
Questi comandi non disinstallano alcun programma. Rimuovono solo i file di origine utilizzati per compilarli e installarli. Dopo aver eliminato questi file, il dispositivo AWS CLI e il client del AWS IoT dispositivo potrebbero non funzionare.

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

## Passo 2: Pulizia delle demo Account AWS dopo la creazione con AWS IoT Device Client
<a name="iot-dc-cleanup-cloud"></a>

Queste procedure consentono di identificare e rimuovere le AWS risorse create durante il completamento dei tutorial di questo percorso di apprendimento.

### Pulisci le risorse AWS IoT
<a name="iot-dc-cleanup-cloud-iot"></a>

Questa procedura consente di identificare e rimuovere le AWS IoT risorse create durante il completamento dei tutorial di questo percorso di apprendimento.


**AWS IoT risorse create in questo percorso di apprendimento**  

| Tutorial | Risorse oggetto | Risorse policy | 
| --- | --- | --- | 
|  [Tutorial: installazione e configurazione del AWS IoT Device Client](iot-dc-install-dc.md)  |  **DevCliTestThing**  | DevCliTestThingPolicy | 
|  [Tutorial: Dimostrare la comunicazione dei messaggi MQTT con il AWS IoT Device Client](iot-dc-testconn.md)  |  **PubSubTestThing**  | PubSubTestThingPolicy | 
|  [Tutorial: Dimostra le azioni (lavori) remote con il AWS IoT Device Client](iot-dc-runjobs.md)  | definito dall'utente (potrebbero essercene più di uno) |  *definito dall'utente* (potrebbero essercene più di uno)  | 

**Per eliminare le AWS IoT risorse, segui questa procedura per ogni risorsa oggetto che hai creato**

1. Sostituisci `thing_name` con il nome della risorsa dell'oggetto che desideri eliminare, quindi esegui questo comando per elencare i certificati attribuiti alla risorsa dell'oggetto, dal computer host locale.

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

   Questo comando restituisce una risposta come questa che elenca i certificati attribuiti a `thing_name`. Nella maggior parte dei casi, nell'elenco sarà presente un solo certificato.

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

1. Per ogni certificato elencato dal comando precedente:

   1. Sostituisci `certificate_ID` con l'ID del certificato del comando precedente. L'ID certificato è costituito dai caratteri alfanumerici che seguono `cert/` nell'ARN restituito dal comando precedente. Quindi esegui questo comando per disattivare il certificato.

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

      In caso di esito positivo, questo comando non restituisce alcun risultato.

   1. Sostituisci `certificate_ARN` con il certificato ARN dall'elenco dei certificati restituiti in precedenza, quindi esegui questo comando per elencare le policy attribuite a questo certificato.

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

      Questo comando restituisce una risposta come questa che elenca le policy attribuite al certificato. Nella maggior parte dei casi, ci sarà solo una policy nell'elenco.

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

   1. Per ciascuna policy collegata al certificato:

      1. Sostituisci `policy_name` con il valore `policyName` del comando precedente, sostituisci `certificate_ARN` con l'ARN del certificato, quindi esegui questo comando per disconnettere la policy dal certificato.

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

         In caso di esito positivo, questo comando non restituisce alcun risultato.

      1. Sostituisci `policy_name` con il valore `policyName` e quindi esegui questo comando per verificare se la policy è attribuita ad altri certificati.

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

         Se il comando restituisce un elenco vuoto come questo, la policy non è associata a nessun certificato; continuerai a elencare le versioni della policy. Se sono ancora presenti certificati allegati alla policy, continua con la fase **detach-thing-principal**.

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

      1. Sostituisci `policy_name` con il valore `policyName`, quindi esegui questo comando per verificare la presenza di versioni delle policy. Per eliminare la policy, deve avere una sola versione.

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

         Se la policy ha una sola versione, come in questo esempio, è possibile passare alla fase **delete-policy** ed eliminare subito la policy.

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

         Se la policy ha più di una versione, come in questo esempio, le versioni delle policy con un valore `isDefaultVersion` di `false` devono essere eliminate prima che la policy possa essere eliminata.

         ```
         {
             "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"
                 }
             ]
         }
         ```

         Se è necessario eliminare una versione della policy, sostituisci `policy_name` con il valore `policyName`, sostituisci `version_ID` con il valore `versionId` del comando precedente, quindi esegui questo comando per eliminare una versione della policy.

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

         In caso di esito positivo, questo comando non restituisce alcun risultato.

         Dopo aver eliminato una versione della policy, ripeti questo passaggio fino a quando la policy non ha una sola versione della policy.

      1. Sostituisci `policy_name` con il valore `policyName` e quindi esegui questo comando per eliminare la policy.

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

   1. Sostituisci `thing_name` con il nome dell'oggetto, sostituisci `certificate_ARN` con l'ARN del certificato, quindi esegui questo comando per disconnettere il certificato dalla risorsa dell'oggetto.

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

      In caso di esito positivo, questo comando non restituisce alcun risultato.

   1. Sostituisci `certificate_ID` con l'ID del certificato del comando precedente. L'ID certificato è costituito dai caratteri alfanumerici che seguono `cert/` nell'ARN restituito dal comando precedente. Esegui questo comando per eliminare la risorsa del certificato.

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

      In caso di esito positivo, questo comando non restituisce alcun risultato.

1. Sostituisci `thing_name` con il nome dell'oggetto, quindi esegui questo comando per eliminarlo.

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

   In caso di esito positivo, questo comando non restituisce alcun risultato. 

### Pulisci AWS le risorse
<a name="iot-dc-cleanup-cloud-aws"></a>

Questa procedura consente di identificare e rimuovere altre AWS risorse create durante il completamento dei tutorial di questo percorso di apprendimento.


**Altre AWS risorse create in questo percorso di apprendimento**  

| Tutorial | Tipo di risorsa | Nome o ID risorsa | 
| --- | --- | --- | 
|  [Tutorial: Dimostra le azioni (lavori) remote con il AWS IoT Device Client](iot-dc-runjobs.md)  | Oggetto Amazon S3 | hello-world-job.json | 
|  [Tutorial: Dimostra le azioni (lavori) remote con il AWS IoT Device Client](iot-dc-runjobs.md)  |  AWS IoT risorse lavorative  | definito dall'utente | 

**Per eliminare le AWS risorse create in questo percorso di apprendimento**

1. Per eliminare i processi creati in questo percorso di apprendimento

   1. Esegui questo comando per elencare i lavori presenti nel tuo Account AWS.

      ```
      aws iot list-jobs
      ```

      Il comando restituisce un elenco dei AWS IoT lavori presenti nel tuo Account AWS e Regione AWS che assomiglia a questo.

      ```
      {
          "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. Per ogni job che riconosci dall'elenco come job creato in questo percorso di apprendimento, sostituiscilo `jobId` con il `jobId` valore del job da eliminare, quindi esegui questo comando per eliminare un AWS IoT job.

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

      In caso di esito positivo, il comando non restituisce alcun risultato.

1. Eliminare i documenti di processo archiviati in un bucket Amazon S3 in questo percorso di apprendimento.

   1. Sostituisci `bucket` con il nome del bucket utilizzato, quindi esegui questo comando per elencare gli oggetti nel bucket Amazon S3 utilizzato.

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

      Il comando restituisce un elenco di oggetti Amazon S3 nel bucket simile a questo.

      ```
      {
          "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. Per ogni processo che riconosci dall'elenco come processo creato in questo percorso di apprendimento, sostituisci `bucket` con il nome del bucket e `key` con il valore chiave dell'oggetto da eliminare, quindi esegui questo comando per eliminare un oggetto Amazon S3.

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

      In caso di esito positivo, il comando non restituisce alcun risultato.

Dopo aver eliminato tutte le AWS risorse e gli oggetti creati durante il completamento di questo percorso di apprendimento, puoi ricominciare da capo e ripetere i tutorial.