AWS IoT Guia de solução de problemas do Device Advisor - AWS IoT Core

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

AWS IoT Guia de solução de problemas do Device Advisor

Ajude-nos a melhorar este tópico
Geral
P: Posso executar vários conjuntos de testes em paralelo?

R: Sim. O Device Advisor agora oferece suporte à execução de vários conjuntos de testes em diferentes dispositivos usando um endpoint no nível do dispositivo. Se você usar o endpoint no nível da conta, poderá executar um conjunto por vez porque um endpoint do Device Advisor está disponível por conta. Para obter mais informações, consulte Configure seu dispositivo.

P: Vi no meu dispositivo que a TLS conexão foi negada pelo Device Advisor. Isso é esperado?

R: Sim. O Device Advisor nega a TLS conexão antes e depois de cada execução de teste. Recomendamos que os usuários implementem um mecanismo de nova tentativa de dispositivo para ter uma experiência de teste totalmente automatizada com o Device Advisor. Se você executar uma suíte de testes com mais de um caso de teste, por exemplo, TLS MQTT conectar, conectar e MQTT publicar, recomendamos que você tenha um mecanismo criado para o seu dispositivo. O mecanismo pode tentar se conectar ao nosso endpoint de teste a cada 5 segundos por um ou dois minutos. Dessa forma, você pode executar vários casos de teste em sequência de maneira automatizada.

P: Posso obter um histórico das API chamadas do Device Advisor feitas em minha conta para fins de análise de segurança e solução de problemas operacionais?

R: Sim. Para receber um histórico das API chamadas do Device Advisor feitas em sua conta, basta ativar CloudTrail o AWS IoT Console de gerenciamento e filtre a origem do evento a seriotdeviceadvisor.amazonaws.com.

P: Como faço para ver os logins do Device Advisor CloudWatch?

R: Os registros gerados durante a execução de uma suíte de testes serão enviados CloudWatch se você adicionar a política necessária (por exemplo, CloudWatchFullAccess) à sua função de serviço (consulteConfiguração). Se houver pelo menos um caso de teste na suíte de testes, um grupo de registros “testSuiteIdaws/iot/deviceadvisor/$" será criado com dois fluxos de log. Um stream é o “$testRunId" e inclui registros de ações realizadas antes e depois da execução dos casos de teste em sua suíte de testes, como etapas de configuração e limpeza. O outro fluxo de log é “$ suiteRunId _$”testRunId, que é específico para a execução de uma suíte de testes. Eventos enviados de dispositivos e AWS IoT Core serão registrados nesse fluxo de log.

P: Qual é a finalidade da função de permissão do dispositivo?

R: O Device Advisor fica entre seu dispositivo de teste e AWS IoT Core para simular cenários de teste. Ele aceita conexões e mensagens de seus dispositivos de teste e as encaminha para AWS IoT Core assumindo sua função de permissão do dispositivo e iniciando uma conexão em seu nome. É importante garantir que as permissões da função do dispositivo sejam as mesmas do certificado que você usa para executar testes. AWS IoT as políticas de certificado não são aplicadas quando o Device Advisor inicia uma conexão com AWS IoT Core em seu nome usando a função de permissão do dispositivo. No entanto, as permissões da função de permissão do dispositivo definidas são aplicadas.

P: Em quais regiões o Device Advisor é suportado?

R: O Device Advisor é compatível com as regiões us-east-1, us-west-2, ap-northeast-1 e eu-west-1.

P: Por que vejo resultados inconsistentes?

R: Uma das principais causas de resultados inconsistentes é definir um teste de EXECUTION_TIMEOUT com um valor muito baixo. Para obter mais informações sobre valores de EXECUTION_TIMEOUT recomendados e padrão, consulte Casos de teste do Device Advisor.

P: Qual MQTT protocolo é compatível com o Device Advisor?

R: O Device Advisor suporta a MQTT versão 3.1.1 com certificados de cliente X509.

P: E se meu caso de teste falhar com uma mensagem de tempo limite de execução, mesmo que eu tenha tentado conectar meu dispositivo ao endpoint de teste?

R: Valide todas as etapas em Criar uma IAM função para ser usada como sua função de dispositivo. Se o teste ainda falhar, pode ser que o dispositivo não esteja enviando a extensão correta de Indicação de Nome do Servidor (SNI), necessária para que o Device Advisor funcione. O SNI valor correto é o endereço do endpoint retornado ao seguir a seção Configurar seu dispositivo. AWS IoT também exige que os dispositivos enviem a extensão Server Name Indication (SNI) para o protocolo Transport Layer Security (TLS). Para obter mais informações, consulte Segurança de transporte em AWS IoT.

P: Minha MQTT conexão falha com um erro "libaws-c-mqtt: AWS_ERROR _ MQTT _ UNEXPECTED _HANGUP" (ou) a MQTT conexão do meu dispositivo está sendo automaticamente desconectada do endpoint do Device Advisor. Como esse erro pode ser resolvido?

R: Esse código de erro específico e desconexões inesperadas podem ser causados por muitas objetos diferentes, mas provavelmente estão relacionados à função do dispositivo associada ao dispositivo. Os pontos de verificação abaixo (em ordem de prioridade) resolverão esse problema.

  • A função de dispositivo anexada ao dispositivo deve ter as IAM permissões mínimas necessárias para executar os testes. O Device Advisor usará a função de dispositivo anexada para executar AWS IoT MQTTações em nome do dispositivo de teste. Se as permissões necessárias estiverem ausentes, o erro AWS_ERROR_MQTT_UNEXPECTED_HANGUP será visto ou ocorrerão desconexões inesperadas enquanto o dispositivo tenta se conectar ao endpoint do Device Advisor. Por exemplo, se você optou por executar o caso de teste MQTTPublish, as ações Connect e Publish devem ser incluídas na função com o correspondente ClientId e o Tópico (você pode fornecer vários valores usando vírgulas para separar os valores e fornecer valores de prefixo usando um caractere curinga (*). Por exemplo: para fornecer permissões para publicar em qualquer tópico que comece com TestTopic, você pode fornecer "TestTopic*" como valor do recurso. Aqui estão alguns exemplos de políticas.

  • Incompatibilidade entre os valores definidos na função do dispositivo para seus tipos de recursos e os valores reais usados ​​no código. Por exemplo: uma incompatibilidade entre a ClientId definição da função e a real ClientId usada no código do seu dispositivo. Valores como ClientId Tópico e TopicFilter devem ser idênticos na função e no código do dispositivo.

  • O certificado do dispositivo anexado ao seu dispositivo deve estar ativo e ter uma política anexada a ele com as permissões de ação necessárias para os recursos. Observe que a política de certificado do dispositivo concede ou nega acesso a AWS IoT recursos e AWS IoT Core operações do plano de dados. O Device Advisor exige que você tenha um certificado de dispositivo ativo anexado ao seu dispositivo, que conceda as permissões de ação usadas durante um caso de teste.