

Aviso de fim do suporte: em 7 de outubro de 2026, AWS o suporte para o. AWS IoT Greengrass Version 1 Depois de 7 de outubro de 2026, você não poderá mais acessar os AWS IoT Greengrass V1 recursos. Para obter mais informações, visite [Migrar de AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html).

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á.

# Configure seu dispositivo para executar testes de IDT
<a name="device-config-setup"></a>

Para configurar seu dispositivo, você deve instalar AWS IoT Greengrass dependências, configurar o software AWS IoT Greengrass Core, configurar seu computador host para acessar seu dispositivo e configurar as permissões de usuário em seu dispositivo.

## Verifique AWS IoT Greengrass as dependências no dispositivo em teste
<a name="install-gg-dependencies"></a>

Antes que o IDT for AWS IoT Greengrass possa testar seus dispositivos, verifique se você configurou seu dispositivo conforme descrito em [Introdução ao AWS IoT Greengrass](https://docs.aws.amazon.com/greengrass/latest/developerguide/gg-gs.html). Para obter mais informações sobre as plataformas compatíveis, consulte [Plataformas compatíveis](https://docs.aws.amazon.com/greengrass/latest/developerguide/what-is-gg.html#gg-platforms).

## Configurar o AWS IoT Greengrass software
<a name="config-gg"></a>

O IDT for AWS IoT Greengrass testa a compatibilidade de seu dispositivo com uma versão específica do AWS IoT Greengrass. O IDT oferece duas opções para testes AWS IoT Greengrass em seus dispositivos:
+ Faça download e use uma versão do [software de núcleo do AWS IoT Greengrass](what-is-gg.md#gg-core-download-tab). O IDT instala o software para você.
+ Use uma versão do software AWS IoT Greengrass Core já instalada em seu dispositivo.

**nota**  
Cada versão do AWS IoT Greengrass tem uma versão IDT correspondente. Você deve baixar a versão do IDT que corresponde à versão que AWS IoT Greengrass você está usando.

As seções a seguir descrevem essas opções. Você só precisa fazer uma delas.

### Opção 1: baixar o software AWS IoT Greengrass principal e configurar o AWS IoT Device Tester para usá-lo
<a name="download-gg"></a>

Você pode baixar o software AWS IoT Greengrass principal na página de downloads do [software AWS IoT Greengrass principal](what-is-gg.md#gg-core-download-tab). 

1. Localize a arquitetura correta e distribuição do Linux e, em seguida selecione **Download (Fazer download)**.

1. Copie o arquivo tar.gz para `<device-tester-extract-location>/products/greengrass/ggc`.

**nota**  
Não altere o nome do arquivo AWS IoT Greengrass tar.gz. Não coloque vários arquivos nesse diretório para o mesmo sistema operacional e arquitetura. Por exemplo, a presença dos arquivos `greengrass-linux-armv7l-1.7.1.tar.gz` e `greengrass-linux-armv7l-1.8.1.tar.gz` nesse diretório fará com que os testes falhem.

### Opção 2: usar uma instalação existente do AWS IoT Greengrass com o AWS IoT Device Tester
<a name="existing-gg"></a>

Configure o IDT para testar o software AWS IoT Greengrass Core instalado em seu dispositivo adicionando o `greengrassLocation` atributo ao `device.json` arquivo na `<device-tester-extract-location>/configs` pasta. Por exemplo:

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

Para obter mais informações sobre o arquivo `device.json`, consulte [Configurar device.json](set-config.md#device-config).

Em dispositivos Linux, a localização padrão do software AWS IoT Greengrass Core é`/greengrass`.

**nota**  
Seu dispositivo deve ter uma instalação do software AWS IoT Greengrass Core que não tenha sido iniciada.  
Certifique-se de ter adicionado o usuário `ggc_user` e `ggc_group` no seu dispositivo. Para obter mais informações, consulte [Configuração de ambiente para o AWS IoT Greengrass](https://docs.aws.amazon.com/greengrass/latest/developerguide/module1.html).

## Configurar o computador host para acessar o dispositivo em teste
<a name="configure-host"></a>

O ITD é executado em seu computador host e deve ser capaz de usar o SSH para se conectar ao seu dispositivo. Há duas opções para permitir que o IDT obtenha acesso SSH aos dispositivos em teste:

1. Siga as instruções aqui para criar um par de chaves SSH e autorizar sua chave a fazer login no dispositivo em teste sem especificar uma senha.

1. Forneça um nome de usuário e uma senha para cada dispositivo no arquivo `device.json`. Para obter mais informações, consulte [Configurar device.json](set-config.md#device-config).

Você pode usar qualquer implementação SSL para criar uma chave SSH. As instruções a seguir mostram como usar o [SSH-KEYGEN ou o](https://www.ssh.com/ssh/keygen/) [Pu TTYgen](https://www.ssh.com/ssh/putty/windows/puttygen) (para Windows). Se você estiver usando outra implementação de SSL, consulte a documentação para essa implementação.

O IDT usa chaves SSH para autenticar com o dispositivo em teste. 

**Para criar uma chave SSH com SSH-KEYGEN**

1. Crie uma chave SSH.

   Você pode usar o comando **ssh-keygen** Open SSH para criar um par de chaves SSH. Se você já tem um par de chaves SSH em seu computador host, é uma prática recomendada criar um par de chaves SSH especificamente para IDT. Dessa forma, depois de concluir o teste, o computador host não poderá mais se conectar ao dispositivo sem inserir uma senha. Ele também permite que você restrinja o acesso ao dispositivo remoto apenas para aqueles que precisam.
**nota**  
O Windows não tem um cliente SSH instalado. Para obter informações sobre como instalar um cliente SSH no Windows, consulte [Fazer download do software cliente SSH](https://www.ssh.com/ssh/#sec-Download-client-software).

   O comando **ssh-keygen** solicita que você informe um nome e caminho para armazenar o par de chaves. Por padrão, os arquivos de pares de chaves são nomeados como `id_rsa` (chave privada) e `id_rsa.pub` (chave pública). No macOS e no Linux, o local padrão desses arquivos é `~/.ssh/`. No Windows, o local padrão é `C:\Users\<user-name>\.ssh`.

   Quando solicitado, insira uma frase-chave para proteger sua chave SSH. Para obter mais informações, consulte [Gerar uma chave SSH](https://www.ssh.com/ssh/keygen/).

1. Adição de chaves SSH autorizadas ao seu dispositivo em teste.

   O ITD deve usar sua chave privada SSH para fazer login no seu dispositivo em teste. Para autorizar sua chave privada SSH a fazer login no seu dispositivo em teste, use o comando **ssh-copy-id** do seu computador host. Esse comando adiciona sua chave pública ao arquivo `~/.ssh/authorized_keys` no seu dispositivo em teste. Por exemplo:

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

   Onde *remote-ssh-user* está o nome de usuário usado para fazer login no seu dispositivo em teste e *remote-device-ip* é o endereço IP do dispositivo em teste para executar testes. Por exemplo:

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

   Quando solicitado, insira a senha para o nome de usuário especificado no comando **ssh-copy-id**.

   **ssh-copy-id** supõe que a chave pública chama-se `id_rsa.pub` e está armazenada no local padrão (`~/.ssh/` no macOS e no Linux, e `C:\Users\<user-name>\.ssh` no Windows). Se você atribuiu à chave pública um nome diferente ou armazenou em um local diferente, você deve especificar o caminho para sua chave pública SSH usando a opção **-i** para **ssh-copy-id** (por exemplo, **ssh-copy-id -i \$1/my/path/myKey.pub**). Para obter mais informações sobre a criação de chaves SSH e a cópia de chaves públicas, consulte [SSH-COPY-ID](https://www.ssh.com/ssh/copy-id).

**Para criar uma chave SSH usando Pu TTYgen (somente Windows)**

1. Verifique se o servidor e o cliente OpenSSH estão instalados no dispositivo em teste. Para obter mais informações, consulte [OpenSSH](https://www.openssh.com/).

1. Instale o [Pu TTYgen](https://www.puttygen.com/) no seu dispositivo em teste.

1. Abra o PuTTYgen.

1. Selecione **Generate (Gerar)** e mova o cursor do mouse dentro da caixa para gerar uma chave privada.

1. No menu **Conversions (Conversões)**, selecione **Export OpenSSH key (Exportar chave OpenSSH)** e salve a chave privada com uma extensão de arquivo `.pem`.

1. Adicione a chave pública ao arquivo `/home/<user>/.ssh/authorized_keys` no dispositivo em teste.

   1. Copie o texto da chave pública da TTYgen janela Pu.

   1. Use o PuTTY para criar uma sessão no dispositivo em teste.

      1. Em um prompt de comando ou janela Windows Powershell, execute o seguinte comando:

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

      1. Quando solicitado, insira a senha do dispositivo.

      1. Use vi ou outro editor de texto para anexar a chave pública ao arquivo `/home/<user>/.ssh/authorized_keys` no dispositivo em teste.

1. Atualize o arquivo `device.json` com o nome de usuário, o endereço IP e o caminho para o arquivo da chave privada que você acabou de salvar no computador host para cada dispositivo em teste. Para obter mais informações, consulte [Configurar device.json](set-config.md#device-config). Você deve fornecer o caminho completo e o nome do arquivo para a chave privada e usar barras ('/'). Por exemplo, para o caminho do Windows `C:\DT\privatekey.pem`, use `C:/DT/privatekey.pem` no arquivo `device.json`. 

## Configurar permissões de usuário no dispositivo
<a name="root-access"></a>

O ITD executa operações em vários diretórios e arquivos em um dispositivo em teste. Algumas dessas operações exigem permissões elevadas (usando **sudo**). Para automatizar essas operações, o IDT for AWS IoT Greengrass deve ser capaz de executar comandos com sudo sem ser solicitado a fornecer uma senha.

Siga estas etapas no dispositivo em teste para permitir o acesso ao sudo sem receber uma solicitação de senha. 

**nota**  
`username` refere-se ao usuário SSH usado pelo IDT para acessar o dispositivo em teste.

**Para adicionar o usuário ao grupo sudo**

1. No dispositivo em teste, execute `sudo usermod -aG sudo <username>`.

1. Saia e faça login novamente para que as alterações entrem em vigor.

1. Para verificar se o nome de usuário foi adicionado com êxito, execute **sudo echo test**. Se você não receber uma solicitação de senha, o usuário foi configurado corretamente.

1. Abra o arquivo `/etc/sudoers` e adicione a linha a seguir ao final do arquivo:

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

## Configurar seu dispositivo para testar atributos opcionais
<a name="optional-feature-config"></a>

Os tópicos a seguir descrevem como configurar seus dispositivos de modo a executar testes IDT para atributos opcionais. Siga os passos de configuração a seguir apenas se você quiser testar estes recursos. Caso contrário, avance para [Defina as configurações de IDT para executar o pacote de AWS IoT Greengrass qualificação](set-config.md).

**Topics**
+ [Verifique AWS IoT Greengrass as dependências no dispositivo em teste](#install-gg-dependencies)
+ [Configurar o AWS IoT Greengrass software](#config-gg)
+ [Configurar o computador host para acessar o dispositivo em teste](#configure-host)
+ [Configurar permissões de usuário no dispositivo](#root-access)
+ [Configurar seu dispositivo para testar atributos opcionais](#optional-feature-config)
+ [Opcional: Configurando seu contêiner Docker para IDT para AWS IoT Greengrass](docker-config-setup.md)
+ [Opcional: configurar o dispositivo para qualificação de ML](idt-ml-qualification.md)

# Opcional: Configurando seu contêiner Docker para IDT para AWS IoT Greengrass
<a name="docker-config-setup"></a>

AWS IoT Greengrass fornece uma imagem do Docker e um Dockerfile que facilitam a execução do software AWS IoT Greengrass Core em um contêiner do Docker. Depois de configurar o AWS IoT Greengrass contêiner, você pode executar testes de IDT. No momento, somente arquiteturas x86\$164 do Docker são compatíveis com a execução do IDT para o AWS IoT Greengrass.

Esse atributo exige o IDT v2.3.0 ou posterior.

O processo de configuração do contêiner Docker para executar testes de IDT depende se você usa a imagem do Docker ou o Dockerfile fornecido pelo. AWS IoT Greengrass
+ [Use a imagem do Docker](#docker-config-setup-docker-image). A imagem do Docker tem o software AWS IoT Greengrass principal e as dependências instalados.
+ [Use o arquivo do Docker](#docker-config-setup-dockerfile). O Dockerfile contém o código-fonte que você pode usar para criar imagens de AWS IoT Greengrass contêiner personalizadas. A imagem pode ser modificada para funcionar com diferentes arquiteturas de plataforma ou para reduzir o tamanho da imagem.
**nota**  
AWS IoT Greengrass não fornece Dockerfiles ou imagens Docker para a versão 1.11.1 AWS IoT Greengrass do software principal. Para executar testes de IDT em suas próprias imagens de contêiner personalizadas, sua imagem deve incluir as dependências definidas no Dockerfile fornecido pela. AWS IoT Greengrass

Os seguintes recursos não estão disponíveis quando você executa AWS IoT Greengrass em um contêiner do Docker:<a name="docker-image-unsupported-features"></a>
+ [Conectores](connectors.md) executados no modo de **contêiner do Greengrass**. Para executar um conector em um contêiner do Docker, o conector deve ser executado no modo **Sem contêiner**. Para localizar conectores compatíveis com o modo **Sem contêiner** consulte [Conectores do Greengrass fornecidos pela AWS](connectors-list.md). Alguns desses conectores têm um parâmetro de modo de isolamento que você deve definir como **Sem contêiner**.
+ [Recursos de volume e dispositivo locais](access-local-resources.md). Suas funções do Lambda definidas pelo usuário executadas no contêiner do Docker devem acessar dispositivos e volumes diretamente no núcleo.

## Configure a imagem do Docker fornecida pelo AWS IoT Greengrass
<a name="docker-config-setup-docker-image"></a>

Siga estas etapas para configurar a imagem do AWS IoT Greengrass Docker para executar testes de IDT.

**Pré-requisitos**

Antes de começar este tutorial, você deve fazer o seguinte.<a name="docker-image-prereq-list"></a>
+ Você deve instalar o software e as versões a seguir em seu computador host com base na versão AWS Command Line Interface (AWS CLI) que você escolher.

------
#### [ AWS CLI version 2 ]
  + [Docker](https://docs.docker.com/install/), versão 18.09 ou posterior. Versões anteriores também podem funcionar, mas recomendamos a versão 18.09 ou posterior.
  + AWS CLI versão 2.0.0 ou posterior.
    + Para instalar a AWS CLI versão 2, consulte [Instalando a AWS CLI versão 2](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html).
    + Para configurar o AWS CLI, consulte [Configurando o. AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)
**nota**  
Para atualizar para uma AWS CLI versão posterior 2 em um computador Windows, você deve repetir o processo de [instalação do MSI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2-windows.html).

------
#### [ AWS CLI version 1 ]
  + [Docker](https://docs.docker.com/install/), versão 18.09 ou posterior. Versões anteriores também podem funcionar, mas recomendamos a versão 18.09 ou posterior.
  + [Python](https://www.python.org/downloads/), versão 3.6 ou posterior.
  + [pip](https://pip.pypa.io/en/stable/installing) versão 18.1 ou posterior.
  + AWS CLI versão 1.17.10 ou posterior
    + Para instalar a AWS CLI versão 1, consulte [Instalando a AWS CLI versão 1](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html).
    + Para configurar o AWS CLI, consulte [Configurando o. AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)
    + Para atualizar para a versão mais recente da AWS CLI versão 1, execute o comando a seguir.

      ```
      pip install awscli --upgrade --user
      ```
**nota**  
Se você usa a [instalação MSI](https://docs.aws.amazon.com/cli/latest/userguide/install-windows.html#msi-on-windows) da AWS CLI versão 1 no Windows, esteja ciente do seguinte:  
Se a instalação da AWS CLI versão 1 falhar ao instalar o botocore, tente usar a instalação do [Python](https://docs.aws.amazon.com/cli/latest/userguide/awscli-install-windows.html#awscli-install-windows-pip) e do pip.
Para atualizar para uma AWS CLI versão posterior 1, você deve repetir o processo de instalação do MSI.

------
+ Para acessar os recursos do Amazon Elastic Container Registry (Amazon ECR), você deve conceder a seguinte permissão. 
  + O Amazon ECR exige que os usuários concedam a `ecr:GetAuthorizationToken` permissão por meio de uma política AWS Identity and Access Management (IAM) antes de poderem se autenticar em um registro e enviar ou extrair imagens de um repositório do Amazon ECR. Para obter mais informações, consulte [Exemplos de políticas do repositório do Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-policy-examples.html) e [Acessando um repositório do 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) no *Guia do usuário do Amazon Elastic Container Registry*.

 

1. Faça download da imagem do Docker e configure o contêiner. Você pode fazer download da imagem pré-criada no [Hub do Docker](https://hub.docker.com/r/amazon/aws-iot-greengrass) ou no [Amazon Elastic Container Registry](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html) (Amazon ECR) e executá-la em plataformas do Windows, macOS e Linux (x86\$164).

   Para fazer download da imagem do Docker do Amazon ECR, conclua todas as etapas em [Etapa 1: Obtenha a imagem do AWS IoT Greengrass contêiner do Amazon ECR](run-gg-in-docker-container.md#docker-pull-image). Depois, retorne a este tópico para continuar a configuração.

1. <a name="docker-linux-non-root"></a>Somente usuários do Linux: verifique se o usuário que executa o IDT tem permissão para executar comandos do Docker. Para obter mais informações, consulte [Manage Docker as a non-root user](https://docs.docker.com/install/linux/linux-postinstall/#manage-docker-as-a-non-root-user) na documentação do Docker.

1. <a name="docker-run-gg-container"></a>Para executar o AWS IoT Greengrass contêiner, use o comando para seu sistema operacional:

------
#### [ 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>
   ```
   + *<host-path-to-kernel-config-file>*Substitua pelo caminho para o arquivo de configuração do kernel no host e *<container-path>* pelo caminho em que o volume está montado no contêiner.

     O arquivo de configuração do kernel no host geralmente está localizado em `/proc/config.gz` ou em `/boot/config-<kernel-release-date>`. Você pode correr `uname -r` para encontrar o *<kernel-release-date>* valor.

     **Exemplo:** para montar o arquivo de configuração de `/boot/config-<kernel-release-date>`

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

     **Exemplo:** para montar o arquivo de configuração de `proc/config.gz`

     ```
     -v /proc/config.gz:/proc/config.gz \
     ```
   + Substitua*<image-repository>*: *<tag>* no comando pelo nome do repositório e pela tag da imagem de destino.

     **Exemplo:** Para apontar para a versão mais recente do software AWS IoT Greengrass Core

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

     Para obter a lista de imagens do AWS IoT Greengrass Docker, execute o comando a seguir.

     ```
     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>
   ```
   + Substitua*<image-repository>*: *<tag>* no comando pelo nome do repositório e pela tag da imagem de destino.

     **Exemplo:** Para apontar para a versão mais recente do software AWS IoT Greengrass Core

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

     Para obter a lista de imagens do AWS IoT Greengrass Docker, execute o seguinte comando:

     ```
     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>
   ```
   + Substitua*<image-repository>*: *<tag>* no comando pelo nome do repositório e pela tag da imagem de destino.

     **Exemplo:** Para apontar para a versão mais recente do software AWS IoT Greengrass Core

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

     Para obter a lista de imagens do AWS IoT Greengrass Docker, execute o seguinte comando:

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

------
**Importante**  
Ao testar com o IDT, não inclua o `--entrypoint /greengrass-entrypoint.sh \` argumento usado para executar a imagem para AWS IoT Greengrass uso geral.

1. <a name="docker-config-next-steps"></a>Próxima etapa: [configure suas AWS credenciais e seu `device.json` arquivo](set-config.md).

## Configure o dockerfile fornecido pelo AWS IoT Greengrass
<a name="docker-config-setup-dockerfile"></a>

Siga estas etapas para configurar a imagem do Docker criada a partir do AWS IoT Greengrass Dockerfile para executar testes de IDT.

1. Em [AWS IoT Greengrass Software Docker](what-is-gg.md#gg-docker-download), faça download do pacote do arquivo do Docker para o computador host e extraia-o.

1. Abra o `README.md`. As próximas três etapas se referem a seções desse arquivo.

1. Verifique se você atende aos requisitos na seção **Pré-requisitos**.

1. Somente para usuários Linux: conclua as etapas **Ativar proteção de links simbólicos e hardlinks** e **Ativar encaminhamento IPv4 de rede**.

1. Para criar a imagem do Docker, conclua todas as etapas na **Etapa 1. Crie a imagem do AWS IoT Greengrass Docker**. Depois, retorne a este tópico para continuar a configuração.

1. <a name="docker-run-gg-container"></a>Para executar o AWS IoT Greengrass contêiner, use o comando para seu sistema operacional:

------
#### [ 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>
   ```
   + *<host-path-to-kernel-config-file>*Substitua pelo caminho para o arquivo de configuração do kernel no host e *<container-path>* pelo caminho em que o volume está montado no contêiner.

     O arquivo de configuração do kernel no host geralmente está localizado em `/proc/config.gz` ou em `/boot/config-<kernel-release-date>`. Você pode correr `uname -r` para encontrar o *<kernel-release-date>* valor.

     **Exemplo:** para montar o arquivo de configuração de `/boot/config-<kernel-release-date>`

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

     **Exemplo:** para montar o arquivo de configuração de `proc/config.gz`

     ```
     -v /proc/config.gz:/proc/config.gz \
     ```
   + Substitua*<image-repository>*: *<tag>* no comando pelo nome do repositório e pela tag da imagem de destino.

     **Exemplo:** Para apontar para a versão mais recente do software AWS IoT Greengrass Core

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

     Para obter a lista de imagens do AWS IoT Greengrass Docker, execute o comando a seguir.

     ```
     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>
   ```
   + Substitua*<image-repository>*: *<tag>* no comando pelo nome do repositório e pela tag da imagem de destino.

     **Exemplo:** Para apontar para a versão mais recente do software AWS IoT Greengrass Core

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

     Para obter a lista de imagens do AWS IoT Greengrass Docker, execute o seguinte comando:

     ```
     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>
   ```
   + Substitua*<image-repository>*: *<tag>* no comando pelo nome do repositório e pela tag da imagem de destino.

     **Exemplo:** Para apontar para a versão mais recente do software AWS IoT Greengrass Core

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

     Para obter a lista de imagens do AWS IoT Greengrass Docker, execute o seguinte comando:

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

------
**Importante**  
Ao testar com o IDT, não inclua o `--entrypoint /greengrass-entrypoint.sh \` argumento usado para executar a imagem para AWS IoT Greengrass uso geral.

1. <a name="docker-config-next-steps"></a>Próxima etapa: [configure suas AWS credenciais e seu `device.json` arquivo](set-config.md).

## Solução de problemas na configuração do contêiner Docker para o IDT para AWS IoT Greengrass
<a name="docker-config-setup-troubleshooting"></a>

Use as informações a seguir para ajudar a solucionar problemas com a execução de um contêiner Docker para IDT para testes. AWS IoT Greengrass 

### AVISO: Erro ao carregar configfile:/home/user/.docker/config.json - stat /home/<user>/.docker/config.json: permissão negada
<a name="docker-config-permissions-linux"></a>

Se você receber esse erro ao executar comandos `docker` no Linux, execute o comando a seguir. *<user>*Substitua o comando a seguir pelo usuário que executa o IDT.

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

# Opcional: configurar o dispositivo para qualificação de ML
<a name="idt-ml-qualification"></a>

O IDT for AWS IoT Greengrass fornece testes de qualificação de aprendizado de máquina (ML) para validar se seus dispositivos podem realizar inferência de ML localmente usando modelos treinados na nuvem.

Para executar testes de qualificação de ML, primeiro é preciso configurar os dispositivos conforme descrito em [Configure seu dispositivo para executar testes de IDT](device-config-setup.md). Depois, siga as etapas deste tópico para instalar dependências para as estruturas de ML que você deseja executar.

É necessária a versão 3.1.0 ou posterior do IDT para executar testes de qualificação de ML.

## Instalar dependências de estrutura do ML
<a name="ml-qualification-framework-dependencies"></a>

Todas as dependências de estrutura do ML devem ser instaladas no diretório `/usr/local/lib/python3.x/site-packages`. Para certificar-se de que estão instaladas no diretório correto, é recomendado usar permissões raiz `sudo` ao instalar as dependências. Os ambientes virtuais não oferecem suporte a testes de qualificação.

**nota**  
Se você estiver testando funções do Lambda executadas com [conteinerização](lambda-group-config.md#lambda-containerization-considerations) (no modo de **Contêiner do Greengrass**, a criação de symlinks para bibliotecas Python em `/usr/local/lib/python3.x` não é compatível. Para evitar erros, instale as dependências no diretório correto.

Siga as etapas para instalar as dependências na estrutura de destino:
+ [Instalar MXNet dependências](#ml-qualification-mxnet-dependencies)
+ [Instalar TensorFlow dependências](#ml-qualification-tensorflow-dependencies)
+ [Instalar dependências do DLR](#ml-qualification-dlr-dependencies)

 

## Instalar dependências do Apache MXNet
<a name="ml-qualification-mxnet-dependencies"></a>

<a name="test-framework-dependencies"></a>Os testes de qualificação do IDT para esta estrutura têm as seguintes dependências:
+ <a name="ml-qualification-python-req"></a>Python 3.6 ou Python 3.7.
**nota**  <a name="python-symlink-command"></a>
Se estiver usando Python 3.6, você deve criar um symblink de Python 3.7 para binários Python 3.6. Isso configura seu dispositivo para atender ao requisito Python para AWS IoT Greengrass. Por exemplo:  

  ```
  sudo ln -s path-to-python-3.6/python3.6 path-to-python-3.7/python3.7
  ```
+ Apache MXNet v1.2.1 ou posterior.
+ NumPy. A versão deve ser compatível com a sua MXNet versão.

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

Siga as instruções na MXNet documentação para [instalar MXNet](https://mxnet.apache.org/get_started/?platform=linux&language=python&processor=cpu&environ=pip&).

**nota**  
<a name="run-python3-commands"></a>Se o Python 2.x e o Python 3.x estiverem instalados no seu dispositivo, use o Python 3.x nos comandos executados para instalar as dependências.

### Validando a instalação MXNet
<a name="ml-qualification-mxnet-validate"></a>

Escolha uma das opções a seguir para validar a MXNet instalação.

#### Opção 1: usar SSH para o seu dispositivo e executar scripts
<a name="ml-qualification-validate-mxnet-option-1"></a>

1. <a name="ssh-validate-framework-install-ssh"></a>SSH para o seu dispositivo.

1. <a name="ssh-validate-framework-install-run-scripts"></a>Execute o script a seguir para verificar se as dependências estão instaladas corretamente.

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

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

   <a name="ssh-passed-mldependencies"></a>A saída imprime o número da versão e o script deve sair sem erro.

#### Opção 2: executar o teste de dependência de IDT
<a name="ml-qualification-validate-mxnet-option-2"></a>

1. <a name="idt-validate-framework-install-check-config"></a>Certifique-se de que `device.json` esteja configurado para qualificação de ML. Para obter mais informações, consulte [Configurar device.json para qualificação de ML](set-config.md#device-json-ml-qualification).

1. <a name="idt-validate-framework-install-run-test"></a>Execute o teste de dependências para a estrutura.

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

   <a name="idt-passed-mldependencies"></a>O resumo do teste exibe um resultado `PASSED` para `mldependencies`.

 

## Instalar TensorFlow dependências
<a name="ml-qualification-tensorflow-dependencies"></a>

<a name="test-framework-dependencies"></a>Os testes de qualificação do IDT para esta estrutura têm as seguintes dependências:
+ <a name="ml-qualification-python-req"></a>Python 3.6 ou Python 3.7.
**nota**  <a name="python-symlink-command"></a>
Se estiver usando Python 3.6, você deve criar um symblink de Python 3.7 para binários Python 3.6. Isso configura seu dispositivo para atender ao requisito Python para AWS IoT Greengrass. Por exemplo:  

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

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

Siga as instruções na TensorFlow documentação para instalar o TensorFlow 1.x [com pip](https://www.tensorflow.org/install/pip) ou a [partir da](https://www.tensorflow.org/install/source) fonte.

**nota**  
<a name="run-python3-commands"></a>Se o Python 2.x e o Python 3.x estiverem instalados no seu dispositivo, use o Python 3.x nos comandos executados para instalar as dependências.

### Validando a instalação TensorFlow
<a name="ml-qualification-tensorflow-validate"></a>

Escolha uma das opções a seguir para validar a TensorFlow instalação.

#### Opção 1: usar SSH para o seu dispositivo e executar um script
<a name="ml-qualification-validate-tensorflow-option-1"></a>

1. <a name="ssh-validate-framework-install-ssh"></a>SSH para o seu dispositivo.

1. Execute o script a seguir para verificar se a dependência está instalada corretamente.

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

   <a name="ssh-passed-mldependencies"></a>A saída imprime o número da versão e o script deve sair sem erro.

#### Opção 2: executar o teste de dependência de IDT
<a name="ml-qualification-validate-tensorflow-option-2"></a>

1. <a name="idt-validate-framework-install-check-config"></a>Certifique-se de que `device.json` esteja configurado para qualificação de ML. Para obter mais informações, consulte [Configurar device.json para qualificação de ML](set-config.md#device-json-ml-qualification).

1. <a name="idt-validate-framework-install-run-test"></a>Execute o teste de dependências para a estrutura.

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

   <a name="idt-passed-mldependencies"></a>O resumo do teste exibe um resultado `PASSED` para `mldependencies`.

 

## Instale dependências do Amazon SageMaker AI Neo Deep Learning Runtime (DLR)
<a name="ml-qualification-dlr-dependencies"></a>

<a name="test-framework-dependencies"></a>Os testes de qualificação do IDT para esta estrutura têm as seguintes dependências:
+ <a name="ml-qualification-python-req"></a>Python 3.6 ou Python 3.7.
**nota**  <a name="python-symlink-command"></a>
Se estiver usando Python 3.6, você deve criar um symblink de Python 3.7 para binários Python 3.6. Isso configura seu dispositivo para atender ao requisito Python para AWS IoT Greengrass. Por exemplo:  

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

Depois de instalar as dependências de teste do DLR, é preciso [compilar o modelo](#ml-qualification-dlr-compile-model).

### Instalar o DLR
<a name="ml-qualification-dlr-install"></a>

Siga as instruções na documentação do DLR para [instalar o Neo DLR](https://neo-ai-dlr.readthedocs.io/en/latest/install.html#building-on-linux).

**nota**  
<a name="run-python3-commands"></a>Se o Python 2.x e o Python 3.x estiverem instalados no seu dispositivo, use o Python 3.x nos comandos executados para instalar as dependências.

### Validar a instalação do DLR
<a name="ml-qualification-dlr-validate"></a>

Selecione uma das opções a seguir para validar a instalação do DLR.

#### Opção 1: usar SSH para o seu dispositivo e executar scripts
<a name="ml-qualification-validate-dlr-option-1"></a>

1. <a name="ssh-validate-framework-install-ssh"></a>SSH para o seu dispositivo.

1. <a name="ssh-validate-framework-install-run-scripts"></a>Execute o script a seguir para verificar se as dependências estão instaladas corretamente.

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

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

   <a name="ssh-passed-mldependencies"></a>A saída imprime o número da versão e o script deve sair sem erro.

#### Opção 2: executar o teste de dependência de IDT
<a name="ml-qualification-validate-dlr-option-2"></a>

1. <a name="idt-validate-framework-install-check-config"></a>Certifique-se de que `device.json` esteja configurado para qualificação de ML. Para obter mais informações, consulte [Configurar device.json para qualificação de ML](set-config.md#device-json-ml-qualification).

1. <a name="idt-validate-framework-install-run-test"></a>Execute o teste de dependências para a estrutura.

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

   <a name="idt-passed-mldependencies"></a>O resumo do teste exibe um resultado `PASSED` para `mldependencies`.

## Compilar o modelo de DLR
<a name="ml-qualification-dlr-compile-model"></a>

Você deve compilar o modelo de DLR antes de usá-lo para testes de qualificação de ML. Selecione uma das seguintes opções para saber mais detalhes:

### Opção 1: usar o Amazon SageMaker AI para compilar o modelo
<a name="ml-qualification-compile-dlr-option-1"></a>

Siga estas etapas para usar a SageMaker IA para compilar o modelo de ML fornecido pelo IDT. Este modelo é pré-treinado com o MXNet Apache.

1. Verifique se seu tipo de dispositivo é compatível com SageMaker IA. Para obter mais informações, consulte as [opções do dispositivo de destino](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OutputConfig.html#sagemaker-Type-OutputConfig-TargetDevice) na *Amazon SageMaker AI API Reference*. Se o seu tipo de dispositivo não for compatível atualmente com SageMaker IA, siga as etapas em[Opção 2: usar o TVM para compilar o modelo de DLR](#ml-qualification-compile-dlr-option-2).
**nota**  
A execução do teste DLR com um modelo compilado pela SageMaker IA pode levar de 4 a 5 minutos. Não interrompa o IDT durante esse período.

1. <a name="compile-dlr-download-uncompiled-model"></a>Baixe o arquivo tarball que contém o MXNet modelo pré-treinado e não compilado para 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>Descompacte o tarball. Esse comando gera a seguinte estrutura de diretório.  
![\[O diretório resnet18 contém três arquivos.\]](http://docs.aws.amazon.com/pt_br/greengrass/v1/developerguide/images/idt/idt-ml-qualification-dlr-uncompiled.png)

1. Mova o arquivo `synset.txt` do diretório `resnet18` para outro local. Anote o novo local. Posteriormente, copie este arquivo para o diretório do modelo compilado.

1. Compacte o conteúdo do diretório `resnet18`.

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

1. Faça o upload do arquivo compactado em um bucket do Amazon S3 no Conta da AWS seu e, em seguida, siga as etapas [em Compilar um modelo (console) para criar um trabalho de compilação](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-job-compilation-console.html).

   1. Em **Configuração de entrada**, use os seguintes valores:
      + Em **Configuração de dados de entrada**, digite `{"data": [1, 3, 224, 224]}`.
      + Em **Estrutura de machine learning**, selecione `MXNet`.

   1. Em **Configuração de saída**, use os seguintes valores:
      + Em **Local de saída do S3**, insira o caminho para o bucket do Amazon S3 ou a pasta onde deseja armazenar o modelo compilado.
      + Em **Dispositivo de destino**, selecione o tipo de dispositivo.

1. Faça download do modelo compilado do local de saída especificado e descompacte o arquivo.

1. Copie `synset.txt` para o diretório do modelo compilado.

1. Altere o nome do diretório do modelo compilado para `resnet18`.

   O diretório do modelo compilado deve ter a seguinte estrutura de diretório.  
![\[O diretório do modelo compilado resnet18 contém quatro arquivos.\]](http://docs.aws.amazon.com/pt_br/greengrass/v1/developerguide/images/idt/idt-ml-qualification-dlr-compiled-sm.png)

### Opção 2: usar o TVM para compilar o modelo de DLR
<a name="ml-qualification-compile-dlr-option-2"></a>

Siga estas etapas para usar o TVM para compilar o modelo de ML fornecido pelo IDT. Esse modelo é pré-treinado com o Apache MXNet, portanto, você deve instalá-lo MXNet no computador ou dispositivo em que você compila o modelo. Para instalar MXNet, siga as instruções na [ MXNet documentação](https://mxnet.apache.org/get_started/?platform=linux&language=python&processor=cpu&environ=pip&).

**nota**  
Recomendamos que você compile o modelo no dispositivo de destino. Essa prática é opcional, mas pode ajudar a garantir a compatibilidade e mitigar possíveis problemas.

 

1. <a name="compile-dlr-download-uncompiled-model"></a>Baixe o arquivo tarball que contém o MXNet modelo pré-treinado e não compilado para 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>Descompacte o tarball. Esse comando gera a seguinte estrutura de diretório.  
![\[O diretório resnet18 contém três arquivos.\]](http://docs.aws.amazon.com/pt_br/greengrass/v1/developerguide/images/idt/idt-ml-qualification-dlr-uncompiled.png)

1. Siga as instruções na documentação do TVM para [criar e instalar o TVM da origem para a sua plataforma](https://docs.tvm.ai/install/from_source.html).

1. Depois de criar o TVM, execute a compilação do TVM para o modelo resnet18. As etapas a seguir são baseadas no [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) na documentação do TVM.

   1. Abra o arquivo `relay_quick_start.py` a partir do repositório do TVM clonado.

   1. Atualize o código que [define uma rede neural em retransmissão](https://tvm.apache.org/docs/tutorial/relay_quick_start.html#define-neural-network-in-relay). Você pode usar uma das opções a seguir:
      + Opção 1: usar `mxnet.gluon.model_zoo.vision.get_model` para obter o módulo e os parâmetros de retransmissão:

        ```
        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})
        ```
      + Opção 2: copiar os seguintes arquivos do modelo não compilado que você baixou na etapa 1 para o mesmo diretório que o arquivo `relay_quick_start.py`. Esses arquivos contêm o módulo e os parâmetros de retransmissão.
        + `resnet18v1-symbol.json`
        + `resnet18v1-0000.params`

   1. Atualize o código que [salva e carrega o módulo compilado](https://tvm.apache.org/docs/tutorial/relay_quick_start.html#save-and-load-compiled-module) para usar o código a seguir.

      ```
      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. Crie o modelo:

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

      Este comando gera os seguintes arquivos.
      + `deploy_graph.json`
      + `deploy_lib.so`
      + `deploy_param.params`

1. Copie os arquivos de modelo gerados em um diretório chamado `resnet18`. Este é o diretório do modelo compilado.

1. Copie o diretório do modelo compilado para o computador host. Depois, copie o arquivo `synset.txt` do modelo não compilado que você baixou na etapa 1 para o diretório do modelo compilado.

   O diretório do modelo compilado deve ter a seguinte estrutura de diretório.  
![\[O diretório do modelo compilado resnet18 contém quatro arquivos.\]](http://docs.aws.amazon.com/pt_br/greengrass/v1/developerguide/images/idt/idt-ml-qualification-dlr-compiled-tvm.png)

Em seguida, [configure suas AWS credenciais e seu `device.json` arquivo](set-config.md).