

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

# Defina as configurações de IDT para executar o pacote de AWS IoT Greengrass qualificação
<a name="set-config"></a>

Antes de executar os testes, você deve definir as configurações de AWS credenciais e dispositivos no computador host.

## Configure suas AWS credenciais
<a name="cfg-aws-gg"></a>

Você deve configurar suas credenciais de usuário do IAM no arquivo `<device-tester-extract-location> /configs/config.json`. Use as credenciais do IDT para o AWS IoT Greengrass usuário criado em. [Crie e configure um Conta da AWS](dev-tst-prereqs.md#config-aws-account-for-idt) Você pode especificar suas credenciais de uma das seguintes formas:
+ Arquivo de credenciais
+ Variáveis de ambiente

### Configurar AWS credenciais com um arquivo de credenciais
<a name="config-cred-file"></a>

O IDT usa o mesmo arquivo de credenciais que a AWS CLI. Para obter mais informações, consulte [Arquivos de configuração e credenciais](https://docs.aws.amazon.com/cli/latest/userguide/cli-config-files.html).

O local do arquivo de credenciais varia de acordo com o sistema operacional que você está usando:
+ macOS, Linux: `~/.aws/credentials`
+ Windows: `C:\Users\UserName\.aws\credentials`

Adicione suas AWS credenciais ao `credentials` arquivo no seguinte formato:

```
[default]
aws_access_key_id = <your_access_key_id>
aws_secret_access_key = <your_secret_access_key>
```

Para configurar o IDT AWS IoT Greengrass para usar AWS as credenciais do seu `credentials` arquivo, edite seu `config.json` arquivo da seguinte forma:

```
{
	"awsRegion": "us-west-2",
	"auth": {
		"method": "file",
		"credentials": {
			"profile": "default"
		}
	}
}
```

**nota**  
Se você não usar o `default` AWS perfil, não se esqueça de alterar o nome do perfil no seu `config.json` arquivo. Para obter mais informações, consulte [Perfis nomeados](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html).

### Configurar AWS credenciais com variáveis de ambiente
<a name="config-env-vars"></a>

As variáveis de ambiente são variáveis mantidas pelo sistema operacional e usadas pelos comandos do sistema. Elas não serão salvas se você fechar a sessão SSH. O IDT for AWS IoT Greengrass pode usar as variáveis de `AWS_SECRET_ACCESS_KEY` ambiente `AWS_ACCESS_KEY_ID` e para armazenar suas AWS credenciais.

Para definir essas variáveis no Linux, macOS ou Unix, use :**export**

```
export AWS_ACCESS_KEY_ID=<your_access_key_id>
export AWS_SECRET_ACCESS_KEY=<your_secret_access_key>
```

Para definir essas variáveis no Windows, use :**set**

```
set AWS_ACCESS_KEY_ID=<your_access_key_id>
set AWS_SECRET_ACCESS_KEY=<your_secret_access_key>
```

Para configurar o IDT para usar as variáveis de ambiente, edite a seção `auth` no seu arquivo `config.json`. Exemplo:

```
{
	"awsRegion": "us-west-2",
	"auth": {
		"method": "environment"
	}
}
```

## Configurar device.json
<a name="device-config"></a>

Além das AWS credenciais, o IDT for AWS IoT Greengrass precisa de informações sobre os dispositivos nos quais os testes são executados (por exemplo, endereço IP, informações de login, sistema operacional e arquitetura da CPU).

Você deve fornecer essas informações usando o modelo `device.json` localizado em ` <device_tester_extract_location>/configs/device.json`:

------
#### [ Physical device ]

```
[
  {
    "id": "<pool-id>",
    "sku": "<sku>",
    "features": [
      {
        "name": "os",
        "value": "linux | ubuntu | openwrt"
      },
      {
        "name": "arch",
        "value": "x86_64 | armv6l | armv7l | aarch64"
      },
      {
        "name": "container",
        "value": "yes | no"
      },
      {
        "name": "docker",
        "value": "yes | no"
      },
      {
        "name": "streamManagement",
        "value": "yes | no"
      },
      {
        "name": "hsi",
        "value": "yes | no"
      },
      {
        "name": "ml",
        "value": "mxnet | tensorflow | dlr | mxnet,dlr,tensorflow | no"
      },
      *********** Remove the section below if the device is not qualifying for ML **************,
      {
        "name": "mlLambdaContainerizationMode",
        "value": "container | process | both"
      },
      {
        "name": "processor",
        "value": "cpu | gpu"
      },
      ******************************************************************************************
    ],
    *********** Remove the section below if the device is not qualifying for HSI ***************
    "hsm": {
      "p11Provider": "/path/to/pkcs11ProviderLibrary",
      "slotLabel": "<slot_label>",
      "slotUserPin": "<slot_pin>",
      "privateKeyLabel": "<key_label>",
      "openSSLEngine": "/path/to/openssl/engine"
    },
    ********************************************************************************************
    *********** Remove the section below if the device is not qualifying for ML ****************
    "machineLearning": {
      "dlrModelPath": "/path/to/compiled/dlr/model",
      "environmentVariables": [
        {
          "key": "<environment-variable-name>",
          "value": "<Path:$PATH>"
        }
      ],
      "deviceResources": [
        {
          "name": "<resource-name>",
          "path": "<resource-path>",
          "type": "device | volume"
        }
      ]
    },
    ******************************************************************************************
    "kernelConfigLocation": "",
    "greengrassLocation": "",
    "devices": [
      {
        "id": "<device-id>",
        "connectivity": {
          "protocol": "ssh",
          "ip": "<ip-address>",
          "port": 22,
          "auth": {
            "method": "pki | password",
            "credentials": {
              "user": "<user-name>",
              "privKeyPath": "/path/to/private/key",
              "password": "<password>"
            }
          }
        }
      }
    ]
  }
]
```

**nota**  
Especifique `privKeyPath` somente se `method` estiver definido como `pki`.  
Especifique `password` somente se `method` estiver definido como `password`.

------
#### [ Docker container ]

```
[
  {
    "id": "<pool-id>",
    "sku": "<sku>",
    "features": [
      {
        "name": "os",
        "value": "linux | ubuntu | openwrt"
      },
      {
        "name": "arch",
        "value": "x86_64"
      },
      {
        "name": "container",
        "value": "no"
      },
      {
        "name": "docker",
        "value": "no"
      },
      {
        "name": "streamManagement",
        "value": "yes | no"
      },
      {
        "name": "hsi",
        "value": "no"
      },
      {
        "name": "ml",
        "value": "mxnet | tensorflow | dlr | mxnet,dlr,tensorflow | no"
      },
      *********** Remove the section below if the device is not qualifying for ML **************,
      {
        "name": "mlLambdaContainerizationMode",
        "value": "process"
      },
      {
        "name": "processor",
        "value": "cpu | gpu"
      },
      ******************************************************************************************
    ],
    *********** Remove the section below if the device is not qualifying for ML ****************
    "machineLearning": {
      "dlrModelPath": "/path/to/compiled/dlr/model",
      "environmentVariables": [
        {
          "key": "<environment-variable-name>",
          "value": "<Path:$PATH>"
        }
      ],
      "deviceResources": [
        {
          "name": "<resource-name>",
          "path": "<resource-path>",
          "type": "device | volume"
        }
      ]
    },
    ******************************************************************************************
    "kernelConfigLocation": "",
    "greengrassLocation": "",
    "devices": [
      {
        "id": "<device-id>",
        "connectivity": {
          "protocol": "docker",
          "containerId": "<container-name | container-id>",
          "containerUser": "<user>"
        }
      }
    ]
  }
]
```

------

Todos os campos que contêm valores são necessários, conforme descrito aqui:

`id`  
Um ID alfanumérico definido pelo usuário que identifica uma coleção de dispositivos chamada de *grupo de dispositivos*. Os dispositivos que pertencem a um grupo devem ter hardware idêntico. Quando um conjunto de testes é executado, os dispositivos do grupo são usados para paralelizar a workload. Vários dispositivos são usados para executar testes diferentes.

`sku`  
Um valor alfanumérico que identifica exclusivamente o dispositivo em teste. A SKU é usada para rastrear as placas qualificadas.  
Se você quiser listar sua placa no Catálogo de AWS Partner dispositivos, o SKU especificado aqui deve corresponder ao SKU que você usa no processo de listagem.

`features`  
Uma matriz que contém atributos compatíveis com o dispositivo. Todos os atributos são obrigatórios.    
`os` e `arch`  
  
Combinações de sistema operacional (SO) e arquitetura compatíveis:  
+ `linux`, `x86_64`
+ `linux`, `armv6l`
+ `linux`, `armv7l`
+ `linux`, `aarch64`
+ `ubuntu`, `x86_64`
+ `openwrt`, `armv7l`
+ `openwrt`, `aarch64`
Se você usa o IDT para testar a AWS IoT Greengrass execução em um contêiner Docker, somente a arquitetura x86\$164 Docker é suportada.  
`container`  
<a name="description-container"></a>Verifica se o dispositivo atende a todos os requisitos de software e hardware para executar as funções do Lambda no modo de contêiner em um núcleo do Greengrass.  
O valor válido é `yes` ou `no`.  
`docker`  
<a name="description-docker"></a>Valida que o dispositivo atende a todas as dependências técnicas necessárias para usar o conector de implantação do aplicativo Docker do Greengrass a fim de executar contêineres.  
O valor válido é `yes` ou `no`.  
`streamManagement`  
<a name="description-sm"></a>Valida se o dispositivo atende a todas as dependências técnicas necessárias para executar o gerenciador de AWS IoT Greengrass streams.  
O valor válido é `yes` ou `no`.  
`hsi`  
<a name="description-hsi"></a>Verifica se a biblioteca compartilhada HSI fornecida pode interagir com o módulo de segurança de hardware (HSM) e implementa corretamente o PKCS \$111 necessário. APIs A biblioteca do HSM e compartilhada deve assinar uma CSR, executar operações TLS e fornecer os tamanhos de chaves e o algoritmo de chave pública corretos.  
O valor válido é `yes` ou `no`.  
`ml`  
<a name="description-ml"></a>Valida que o dispositivo atende a todas as dependências técnicas necessárias para executar a inferência de ML localmente.  
O valor válido pode ser qualquer combinação de `mxnet`, `tensorflow`, `dlr` e `no` (por exemplo, `mxnet`, `mxnet,tensorflow`, `mxnet,tensorflow,dlr` ou `no`).  
`mlLambdaContainerizationMode`  
Verifica se o dispositivo atende a todas as dependências técnicas necessárias para executar a inferência de ML em modo contêiner em um dispositivo do Greengrass.  
O valor válido é `container`, `process` ou `both`.  
`processor`  
Verifica se o dispositivo atende a todos os requisitos de hardware do tipo de processador especificado.  
O valor válido é `cpu` ou `gpu`.
Se você não quiser usar o atributo `container`, `docker`, `streamManager`, `hsi` ou `ml`, você pode definir o correspondente `value` a `no`.  
O Docker só oferece suporte à qualificação de atributos para `streamManagement` e `ml`.

`machineLearning`  
Opcional. Informações de configuração para testes de qualificação de ML. Para obter mais informações, consulte [Configurar device.json para qualificação de ML](#device-json-ml-qualification).

`hsm`  
Opcional. Informações de configuração para testes com um módulo AWS IoT Greengrass de segurança de hardware (HSM). Caso contrário, a propriedade `hsm` deve ser omitida. Para obter mais informações, consulte [Integração de segurança de hardware](hardware-security.md).  
<a name="connectivity-protocol-ssh-only"></a>Essa propriedade será aplicada somente se `connectivity.protocol` estiver definido como `ssh`.    
`hsm.p11Provider`  
O caminho absoluto para a biblioteca carregável libdl da implementação PKCS\$111.  
`hsm.slotLabel`  
O rótulo de slot usado para identificar o módulo de hardware.  
`hsm.slotUserPin`  
O PIN do usuário usado para autenticar o AWS IoT Greengrass núcleo no módulo.  
`hsm.privateKeyLabel`  
O rótulo usado para identificar a chave no módulo de hardware.  
`hsm.openSSLEngine`  
O caminho absoluto para o arquivo `.so` do mecanismo OpenSSL para habilitar o suporte ao PKCS\$111 no OpenSSL. Usado pelo agente de atualização AWS IoT Greengrass OTA.

`devices.id`  
Um identificador exclusivo, definido pelo usuário, para o dispositivo que está sendo testado.

`connectivity.protocol`  
O protocolo de comunicação usado para se comunicar com esse dispositivo. No momento, os únicos valores compatíveis são `ssh` para dispositivos físicos e `docker` para contêineres do Docker.

`connectivity.ip`  
O endereço IP do dispositivo que está sendo testado.  
<a name="connectivity-protocol-ssh-only"></a>Essa propriedade será aplicada somente se `connectivity.protocol` estiver definido como `ssh`.

`connectivity.containerId`  
O ID do contêiner ou o nome do contêiner do Docker que está sendo testado.  
<a name="connectivity-protocol-docker-only"></a>Essa propriedade será aplicada somente se `connectivity.protocol` estiver definido como `docker`.

`connectivity.auth`  
Informações de autenticação da conexão.  
<a name="connectivity-protocol-ssh-only"></a>Essa propriedade será aplicada somente se `connectivity.protocol` estiver definido como `ssh`.    
`connectivity.auth.method`  
O método de autenticação usado para acessar um dispositivo pelo protocolo de conectividade indicado.  
Os valores compatíveis são:  
+ `pki`
+ `password`  
`connectivity.auth.credentials`  
As credenciais usadas para autenticação.    
`connectivity.auth.credentials.password`  
A senha usada para fazer login no dispositivo que está sendo testado.  
Esse valor se aplica somente se `connectivity.auth.method` estiver definido como `password`.  
`connectivity.auth.credentials.privKeyPath`  
O caminho completo para a chave privada usada para fazer login no dispositivo que está sendo testado.  
Esse valor se aplica somente se `connectivity.auth.method` estiver definido como `pki`.  
`connectivity.auth.credentials.user`  
O nome de usuário para fazer login no dispositivo que está sendo testado.  
`connectivity.auth.credentials.privKeyPath`  
O caminho completo para a chave privada usada para fazer login no dispositivo que está sendo testado.

`connectivity.port`  
Opcional. O número da porta usada nas conexões SSH.  
O valor padrão é 22.  
Essa propriedade só se aplica se `connectivity.protocol` estiver definido como `ssh`.

`greengrassLocation`  
A localização do software AWS IoT Greengrass Core em seus dispositivos.  
Para dispositivos físicos, esse valor é usado somente quando você usa uma instalação existente do AWS IoT Greengrass. Use esse atributo para instruir o IDT a usar a versão do software do núcleo do AWS IoT Greengrass instalada nos dispositivos.  
Ao executar testes em um contêiner do Docker a partir da imagem do Docker ou do Dockerfile fornecido por AWS IoT Greengrass, defina esse valor como. `/greengrass`

`kernelConfigLocation`  
Opcional. O caminho para o arquivo de configuração do kernel. AWS IoT O Device Tester usa esse arquivo para verificar se os dispositivos têm os recursos necessários do kernel habilitados. Se não for especificado, o IDT usa os seguintes caminhos para pesquisar o arquivo de configuração do kernel: e. `/proc/config.gz` `/boot/config-<kernel-version>` AWS IoT O Device Tester usará o primeiro caminho que encontrar.

## Configurar device.json para qualificação de ML
<a name="device-json-ml-qualification"></a>

Esta seção descreve as propriedades opcionais no arquivo de configuração do dispositivo que se aplicam à qualificação de ML. Se você planeja executar testes para qualificação de ML, é necessário definir as propriedades que se aplicam ao caso de uso.

Você pode usar o modelo `device-ml.json` para definir as configurações do dispositivo. Este modelo contém as propriedades de ML opcionais. Você também pode usar `device.json` e adicionar as propriedades de qualificação de ML. Esses arquivos estão localizados em `<device-tester-extract-location>/configs` e incluem propriedades de qualificação de ML. Se usar `device-ml.json`, você deve renomear o arquivo como `device.json` antes de executar testes do IDT.

Para obter informações sobre propriedades de configuração de dispositivo que não se aplicam à qualificação de ML, consulte [Configurar device.json](#device-config).

 

`ml` na matriz `features`  
As estruturas de ML compatíveis com a sua placa. <a name="idt-version-ml-qualification"></a>Esta propriedade requer a versão 3.1.0 ou posterior do IDT.  
+ Caso a sua placa seja compatível com uma estrutura somente, especifique a estrutura. Por exemplo:

  ```
  {
      "name": "ml",
      "value": "mxnet"
  }
  ```
+ Caso a sua placa seja compatível com várias estruturas, especifique as estruturas como uma lista separada por vírgulas. Por exemplo:

  ```
  {
      "name": "ml",
      "value": "mxnet,tensorflow"
  }
  ```

`mlLambdaContainerizationMode` na matriz `features`  
O [modo de conteinerização](lambda-group-config.md#lambda-containerization-considerations) com o qual você deseja testar. <a name="idt-version-ml-qualification"></a>Esta propriedade requer a versão 3.1.0 ou posterior do IDT.  
+ Selecione `process` para executar o código de inferência de ML com uma função do Lambda sem contêineres. Essa opção requer a AWS IoT Greengrass versão v1.10.x ou posterior.
+ Selecione `container` para executar o código de inferência de ML com uma função do Lambda em contêineres.
+ Selecione `both` para executar o código de inferência de ML com ambos os modos. Essa opção requer a AWS IoT Greengrass versão v1.10.x ou posterior.

`processor` na matriz `features`  
Indica o acelerador de hardware compatível com a placa. <a name="idt-version-ml-qualification"></a>Esta propriedade requer a versão 3.1.0 ou posterior do IDT.  
+ Selecione `cpu` se sua placa usa uma CPU como processador.
+ Selecione `gpu` se a sua placa usa uma GPU como processador.

`machineLearning`  
Opcional. Informações de configuração para testes de qualificação de ML. <a name="idt-version-ml-qualification"></a>Esta propriedade requer a versão 3.1.0 ou posterior do IDT.    
`dlrModelPath`  
É necessário usar a estrutura do `dlr`. O caminho absoluto para o diretório de modelo compilado do DLR, que deve ser chamado de `resnet18`. Para obter mais informações, consulte [Compilar o modelo de DLR](idt-ml-qualification.md#ml-qualification-dlr-compile-model).  
Veja a seguir um exemplo de caminho no macOS: `/Users/<user>/Downloads/resnet18`.  
`environmentVariables`  
Uma matriz de pares de chave/valor que pode passar dinamicamente configurações para testes de inferência de ML. Opcional para dispositivos de CPU. Você pode usar esta seção para adicionar variáveis de ambiente específicas da estrutura exigidas pelo tipo de dispositivo. Para obter informações sobre esses requisitos, consulte o site oficial da estrutura ou do dispositivo. Por exemplo, para executar testes de MXNet inferência em alguns dispositivos, as seguintes variáveis de ambiente podem ser necessárias.  

```
"environmentVariables": [
    ...
    {
        "key": "PYTHONPATH",      
        "value": "$MXNET_HOME/python:$PYTHONPATH"    
    },
    {
        "key": "MXNET_HOME",
        "value": "$HOME/mxnet/"
    },
    ...
]
```
O `value` campo pode variar de acordo com sua MXNet instalação.
Se você estiver testando funções do Lambda executadas com [conteinerização](lambda-group-config.md#lambda-containerization-considerations) em dispositivos de GPU, adicione variáveis de ambiente para a biblioteca de GPU. Isso possibilita a realização de cálculos pela GPU. Para usar bibliotecas de GPU diferentes, consulte a documentação oficial da biblioteca ou do dispositivo.  
Configure as chaves a seguir se o atributo `mlLambdaContainerizationMode` estiver definido como `container` ou `both`.

```
"environmentVariables": [
    {
        "key": "PATH",      
        "value": "<path/to/software/bin>:$PATH"    
    },
    {
        "key": "LD_LIBRARY_PATH",      
        "value": "<path/to/ld/lib>"    
    },
    ...
]
```  
`deviceResources`  
Obrigatório para dispositivos de GPU. Contém [recursos locais](access-local-resources.md#lra-resource-types) que podem ser acessados por funções do Lambda. Use esta seção para adicionar recursos de dispositivo e de volume locais.  
+ Para recursos de dispositivo, especifique `"type": "device"`. Para dispositivos GPU, os recursos do dispositivo devem ser arquivos de dispositivo relacionados à GPU em `/dev`.
**nota**  
O diretório `/dev/shm` é uma exceção. Ele pode ser configurado apenas como um recursos de volume.
+ Para recursos de volume, especifique `"type": "volume"`.