Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
AWS IoT Device Defender demo
Importante
Questa demo è ospitata nel repository Amazon-FreeRTOS che è obsoleto. Ti consigliamo di iniziare da qui quando crei un nuovo progetto. Se disponi già di un progetto FreeRTOS esistente basato sull'ormai obsoleto repository Amazon-FreerTOS, consulta il. Guida alla migrazione del RTOS repository Github gratuito da Amazon
Introduzione
Questa demo mostra come utilizzare la libreria Device Defender a cui connettersi. AWS IoT AWS IoT Device Defender La demo utilizza la libreria CoreMQTT per stabilire una connessione MQTT tramite TLS (autenticazione reciproca) a AWS IoT MQTT Broker e la libreria CoreJSON per convalidare e analizzare le risposte ricevute dal servizio. AWS IoT Device Defender La demo mostra come creare un report in formato JSON utilizzando le metriche raccolte dal dispositivo e come inviare il report costruito al servizio. AWS IoT Device Defender La demo mostra anche come registrare una funzione di callback con la libreria CoreMQTT per gestire le risposte del AWS IoT Device Defender servizio e confermare se un report inviato è stato accettato o rifiutato.
Nota
Per configurare ed eseguire le demo di FreerTOS, segui i passaggi indicati. Inizia con Free RTOS
Funzionalità
Questa demo crea un'unica attività applicativa che dimostra come raccogliere metriche, creare un report Device Defender in formato JSON e inviarlo al AWS IoT Device Defender servizio tramite una connessione MQTT sicura a MQTT Broker. AWS IoT La demo include le metriche di rete standard e le metriche personalizzate. Per quanto riguarda le metriche personalizzate, la demo include:
-
Una metrica denominata "
task_numbers
" che è un elenco di ID di attività FreerTOS. Il tipo di questa metrica è «elenco di numeri». -
Una metrica denominata "
stack_high_water_mark
" che indica lo stack high watermark per l'attività dell'applicazione demo. Il tipo di questa metrica è «numero».
Il modo in cui raccogliamo le metriche di rete dipende dallo stack TCP/IP in uso. Per FreeRTOS+TCP e configurazioni LWIP supportate, forniamo implementazioni di raccolta di metriche che raccolgono metriche reali dal dispositivo e le inviano nel rapporto. AWS IoT Device Defender Puoi trovare le implementazioni per FreeRTOS+TCP e LWip su
Per le schede che utilizzano qualsiasi altro stack TCP/IP, forniamo definizioni stub delle funzioni di raccolta delle metriche che restituiscono zeri per tutte le metriche di rete. Implementa le funzioni nel tuo stack di rete
per inviare metriche reali. Il file è disponibile anche sul sito Web. GitHubfreertos
/demos/device_defender_for_aws/metrics_collector/stub/metrics_collector.c
Per ESP32, la configurazione LWip predefinita non utilizza il core locking e pertanto la demo utilizzerà metriche stubbed. Se desideri utilizzare l'implementazione della raccolta di metriche LWip di riferimento, definisci le seguenti macro in: 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
Di seguito è riportato un esempio di output quando si esegue la demo.

Se la scheda non utilizza FreeRTOS+TCP o una configurazione LWIP supportata, l'output sarà simile al seguente.

Il codice sorgente della demo si trova nella
directory di download o sul sito Web. GitHubfreertos
/demos/device_defender_for_aws/
Iscrizione agli argomenti AWS IoT Device Defender
La funzione subscribeToDefenderTopics sottoscrive gli argomentiDEFENDER_API_JSON_ACCEPTED
per costruire la stringa dell'argomento in base alla quale vengono ricevute le risposte ai report di Device Defender accettati. Utilizza la macro DEFENDER_API_JSON_REJECTED
per costruire la stringa dell'argomento in base alla quale verranno ricevute le risposte ai report di Device Defender rifiutati.
Raccolta delle metriche dei dispositivi
La collectDeviceMetricsmetrics_collector.h
Le metriche raccolte sono il numero di byte e pacchetti inviati e ricevuti, le porte TCP aperte, le porte UDP aperte e le connessioni TCP stabilite.
Generazione del report AWS IoT Device Defender
La funzione generateDeviceMetricsReportreport_builder.h
. Questa funzione prende le metriche di rete e un buffer, crea un documento JSON nel formato previsto da AWS IoT Device Defender e lo scrive nel buffer fornito. Il formato del documento JSON previsto da AWS IoT Device Defender è specificato nelle metriche lato dispositivo nella Guida per gli sviluppatori.AWS IoT
Pubblicazione del rapporto AWS IoT Device Defender
Il AWS IoT Device Defender rapporto è pubblicato sull'argomento MQTT per la pubblicazione di report JSON AWS IoT Device Defender . Il report viene creato utilizzando la macroDEFENDER_API_JSON_PUBLISH
, come illustrato in questo frammento di codice
Callback per la gestione delle risposte
La funzione publishCallbackDefender_MatchTopic
API della AWS IoT Device Defender libreria per verificare se il messaggio MQTT in arrivo proviene dal servizio. AWS IoT Device Defender Se il messaggio proviene dal AWS IoT Device Defender servizio, analizza la risposta JSON ricevuta ed estrae l'ID del rapporto nella risposta. L'ID del rapporto viene quindi verificato in modo che sia lo stesso di quello inviato nel rapporto.