AWS IoT Greengrass Version 1 entrou na fase de vida útil prolongada em 30 de junho de 2023. Para obter mais informações, consulte política de manutenção do AWS IoT Greengrass V1. Após essa data, AWS IoT Greengrass V1 não lançaremos atualizações que forneçam recursos, aprimoramentos, correções de erros ou patches de segurança. Os dispositivos que funcionam AWS IoT Greengrass V1 não serão interrompidos e continuarão operando e se conectando à nuvem. É altamente recomendável que você migre para AWS IoT Greengrass Version 2, o que adiciona novos recursos significativos e suporte para plataformas adicionais.
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 do IDT para executar o pacote de qualificação AWS IoT Greengrass
Antes de executar os testes, você terá de definir as configurações para as credenciais da AWS e os dispositivos em seu computador host.
Configurar as credenciais da AWS
Você deve configurar suas credenciais de usuário do IAM no arquivo
. Use as credenciais para do IDT para o usuário do AWS IoT Greengrass criado em Crie e configure um Conta da AWS. Você pode especificar suas credenciais de uma das seguintes formas:<device-tester-extract-location>
/configs/config.json
-
Arquivo de credenciais
-
Variáveis de ambiente
O IDT usa o mesmo arquivo de credenciais que a AWS CLI. Para obter mais informações, consulte Arquivos de configuração e credenciais.
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 credenciais da AWS ao arquivo credentials
no seguinte formato:
[default] aws_access_key_id =
<your_access_key_id>
aws_secret_access_key =<your_secret_access_key>
Para configurar o IDT para AWS IoT Greengrass para que use credenciais da AWS do arquivo credentials
, edite o arquivo config.json
da seguinte forma:
{ "awsRegion": "us-west-2", "auth": { "method": "file", "credentials": { "profile": "default" } } }
nota
Se você não usar o perfil default
da AWS, mude o nome de perfil no arquivo config.json
. Para obter mais informações, consulte Perfis nomeados.
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 para AWS IoT Greengrass pode usar as variáveis de ambiente AWS_ACCESS_KEY_ID
e AWS_SECRET_ACCESS_KEY
para armazenar suas credenciais da AWS.
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
Além de credenciais da AWS, o IDT para AWS IoT Greengrass precisa de informações sobre os dispositivos em que os testes são executados (por exemplo, endereço IP, informações de login, sistema operacional e arquitetura de CPU).
Você deve fornecer essas informações usando o modelo device.json
localizado em
:
<device_tester_extract_location>
/configs/device.json
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 carga de trabalho. 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.
nota
Se você deseja listar sua placa no AWS Partner Device Catalog, a SKU especificada aqui deve corresponder à SKU que você usa no processo de oferta.
features
-
Uma matriz que contém atributos compatíveis com o dispositivo. Todos os atributos são obrigatórios.
os
earch
-
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
nota
Se você usa o IDT para testar a AWS IoT Greengrass em execução em um contêiner do docker, só há suporte para a arquitetura x86_64 do docker.
-
container
-
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
ouno
. docker
-
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
ouno
. streamManagement
-
Valida que o dispositivo atende a todas as dependências técnicas necessárias para executar o gerenciador de fluxos do AWS IoT Greengrass.
O valor válido é
yes
ouno
. hsi
-
Verifica se a biblioteca compartilhada HSI fornecida pode interagir com o módulo de segurança de hardware (HSM) e implementa as APIs PKCS#11 necessárias corretamente. 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
ouno
. ml
-
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
eno
(por exemplo,mxnet
,mxnet,tensorflow
,mxnet,tensorflow,dlr
ouno
). 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
ouboth
. processor
-
Verifica se o dispositivo atende a todos os requisitos de hardware do tipo de processador especificado.
O valor válido é
cpu
ougpu
.
nota
Se você não quiser usar o atributo
container
,docker
,streamManager
,hsi
ouml
, você pode definir o correspondentevalue
ano
.O Docker só oferece suporte à qualificação de atributos para
streamManagement
eml
. 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.
hsm
-
Opcional. Informações de configuração para testes com um AWS IoT Greengrass Hardware Security Module (HSM – Módulo de segurança de hardware). Caso contrário, a propriedade
hsm
deve ser omitida. Para obter mais informações, consulte Integração de segurança de hardware.Essa propriedade será aplicada somente se
connectivity.protocol
estiver definido comossh
.hsm.p11Provider
-
O caminho absoluto para a biblioteca carregável libdl da implementação PKCS#11.
hsm.slotLabel
-
O rótulo de slot usado para identificar o módulo de hardware.
hsm.slotUserPin
-
O PIN de usuário usado para autenticar o núcleo AWS IoT Greengrass para o 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#11 no OpenSSL. Usado pelo atendente de atualização OTA do AWS IoT Greengrass.
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 edocker
para contêineres do Docker. connectivity.ip
-
O endereço IP do dispositivo que está sendo testado.
Essa propriedade será aplicada somente se
connectivity.protocol
estiver definido comossh
. connectivity.containerId
-
O ID do contêiner ou o nome do contêiner do Docker que está sendo testado.
Essa propriedade será aplicada somente se
connectivity.protocol
estiver definido comodocker
. connectivity.auth
-
Informações de autenticação da conexão.
Essa propriedade será aplicada somente se
connectivity.protocol
estiver definido comossh
.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 comopassword
. 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 comopki
. 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 a ser usada para as conexões SSH.
O valor padrão é 22.
Essa propriedade só se aplica se
connectivity.protocol
estiver definido comossh
. greengrassLocation
-
O local do software do núcleo do AWS IoT Greengrass em seus dispositivos.
Para dispositivos físicos, esse valor é usado apenas 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 pela imagem do Docker ou do arquivo do Docker fornecido pelo 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 atributos do kernel habilitados. Se não for especificado, o IDT usa os seguintes caminhos para procurar o arquivo de configuração do kernel:
/proc/config.gz
e/boot/config-
. AWS IoT O Device Tester usará o primeiro caminho que encontrar.<kernel-version>
Configurar device.json para qualificação de ML
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
e incluem propriedades de qualificação de ML. Se usar <device-tester-extract-location>
/configsdevice-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.
ml
na matrizfeatures
-
As estruturas de ML compatíveis com a sua placa. 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 matrizfeatures
-
O modo de conteinerização com o qual você deseja testar. 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. Esta opção requer a versão 1.10.x ou posterior do AWS IoT Greengrass. -
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. Esta opção requer a versão 1.10.x ou posterior do AWS IoT Greengrass.
-
processor
na matrizfeatures
-
Indica o acelerador de hardware compatível com a placa. 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. 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 deresnet18
. Para obter mais informações, consulte Compilar o modelo de DLR.nota
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 inferência do MXNet 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/" }, ... ]
nota
O campo
value
pode variar com base na instalação do MXNet.Se você estiver testando funções do Lambda executadas com conteinerização 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.
nota
Configure as chaves a seguir se o atributo
mlLambdaContainerizationMode
estiver definido comocontainer
ouboth
."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 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"
.
-