

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Tutorial: Limpando depois de executar os tutoriais do AWS IoT Device Client
<a name="iot-dc-cleanup"></a>

Os procedimentos deste tutorial orientam você na remoção dos arquivos e recursos que você criou ao concluir os tutoriais neste percurso de aprendizado.

**Topics**
+ [Etapa 1: Limpar seus dispositivos após criar demonstrações com o AWS IoT Device Client](#iot-dc-cleanup-devices)
+ [Etapa 2: Limpar suas demonstrações Conta da AWS após a criação com o AWS IoT Device Client](#iot-dc-cleanup-cloud)

## Etapa 1: Limpar seus dispositivos após criar demonstrações com o AWS IoT Device Client
<a name="iot-dc-cleanup-devices"></a>

Este tutorial descreve duas opções de como limpar o cartão microSD depois de criar as demonstrações neste percurso de aprendizado. Escolha a opção que fornece o nível de segurança de que você precisa.

Observe que a limpeza do cartão microSD do dispositivo não remove nenhum AWS IoT recurso que você criou. Para limpar os AWS IoT recursos depois de limpar o cartão microSD do dispositivo, você deve revisar o tutorial em. [Etapa 2: Limpar suas demonstrações Conta da AWS após a criação com o AWS IoT Device Client](#iot-dc-cleanup-cloud)

### Opção 1: como limpar regravando o cartão microSD
<a name="iot-dc-cleanup-devices-flash"></a>

A maneira mais fácil e completa de limpar o cartão microSD depois de concluir os tutoriais neste percurso de aprendizado é substituir o cartão microSD por um arquivo de imagem salvo que você criou ao preparar o dispositivo pela primeira vez.

Esse procedimento usa o computador host local para gravar uma imagem salva do cartão microSD em um cartão microSD.

**nota**  
Se o dispositivo não usa uma mídia de armazenamento removível para o sistema operacional, consulte o procedimento desse dispositivo.

**Para gravar uma nova imagem no cartão microSD**

1. No computador host local, localize a imagem salva do cartão microSD que você deseja gravar no cartão microSD. 

1. Insira o cartão microSD no computador host local.

1. Usando uma ferramenta de imagem de cartão SD, grave o arquivo de imagem selecionado no cartão microSD.

1. Depois de gravar a imagem do sistema operacional Raspberry Pi no cartão microSD, ejete o cartão microSD e remova-o com segurança do computador host local.

O cartão microSD está pronto para ser usado.

### Opção 2: como limpar excluindo diretórios de usuários
<a name="iot-dc-cleanup-devices-dirs"></a>

Para limpar o cartão microSD depois de concluir os tutoriais sem regravar a imagem do cartão microSD, você pode excluir os diretórios do usuário individualmente. Isso não é tão completo quanto regravar o cartão microSD por meio de uma imagem salva, pois não remove nenhum arquivo do sistema que possa ter sido instalado.

Se a remoção dos diretórios do usuário for suficientemente completa para suas necessidades, siga este procedimento.

**Para excluir os diretórios de usuário desse percurso de aprendizado do dispositivo**

1. Execute esses comandos para excluir os diretórios, subdiretórios e todos os arquivos que foram criados nesse percurso de aprendizado, na janela do terminal conectada ao dispositivo.
**nota**  
Depois de excluir esses diretórios e arquivos, você não poderá executar as demonstrações sem concluir os tutoriais novamente.

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

1. Execute esses comandos para excluir os diretórios e arquivos de origem da aplicação na janela do terminal conectada ao dispositivo.
**nota**  
Esses comandos não desinstalam nenhum programa. Eles removem apenas os arquivos de origem usados para criá-los e instalá-los. Depois de excluir esses arquivos, o AWS CLI e o AWS IoT Device Client podem não funcionar.

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

## Etapa 2: Limpar suas demonstrações Conta da AWS após a criação com o AWS IoT Device Client
<a name="iot-dc-cleanup-cloud"></a>

Esses procedimentos ajudam você a identificar e remover os AWS recursos que você criou ao concluir os tutoriais neste plano de aprendizado.

### Limpe AWS IoT os recursos
<a name="iot-dc-cleanup-cloud-iot"></a>

Esse procedimento ajuda você a identificar e remover os AWS IoT recursos que você criou ao concluir os tutoriais neste plano de aprendizado.


**AWS IoT recursos criados neste plano de aprendizado**  

| Tutorial | Recurso de objetos | Recurso de políticas | 
| --- | --- | --- | 
|  [Tutorial: Instalando e configurando o AWS IoT Device Client](iot-dc-install-dc.md)  |  **DevCliTestThing**  | DevCliTestThingPolicy | 
|  [Tutorial: Demonstre a comunicação de mensagens MQTT com o AWS IoT Device Client](iot-dc-testconn.md)  |  **PubSubTestThing**  | PubSubTestThingPolicy | 
|  [Tutorial: Demonstre ações remotas (trabalhos) com o AWS IoT Device Client](iot-dc-runjobs.md)  | definido pelo usuário (pode haver mais de um) |  *definido pelo usuário* (pode haver mais de um)  | 

**Para excluir os AWS IoT recursos, siga este procedimento para cada recurso que você criou**

1. Substitua `thing_name` pelo nome do recurso do objeto que você deseja excluir e, em seguida, execute esse comando para listar os certificados anexados ao recurso do objeto por meio do computador host local.

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

   Esse comando retorna uma resposta como essa, que lista os certificados anexados a `thing_name`. Na maioria dos casos, haverá apenas um certificado na lista.

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

1. Para cada certificado listado pelo comando anterior:

   1. Substitua `certificate_ID` pelo ID de certificado do comando anterior. O ID do certificado são os caracteres alfanuméricos que seguem `cert/` no ARN retornado pelo comando anterior. Em seguida, execute esse comando para inativar o certificado.

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

      Se houver êxito, esse comando não retornará nada.

   1. Substitua `certificate_ARN` pelo ARN do certificado da lista de certificados retornados anteriormente e, em seguida, execute esse comando para listar as políticas anexadas a esse certificado.

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

      Esse comando retorna uma resposta como essa, que lista as políticas anexadas ao certificado. Na maioria dos casos, haverá apenas uma política na lista.

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

   1. Para cada política anexada ao certificado:

      1. Substitua `policy_name` pelo valor `policyName` do comando anterior, substitua `certificate_ARN` pelo ARN do certificado e execute esse comando para separar a política do certificado.

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

         Se houver êxito, esse comando não retornará nada.

      1. Substitua `policy_name` pelo valor `policyName` e, em seguida, execute esse comando para ver se a política está anexada a mais certificados.

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

         Se o comando retornar uma lista vazia como essa, a política não será anexada a nenhum certificado, e você continuará listando as versões da política. Se ainda houver certificados anexados à política, continue com a etapa **detach-thing-principal**.

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

      1. Substitua `policy_name` pelo valor `policyName` e, em seguida, execute esse comando para verificar as versões da política. Para excluir a política, ela deve ter somente uma versão.

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

         Se a política tiver apenas uma versão, como neste exemplo, você poderá pular para a etapa **delete-policy** e excluir a política agora.

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

         Se a política tiver mais de uma versão, como neste exemplo, as versões da política com um valor `isDefaultVersion` de `false` devem ser excluídas antes que a política possa ser excluída.

         ```
         {
             "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 você precisar excluir uma versão da política, substitua `policy_name` pelo valor `policyName`, substitua `version_ID` pelo valor `versionId` do comando anterior e execute esse comando para excluir uma versão da política.

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

         Se houver êxito, esse comando não retornará nada.

         Depois de excluir uma versão da política, repita essa etapa até que a política tenha somente uma versão da política.

      1. Substitua `policy_name` pelo valor `policyName` e, em seguida, execute esse comando para excluir a política.

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

   1. Substitua `thing_name` pelo nome do objeto, substitua `certificate_ARN` pelo ARN do certificado e, em seguida, execute esse comando para separar o certificado do recurso do objeto.

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

      Se houver êxito, esse comando não retornará nada.

   1. Substitua `certificate_ID` pelo ID de certificado do comando anterior. O ID do certificado são os caracteres alfanuméricos que seguem `cert/` no ARN retornado pelo comando anterior. Em seguida, execute esse comando para excluir o recurso do certificado.

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

      Se houver êxito, esse comando não retornará nada.

1. Substitua `thing_name` pelo nome do objeto e, em seguida, execute esse comando para excluir o objeto.

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

   Se houver êxito, esse comando não retornará nada. 

### Limpe AWS os recursos
<a name="iot-dc-cleanup-cloud-aws"></a>

Esse procedimento ajuda você a identificar e remover outros AWS recursos que você criou ao concluir os tutoriais neste plano de aprendizado.


**Outros AWS recursos criados neste plano de aprendizado**  

| Tutorial | Tipo de atributo | Nome ou ID do recurso | 
| --- | --- | --- | 
|  [Tutorial: Demonstre ações remotas (trabalhos) com o AWS IoT Device Client](iot-dc-runjobs.md)  | Objetos do Amazon S3 | hello-world-job.json | 
|  [Tutorial: Demonstre ações remotas (trabalhos) com o AWS IoT Device Client](iot-dc-runjobs.md)  |  AWS IoT recursos de trabalho  | definido pelo usuário | 

**Para excluir os AWS recursos criados nesse plano de aprendizado**

1. Para excluir os trabalhos criados neste percurso de aprendizado

   1. Execute este comando para listar os trabalhos em seu Conta da AWS.

      ```
      aws iot list-jobs
      ```

      O comando retorna uma lista dos AWS IoT trabalhos em seu Conta da AWS e Região da AWS que se parece com isso.

      ```
      {
          "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. Para cada trabalho que você reconhece na lista como um trabalho que você criou neste plano de aprendizado, `jobId` substitua pelo `jobId` valor do trabalho a ser excluído e, em seguida, execute esse comando para excluir um AWS IoT trabalho.

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

      Se o comando for bem-sucedido, ele não retornará nada.

1. Para excluir os documentos de trabalho que você armazenou em um bucket do Amazon S3 neste percurso de aprendizado.

   1. Substitua `bucket` pelo nome do bucket que você usou e, em seguida, execute esse comando para listar os objetos no bucket do Amazon S3 que você usou.

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

      O comando retorna uma lista dos objetos do Amazon S3 no bucket que se parece com isso.

      ```
      {
          "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. Para cada objeto que você reconhece na lista como um objeto que você criou neste percurso de aprendizado, substitua `bucket` pelo valor nome do bucket e `key` pelo valor chave do objeto a ser excluído e, em seguida, execute esse comando para excluir um objeto do Amazon S3.

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

      Se o comando for bem-sucedido, ele não retornará nada.

Depois de excluir todos os AWS recursos e objetos que você criou ao concluir esse plano de aprendizado, você pode recomeçar e repetir os tutoriais.