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

MQTT 主题

MQTT 主题将标识 Amazon IoT 消息。Amazon IoT 客户端通过向消息提供主题名称来标识其发布的消息。客户端通过将主题筛选条件注册到 Amazon IoT Core 来标识要订阅(接收)的消息。消息代理使用主题名称和主题筛选条件将消息从发布客户端传输到订阅客户端。

消息代理使用主题来识别使用 MQTT 发送的消息以及使用 HTTP 发送到 的消息HTTPS 消息 URL

虽然 Amazon IoT 支持某些保留的系统主题,但大多数 MQTT 主题是由您(即系统设计人员)创建和管理的。Amazon IoT 使用主题识别从发布客户端接收的消息,并选择要发送到订阅客户端的消息,如以下各节所述。在为系统创建主题命名空间之前,请查看 MQTT 主题的特征,以创建最适合您的 IoT 系统的主题名称层次结构。

主题名称

主题名称和主题筛选条件是 UTF-8 编码的字符串。它们可以使用正斜杠 (/) 字符分隔层次结构的级别来表示信息的层次结构。例如,此主题名称可以引用房间 1 中的温度传感器:

  • sensor/temperature/room1

在此示例中,其他房间中可能还有其他类型的传感器,其主题名称如下:

  • sensor/temperature/room2

  • sensor/humidity/room1

  • sensor/humidity/room2

注意

在考虑系统中消息的主题名称时,请记住:

  • 主题名称和主题筛选条件区分大小写。

  • 主题名称不得包含个人身份信息。

  • 以 $ 开头的主题名称均为只能由 Amazon IoT Core 使用的预留主题

  • Amazon IoT Core 无法在 Amazon Web Services 账户 或区域之间发送或接收消息。

有关设计主题名称和命名空间的更多信息,请参阅我们的白皮书为 Amazon IoT Core 设计 MQTT 主题

有关应用程序如何发布和订阅消息的示例,请从 Amazon IoT Core 入门Amazon IoT 设备软件开发工具包、移动软件开发工具包和 Amazon IoT Device Client 开始查阅。

重要

主题命名空间仅限于 Amazon Web Services 账户 和区域。例如,一个区域中的某个 Amazon Web Services 账户 使用的 sensor/temp/room1 主题与另一个区域中的同一Amazon账户或任何区域中的任何其他 Amazon Web Services 账户 使用的 sensor/temp/room1 主题不同。

主题 ARN

所有主题 ARN (Amazon Resource Name) 都采用以下形式:

arn:aws:iot:aws-region:AWS-account-ID:topic/Topic

例如,arn:aws:iot:us-west-2:123EXAMPLE456:topic/application/topic/device/sensor 是主题 application/topic/device/sensor 的 ARN。

主题筛选条件

订阅客户端会向消息代理注册主题筛选条件,以指定消息代理应将消息发送到的主题。主题筛选条件可以是用于订阅单个主题的单个主题名称,也可以包含通配符以同时订阅多个主题名称。

发布客户端无法在其发布的主题名称中使用通配符。

下表列出了可在主题筛选条件中使用的通配符。

主题通配符
通配符 匹配项 备注
# 主题层次结构中位于其级别及其以下的所有字符串。

必须是主题筛选条件中的最后一个字符。

必须是其主题层次结构级别中的唯一字符。

可以在还包含 + 通配符的主题筛选条件中使用。

+ 级别中包含字符的任何字符串。

必须是其主题层次结构级别中的唯一字符。

可在主题筛选条件的多个级别中使用。

将通配符用于之前的传感器主题名称示例:

  • sensor/# 订阅接收发布到 sensor/sensor/temperaturesensor/temperature/room1 的消息,但不会接收发布到 Sensor 的消息。

  • sensor/+/room1 订阅接收发布到 sensor/temperature/room1sensor/humidity/room1 的消息,但不会接收发布到 sensor/temperature/room2sensor/humidity/room2 的消息。

主题筛选条件 ARN

所有主题筛选条件 ARN (Amazon Resource Name) 都采用以下形式:

arn:aws:iot:aws-region:AWS-account-ID:topicfilter/TopicFilter

例如,arn:aws:iot:us-west-2:123EXAMPLE456:topicfilter/application/topic/#/sensor 是主题筛选条件 application/topic/#/sensor 的 ARN。