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 Device Defender demonstração
Importante
Esta é uma versão arquivada do Guia do usuário do FreeRTOS para usar com a versão 202210.00 do FreeRTOS. Para obter a versão mais recente deste documento, consulte o Guia do usuário do FreeRTOS.
Introdução
Esta demonstração mostra como usar a biblioteca do AWS IoT Device Defender para se conectar AWS IoT Device Defendera. A demonstração usa a biblioteca CoreMQTT para estabelecer uma conexão MQTT via TLS (autenticação mútua) com o AWS IoT MQTT Broker e a biblioteca CoreJSON para validar e analisar as respostas recebidas do serviço. AWS IoT Device Defender A demonstração mostra como criar um relatório em formato JSON usando métricas coletadas do dispositivo e como enviar o relatório construído para o AWS IoT Device Defender serviço. A demonstração também mostra como registrar uma função de retorno de chamada na biblioteca CoreMQTT para lidar com as respostas do AWS IoT Device Defender serviço e confirmar se um relatório enviado foi aceito ou rejeitado.
nota
Para configurar e executar as demonstrações do FreeRTOS, siga as etapas em Conceitos básicos do FreeRTOS.
Funcionalidade
Essa demonstração cria uma única tarefa de aplicativo que demonstra como coletar métricas, criar um relatório do Device Defender no formato JSON e enviá-lo ao AWS IoT Device Defender serviço por meio de uma conexão MQTT segura com o MQTT Broker. AWS IoT A demonstração inclui as métricas de rede padrão, bem como métricas personalizadas. Para métricas personalizadas, a demonstração inclui:
-
Uma métrica chamada "
task_numbers
" que é uma lista de tarefas do FreeRTOS. IDs O tipo dessa métrica é "lista de números". -
Uma métrica chamada "
stack_high_water_mark
" que é a marca d'água no topo da pilha para a tarefa da aplicação de demonstração. O tipo dessa métrica é "números".
A maneira de coletar métricas de rede depende da pilha TCP/IP em uso. Para FreeRTOS+TCP e configurações LWIP compatíveis, fornecemos implementações de coleta de métricas que coletam métricas reais do dispositivo e as enviam no relatório. AWS IoT Device Defender Você pode encontrar as implementações do FreeRTOS+TCP e do LWIP
Para placas que usam uma outra pilha TCP/IP, fornecemos as definições de esboço das funções de coleta de métricas que retornam zeros para todas as métricas de rede. Implemente as funções em
na sua pilha de rede para a pilha de rede enviar métricas reais. O arquivo também está disponível no GitHubfreertos
/demos/device_defender_for_aws/metrics_collector/stub/metrics_collector.c
Pois ESP32, a configuração padrão do LWIP não usa bloqueio central e, portanto, a demonstração usará métricas fragmentadas. Se desejar usar a implementação da coleção de métricas lwIP de referência, defina as seguintes macros em lwiopts.h
:
#define LINK_SPEED_OF_YOUR_NETIF_IN_BPS 0 #define LWIP_TCPIP_CORE_LOCKING 1 #define LWIP_STATS 1 #define MIB2_STATS 1
Veja um exemplo de saída quando você executa a demonstração a seguir.

Se sua placa não estiver usando FreeRTOS+TCP ou uma configuração lwIP compatível, a saída será semelhante à seguinte.

O código-fonte da demonstração está em seu download no
diretório ou no GitHubfreertos
/demos/device_defender_for_aws/
Inscrevendo-se em tópicos AWS IoT Device Defender
A função subscribeToDefenderTópicosDEFENDER_API_JSON_ACCEPTED
para criar a sequência de tópicos na qual as respostas aos relatórios aceitos do Device Defender são recebidas. Ela usa a macro DEFENDER_API_JSON_REJECTED
para criar a sequência de tópicos na qual as respostas aos relatórios rejeitados do Device Defender serão recebidas.
Coleta de métricas de dispositivos
A collectDeviceMetricsmetrics_collector.h
. As métricas coletadas são o número de bytes e pacotes enviados e recebidos, as portas TCP abertas, as portas UDP abertas e as conexões TCP estabelecidas.
Gerando o AWS IoT Device Defender relatório
A função generateDeviceMetricsReportreport_builder.h
. Essa função pega as métricas de rede e um buffer, cria um documento JSON no formato esperado AWS IoT Device Defender e o grava no buffer fornecido. O formato do documento JSON esperado por AWS IoT Device Defender é especificado nas métricas do lado do dispositivo no Guia do desenvolvedor.AWS IoT
Publicando o AWS IoT Device Defender relatório
O AWS IoT Device Defender relatório é publicado no tópico MQTT para publicação de relatórios JSON AWS IoT Device Defender . O relatório é construído usando a macroDEFENDER_API_JSON_PUBLISH
, conforme mostrado neste trecho de código
Retorno de chamada tratar respostas
A função publishCallbackDefender_MatchTopic
API da AWS IoT Device Defender biblioteca para verificar se a mensagem MQTT recebida é do AWS IoT Device Defender serviço. Se a mensagem for do AWS IoT Device Defender serviço, ela analisará a resposta JSON recebida e extrairá o ID do relatório na resposta. Em seguida, será verificado se o ID do relatório é o mesmo que foi enviado no relatório.