Amazon IoT Device Defender 演示 - FreeRTOS
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon IoT Device Defender 演示

介绍

本演示向您说明如何使用Amazon IoT要连接的设备 Defender 库Amazon IoT Device Defender. 该演示使用 CoreMQTT 库通过 TLS 建立 MQTT 连接(相互身份验证)到Amazon IoTMQTT Broker 和 CoreJSON 库,用于验证和解析从Amazon IoT Device Defender服务。该演示向您展示了如何使用从设备收集的指标来构建 JSON 格式的报告,以及如何将构建的报告提交给Amazon IoT Device Defender服务。该演示还展示了如何在 CoreMQTT 库中注册回调函数以处理来自Amazon IoT Device Defender服务来确认已发送的报告是被接受还是拒绝。

注意

要设置和运行 FreeRTOS 演示,请按照中的步骤操作入门.

功能

此演示创建了一个应用程序任务,演示如何收集指标、以 JSON 格式构建设备防御者报告并将其提交到Amazon IoT Device Defender通过安全的 MQTT 连接到Amazon IoTMQTT 经纪商。该演示包括标准网络指标以及自定义指标。对于自定义指标,演示包括:

  • 名为” 的指标task_numbers“这是 FreeRTOS 任务 ID 的列表。此指标的类型是 “数字列表”。

  • 名为” 的指标stack_high_water_mark“这是演示应用程序任务的堆栈高水位线。此指标的类型是 “数字”。

我们收集网络指标的方式取决于正在使用的 TCP/IP 堆栈。对于 Freeerto+TCP 和支持的 lwIP 配置,我们提供了指标收集实施,这些指标收集实施可以从设备收集真实指标并在Amazon IoT Device Defender报告。你可以找到实现FreeRTOS+TCPlwIP(位于 GitHub 上)。

对于使用任何其他 TCP/IP 堆栈的主板,我们提供指标收集函数的存根定义,这些指标收集函数为所有网络指标返回零。实现中的函数freertos/demos/device_defender_for_aws/metrics_collector/stub/metrics_collector.c让你的网络堆栈发送真实的指标。该文件也在GitHub网站.

对于 ESP32,默认 lwIP 配置不使用核心锁定,因此演示将使用存根指标。如果要使用参考 lwIP 指标收集实现,请在中定义以下宏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

下面是运行演示时的示例输出。

如果你的主板没有使用 Freeerto+TCP 或支持的 lwIP 配置,则输出将如下所示。

演示的源代码在下载中freertos/demos/device_defender_for_aws/目录或GitHub网站.

订阅Amazon IoT Device Defender话题

这些区域有:订阅 Defender 主题函数订阅了 MQTT 主题,将收到对已发布的 Device Defender 报告的回复。它使用宏DEFENDER_API_JSON_ACCEPTED以构造主题字符串,用于接收接受的设备防御者报告的响应。它使用宏DEFENDER_API_JSON_REJECTED以构造主题字符串,用于接收拒绝的设备防御者报告的响应。

收集设备指标

这些区域有:收集 DeviceMetrics函数使用中定义的函数收集网络指标metrics_collector.h. 收集的指标包括发送和接收的字节数和数据包数、打开的 TCP 端口、开放的 UDP 端口以及已建立的 TCP 连接。

生成Amazon IoT Device Defender报告

这些区域有:生成设备指标报告函数使用中定义的函数生成设备防御者报告report_builder.h. 该函数采用网络指标和缓冲区,按照预期的格式创建 JSON 文档Amazon IoT Device Defender然后将其写入提供的缓冲区。期望的 JSON 文档格式Amazon IoT Device Defender在中指定设备端指标中的Amazon IoT开发人员指南.

发布Amazon IoT Device Defender报告

这些区域有:Amazon IoT Device Defender在 MQTT 主题上发布报告,用于发布 JSONAmazon IoT Device Defender报告。该报告是使用宏来构建的DEFENDER_API_JSON_PUBLISH,如本所示代码段在 GitHub 网站上。

处理回复的回调

这些区域有:发布回调函数处理传入的 MQTT 发布消息。它使用Defender_MatchTopic从中提供 APIAmazon IoT Device Defender库来检查传入的 MQTT 消息是否来自Amazon IoT Device Defender服务。如果消息来自Amazon IoT Device Defender服务,它会解析收到的 JSON 响应并在响应中提取报告 ID。然后验证报告 ID 与报告中发送的 ID 相同。