Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
AWS IoT Device Defender Demo
Wichtig
Dies ist eine archivierte Version des FreeRTOS-Benutzerhandbuchs zur Verwendung mit der FreeRTOS-Version 202210.00. Die neueste Version dieses Dokuments finden Sie im FreeRTOS-Benutzerhandbuch.
Einführung
Diese Demo zeigt Ihnen, wie Sie die AWS IoT Device Defender-Bibliothek verwenden, um eine Verbindung herzustellen. AWS IoT Device Defender Die Demo verwendet die CoreMQTT-Bibliothek, um eine MQTT-Verbindung über TLS (gegenseitige Authentifizierung) zum AWS IoT MQTT-Broker herzustellen, und die CoreJSON-Bibliothek, um die vom Dienst empfangenen Antworten zu validieren und zu analysieren. AWS IoT Device Defender Die Demo zeigt Ihnen, wie Sie einen Bericht im JSON-Format mithilfe der vom Gerät gesammelten Metriken erstellen und wie Sie den erstellten Bericht an den Service senden. AWS IoT Device Defender Die Demo zeigt auch, wie Sie eine Callback-Funktion in der CoreMQTT-Bibliothek registrieren, um die Antworten des AWS IoT Device Defender Dienstes zu verarbeiten und zu bestätigen, ob ein gesendeter Bericht akzeptiert oder abgelehnt wurde.
Anmerkung
Folgen Sie den Schritten unter, um die FreeRTOS-Demos einzurichten und auszuführen. Erste Schritte mit FreeRTOS
Funktionalität
Diese Demo erstellt eine einzelne Anwendungsaufgabe, die demonstriert, wie Sie Metriken sammeln, einen Device Defender-Bericht im JSON-Format erstellen und ihn über eine sichere MQTT-Verbindung zum MQTT-Broker an den AWS IoT Device Defender Service senden. AWS IoT Die Demo umfasst sowohl die Standard-Netzwerkmetriken als auch benutzerdefinierte Metriken. Für benutzerdefinierte Metriken umfasst die Demo:
-
Eine Metrik namens "
task_numbers
", die eine Liste von FreeRTOS-Aufgaben darstellt. IDs Der Typ dieser Metrik ist „Zahlenliste“. -
Eine Metrik mit dem Namen "
stack_high_water_mark
", bei der es sich um das Stack-High-Wasserzeichen für die Demo-Anwendungsaufgabe handelt. Der Typ dieser Metrik ist „Zahl“.
Wie wir Netzwerkmetriken sammeln, hängt vom verwendeten TCP/IP-Stack ab. Für FreeRTOS+TCP und unterstützte LwIP-Konfigurationen bieten wir Implementierungen zur Erfassung von Metriken an, die echte Metriken vom Gerät sammeln und sie im Bericht einreichen. AWS IoT Device Defender Sie finden die Implementierungen für FreeRTOS+TCP
Für Boards, die einen anderen TCP/IP-Stack verwenden, bieten wir Stub-Definitionen der Funktionen zur Erfassung von Metriken an, die für alle Netzwerkmetriken Nullen zurückgeben. Implementieren Sie die Funktionen
für Ihren Netzwerk-Stack, um echte Metriken zu senden. Die Datei ist auch auf der GitHubfreertos
/demos/device_defender_for_aws/metrics_collector/stub/metrics_collector.c
Denn ESP32 die Standard-LwIP-Konfiguration verwendet kein Core-Locking und daher verwendet die Demo Stubbed-Metriken. Wenn Sie die Referenzimplementierung zur Erfassung von LWIP-Metriken verwenden möchten, definieren Sie die folgenden Makros 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
Im Folgenden finden Sie ein Beispiel für die Ausgabe, wenn Sie die Demo ausführen.

Wenn dein Board nicht FreeRTOS+TCP oder eine unterstützte LwIP-Konfiguration verwendet, sieht die Ausgabe wie folgt aus.

Der Quellcode der Demo befindet sich in Ihrem Download-Verzeichnis oder auf der
Website. GitHubfreertos
/demos/device_defender_for_aws/
Themen abonnieren AWS IoT Device Defender
Die subscribeToDefenderThemenfunktionDEFENDER_API_JSON_ACCEPTED
, um die Themenzeichenfolge zu erstellen, zu der Antworten auf akzeptierte Device Defender-Berichte eingehen. Es verwendet das MakroDEFENDER_API_JSON_REJECTED
, um die Themenzeichenfolge zu erstellen, zu der Antworten auf abgelehnte Device Defender-Berichte eingehen.
Erfassung von Gerätekennzahlen
Die collectDeviceMetricsmetrics_collector.h
Bei den gesammelten Metriken handelt es sich um die Anzahl der gesendeten und empfangenen Bytes und Pakete, die offenen TCP-Ports, die offenen UDP-Ports und die hergestellten TCP-Verbindungen.
Der AWS IoT Device Defender Bericht wird generiert
Die generateDeviceMetricsBerichtsfunktionreport_builder.h
. Diese Funktion verwendet die Netzwerkmetriken und einen Puffer, erstellt ein JSON-Dokument in dem von erwarteten Format AWS IoT Device Defender und schreibt es in den bereitgestellten Puffer. Das von erwartete Format des JSON-Dokuments AWS IoT Device Defender ist unter Geräteseitige Metriken im AWS IoT Entwicklerhandbuch angegeben.
Den Bericht veröffentlichen AWS IoT Device Defender
Der AWS IoT Device Defender Bericht wird zum MQTT-Thema für die Veröffentlichung von AWS IoT Device Defender JSON-Berichten veröffentlicht. Der Bericht wird mithilfe des Makros erstelltDEFENDER_API_JSON_PUBLISH
, wie in diesem Codeausschnitt
Rückruf zur Bearbeitung von Antworten
Die Funktion publishCallbackDefender_MatchTopic
API aus der AWS IoT Device Defender Bibliothek, um zu überprüfen, ob die eingehende MQTT-Nachricht vom Dienst stammt. AWS IoT Device Defender Wenn die Nachricht vom AWS IoT Device Defender Dienst stammt, analysiert er die empfangene JSON-Antwort und extrahiert die Berichts-ID aus der Antwort. Anschließend wird überprüft, ob die Berichts-ID mit der im Bericht gesendeten identisch ist.