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á.
Solução de problemas de IDT paraAWS IoT GreengrassV2
IDT paraAWS IoT GreengrassA V2 grava erros em vários locais com base no tipo de erro. O IDT grava erros no console, nos arquivos de log e nos relatórios de teste.
Onde procurar erros
Erros de alto nível são exibidos no console enquanto o teste está sendo executado, e um resumo dos testes que falharam é exibido quando todos os testes são concluídos.awsiotdevicetester_report.xml
contém um resumo de todos os erros que causaram a falha de um teste. O IDT armazena os arquivos de log de cada execução de teste em um diretório com um UUID para a execução do teste, exibido no console durante a execução do teste.
O diretório de registros de teste do IDT é
. Esse diretório contém os seguintes arquivos exibidos na tabela. Isso é útil para depuração.<device-tester-extract-location>
/results/<execution-id>
/logs/
Arquivo | Descrição |
---|---|
test_manager.log |
Os registros gravados no console durante a execução do teste. O resumo dos resultados no final desse arquivo inclui uma lista de quais testes falharam. Os logs de aviso e de erro nesse arquivo podem fornecer algumas informações sobre as falhas. |
|
Registros detalhados do teste específico em um grupo de teste. Para testes que implantam componentes do Greengrass, o arquivo de registro do caso de teste é chamadogreengrass-test-run.log . |
|
Registros detalhados paraAWS IoT GreengrassSoftware principal. O IDT copia esse arquivo do dispositivo em teste quando executa testes que instalamAWS IoT GreengrassSoftware principal no dispositivo. Para obter mais informações sobre as mensagens nesse arquivo de log, consulteSolução de problemas AWS IoT Greengrass V2. |
|
Registros detalhados dos componentes do Greengrass que são implantados durante as execuções de teste. O IDT copia os arquivos de log de componentes do dispositivo em teste quando executa testes que implantam componentes específicos. O nome do arquivo de log de cada componente corresponde ao nome do componente implantado. Para obter mais informações sobre as mensagens nesse arquivo de log, consulteSolução de problemas AWS IoT Greengrass V2. |
Resolvendo o IDT paraAWS IoT GreengrassErros V2
Antes de executar o IDT paraAWS IoT Greengrass, instale os arquivos de configuração corretos. Se você receber erros de análise e configuração, a primeira etapa é localizar e usar um modelo de configuração apropriado para seu ambiente.
Se você ainda estiver com problemas, consulte o processo de depuração a seguir.
Tópicos
- Erros de resolução de aliases
- Erros de conflito
- Erro: Não foi possível iniciar teste
- Existem erros na imagem de qualificação do Docker
- Falha ao ler a credencial
- Erros de guia com PreInstalled Capim verde
- Exceção de assinatura inválida
- Erros de qualificação de aprendizado de máquina
- Implantações com falha no Open Test Framework (OTF)
- Erros de análise
- Erros de permissão negada
- Erro na geração do relatório de qualificação
- Erro de parâmetro necessário ausente
- Exceção de segurança no macOS
- Erros de conexão SSH
- Erros de qualificação do gerenciador de stream
- Erros de tempo limite
- Erros de verificação de versão
Erros de resolução de aliases
Ao executar suítes de testes personalizadas, você pode ver o seguinte erro no console e notest_manager.log
.
Couldn't resolve placeholders: couldn't do a json lookup: index out of range
Esse erro pode ocorrer quando os aliases configurados no orquestrador de testes do IDT não são resolvidos corretamente ou se os valores resolvidos não estão presentes nos arquivos de configuração. Para resolver esse erro, certifique-se de que seudevice.json
euserdata.json
contém as informações corretas necessárias para sua suíte de testes. Para obter informações sobre a configuração necessária paraAWS IoT Greengrassqualificação, consulteDefina as configurações de IDT para executar o pacote de AWS IoT Greengrass qualificação.
Erros de conflito
Você pode ver o seguinte erro ao executar oAWS IoT Greengrassconjunto de qualificação simultaneamente em mais de um dispositivo.
ConflictException: Component [com.example.IDTHelloWorld : 1.0.0] for account [account-id
] already exists with state: [DEPLOYABLE] { RespMetadata: { StatusCode: 409, RequestID: “id
” }, Message_: “Component [com.example.IDTHelloWorld : 1.0.0] for account [account-id
] already exists with state: [DEPLOYABLE]” }
A execução simultânea de testes ainda não é suportada peloAWS IoT Greengrasssuíte de qualificação. Execute o conjunto de qualificação sequencialmente para cada dispositivo.
Erro: Não foi possível iniciar teste
Você pode encontrar erros que apontam para falhas que ocorreram quando o teste estava tentando iniciar. Há várias causas possíveis e, portanto, faça o seguinte:
-
Certifique-se de que o nome do pool em seu comando de execução realmente exista. O IDT faz referência ao nome do pool diretamente de seu
device.json
arquivo. -
Verifique se os dispositivos no grupo têm os parâmetros de configuração corretos.
Existem erros na imagem de qualificação do Docker
Os testes de qualificação do gerenciador de aplicativos Docker usam oamazon/amazon-ec2-metadata-mock
imagem de contêiner no Amazon ECR para qualificar o dispositivo em teste.
Você pode receber o seguinte erro se a imagem já estiver presente em um contêiner do Docker no dispositivo em teste.
The Docker image amazon/amazon-ec2-metadata-mock:
version
already exists on the device.
Se você baixou essa imagem anteriormente e executou oamazon/amazon-ec2-metadata-mock
contêiner em seu dispositivo, certifique-se de remover essa imagem do dispositivo em teste antes de executar os testes de qualificação.
Falha ao ler a credencial
Ao testar dispositivos Windows, você pode encontrar oFailed to read
credential
erro nogreengrass.log
arquivo se o usuário que você usa para se conectar ao dispositivo em teste não estiver configurado no gerenciador de credenciais desse dispositivo.
Para resolver esse erro, configure o usuário e a senha do usuário do IDT no gerenciador de credenciais do dispositivo em teste.
Para obter mais informações, consulte Configurar credenciais de usuário para dispositivos Windows.
Erros de guia com PreInstalled Capim verde
Ao executar o IDT com PreInstalled Greengrass, se você encontrar um erro deGuice
ouErrorInCustomProvider
, verifique se o arquivouserdata.json
tem oInstalledDirRootOnDevice
defina para a pasta de instalação do Greengrass. O IDT verifica o arquivoeffectiveConfig.yaml
embaixo<InstallationDirRootOnDevice>/config/effectiveConfig.yaml
.
Para obter mais informações, consulte Configurar credenciais de usuário para dispositivos Windows.
Exceção de assinatura inválida
Ao executar testes de qualificação do Lambda, você pode encontrar oinvalidsignatureexception
erro se sua máquina host IDT tiver problemas de acesso à rede. Reinicie o roteador e execute os testes novamente.
Erros de qualificação de aprendizado de máquina
Ao executar testes de qualificação de aprendizado de máquina (ML), você pode encontrar falhas de qualificação se o dispositivo não atender àsrequisitospara implantar oAWS-componentes de ML fornecidos. Para solucionar erros de qualificação de ML, faça o seguinte:
-
Procure detalhes de erro nos registros dos componentes que foram implantados durante a execução do teste. Os registros de componentes estão localizados no
diretório.<device-tester-extract-location>
/results/<execution-id>
/logs/<test-group-id>
-
Adicione o
-Dgg.persist=installed.software
argumento para otest.json
arquivo para o caso de teste com falha. Otest.json
o arquivo está localizado no<device-tester-extract-location>
/tests/GGV2Q_version
directory.
Implantações com falha no Open Test Framework (OTF)
Se os testes OTF falharem em concluir a implantação, uma causa provável pode ser as permissões definidas para a pasta principal doTempResourcesDirOnDevice
eInstallationDirRootOnDevice
. Para definir as permissões dessa pasta corretamente, execute o comando a seguir. Substituir
com o nome da pasta principal.folder-name
sudo chmod
755
folder-name
Erros de análise
Erros de digitação em uma configuração JSON podem levar a erros de análise. Na maioria dos casos, o problema é resultado da omissão de um colchete, vírgula ou aspas de seu arquivo JSON. O IDT executa a validação do JSON e imprime as informações de depuração. Ele imprime a linha em que ocorreu o erro, o número da linha e o número da coluna do erro de sintaxe. Essas informações devem ser suficientes para ajudá-lo a corrigir o erro, mas se você ainda não conseguir localizar o erro, poderá realizar a validação manualmente em seu IDE, em um editor de texto como Atom ou Sublime ou por meio de uma ferramenta on-line como o JSONLint.
Erros de permissão negada
O ITD executa operações em vários diretórios e arquivos em um dispositivo em teste. Algumas dessas operações exigem acesso raiz. Para automatizar essas operações, o IDT deverá ser capaz de executar comandos com sudo sem digitar uma senha.
Siga estas etapas para permitir o acesso do sudo sem digitar uma senha.
nota
user
e username
se referem ao usuário SSH usado pelo IDT para acessar o dispositivo em teste.
-
Use sudo usermod -aG sudo
<ssh-username>
para adicionar o usuário SSH ao grupo sudo. -
Saia e faça login para que as alterações entrem em vigor.
-
Abra o arquivo
/etc/sudoers
e adicione a linha a seguir ao final do arquivo:<ssh-username>
ALL=(ALL) NOPASSWD: ALLnota
Como prática recomendada, recomendamos que você use sudo visudo ao editar
/etc/sudoers
.
Erro na geração do relatório de qualificação
O IDT suporta os quatro mais recentes
versões doAWS IoT GreengrassPacote de qualificação V2 (GGV2Q) para gerar relatórios de qualificação que você pode enviar paraAWS Partner Networkpara incluir seus dispositivos noAWS PartnerCatálogo de dispositivos. As versões anteriores do pacote de qualificação não geram relatórios de qualificação.major
.minor
Se você tiver dúvidas sobre a política de suporte, entre em contato comAWS Support
Erro de parâmetro necessário ausente
Quando o IDT adiciona novos recursos, ele pode introduzir alterações nos arquivos de configuração. O uso de um arquivo de configuração antigo pode danificar sua configuração. Se isso acontecer, o arquivo
, em <test_case_id>
.log/results/
, listará explicitamente todos os parâmetros ausentes. O IDT também valida os esquemas do arquivo de configuração JSON para verificar se você está usando a versão mais recente compatível.<execution-id>
/logs
Exceção de segurança no macOS
Quando você executa o IDT em um computador host macOS, ele impede a execução do IDT. Para executar o IDT, conceda uma exceção de segurança aos executáveis que fazem parte da funcionalidade de tempo de execução do IDT. Ao ver a mensagem de aviso exibida no computador host, faça o seguinte para cada um dos executáveis aplicáveis:
Para conceder uma exceção de segurança aos executáveis do IDT
-
No computador macOS, no menu Apple, abraPreferências do sistema.
-
EscolhaSegurança e privacidade, em seguida, noGeralguia, escolha o ícone de cadeado para fazer alterações nas configurações de segurança.
-
Em caso de bloqueio
devicetester_mac_x86-64
, procure a mensagem"devicetester_mac_x86-64" was blocked from use because it is not from an identified developer.
e escolhaPermitir mesmo assim. -
Continue os testes de IDT até concluir todos os executáveis envolvidos.
Erros de conexão SSH
Quando o IDT não consegue se conectar a um dispositivo em teste, ele registra falhas de conexão no/results/
. As mensagens SSH aparecem na parte superior desse arquivo de log porque a conexão com um dispositivo em teste é uma das primeiras operações que o IDT executa.<execution-id>
/logs/<test-case-id>
.log
A maioria das configurações do Windows usa o aplicativo de terminal PuTTY para se conectar aos hosts Linux. Esse aplicativo requer que você converta arquivos de chave privada PEM padrão em um formato proprietário do Windows chamado PPK. Se você configurar o SSH no seudevice.json
arquivo, use arquivos PEM. Se você usa um arquivo PPK, o IDT não pode criar uma conexão SSH com oAWS IoT Greengrassdispositivo e não consigo executar testes.
A partir do IDT v4.4.0, se você não tiver habilitado o SFTP no dispositivo em teste, talvez veja o seguinte erro no arquivo de log.
SSH connection failed with EOF
Para resolver esse erro, ative o SFTP no seu dispositivo.
Erros de qualificação do gerenciador de stream
Ao executar testes de qualificação do stream manager, você pode ver o seguinte erro nocom.aws.StreamManagerExport.log
arquivo.
Failed to upload data to S3
Esse erro pode ocorrer quando o gerenciador de fluxo usa oAWScredenciais no~/root/.aws/credentials
arquivo em seu dispositivo em vez de usar as credenciais de ambiente que o IDT exporta para o dispositivo em teste. Para evitar esse problema, exclua ocredentials
arquive no seu dispositivo e execute novamente o teste de qualificação.
Erros de tempo limite
Você pode aumentar o tempo limite de cada teste especificando um multiplicador de tempo limite aplicado ao valor padrão do tempo limite de cada teste. Qualquer valor configurado para esse sinalizador deve ser maior que ou igual a 1.0.
Para usar o multiplicador de tempo limite, use o sinalizador --timeout-multiplier
ao executar os testes. Por exemplo:
./devicetester_linux run-suite --suite-id GGV2Q_1.0.0 --pool-id DevicePool1 --timeout-multiplier 2.5
Para obter mais informações, execute run-suite --help
.
Alguns erros de tempo limite ocorrem quando os casos de teste do IDT não podem ser concluídos devido a problemas de configuração. Você não pode resolver esses erros aumentando o multiplicador de tempo limite. Use os registros da execução do teste para solucionar os problemas de configuração subjacentes.
-
Se os registros do componente MQTT ou Lambda contiverem
Access denied
erros, sua pasta de instalação do Greengrass pode não ter as permissões de arquivo corretas. Execute o comando a seguir para cada pasta no caminho de instalação que você definiu no seuuserdata.json
arquivo.sudo chmod 755
folder-name
-
Se os registros do Greengrass indicarem que a implantação da CLI do Greengrass não foi concluída, faça o seguinte:
-
Verifique isso
bash
está instalado no dispositivo em teste. -
Se o seu
userdata.json
o arquivo inclui oGreengrassCliVersion
parâmetro de configuração, remova-o. Esse parâmetro está obsoleto no IDT v4.1.0 e versões posteriores. Para obter mais informações, consulte Configurar userdata.json.
-
-
Se o teste de implantação do Lambda falhar com uma mensagem de erro de “Validando a publicação do Lambda: tempo limite” e você receber um erro no arquivo de log de teste (
idt-gg2-lambda-function-idt-
) que diz<resource-id>
.logError: Could not find or load main class com.amazonaws.greengrass.runtime.LambdaRuntime.
, faça o seguinte:-
Verifique para qual pasta foi usada
InstallationDirRootOnDevice
nouserdata.json
arquivo. -
Verifique se as permissões de usuário corretas estão configuradas no seu dispositivo. Para obter mais detalhes, consulteConfigure as permissões do usuário em seu dispositivo.
-
Erros de verificação de versão
O IDT emite o seguinte erro quando oAWSas credenciais do usuário do IDT não têm as permissões necessárias do IAM.
Failed to check version compatibility
OAWSusuário que não tem as permissões necessárias do IAM.