

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

# MQTT 主题
<a name="topics"></a>

MQTT 主题用于标识 AWS IoT 消息。 AWS IoT 客户通过提供消息主题名称来识别他们发布的消息。客户端通过将主题筛选条件注册到 AWS IoT Core来标识要订阅（接收）的消息。消息代理使用主题名称和主题筛选条件将消息从发布客户端传输到订阅客户端。

消息代理使用主题来识别使用 MQTT 发送的消息以及使用 HTTP 发送到 [HTTPS 消息 URL](http.md#httpurl) 的消息。

虽然 AWS IoT 支持一些[保留的系统主题](reserved-topics.md)，但大多数 MQTT 主题是由您（即系统设计者）创建和管理的。 AWS IoT 使用主题来识别从发布客户端收到的消息，并选择要发送给订阅客户端的消息，如以下各节所述。在为系统创建主题命名空间之前，请查看 MQTT 主题的特征，以创建最适合您的物联网系统的主题名称层次结构。

## 主题名称
<a name="topicnames"></a>

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

在此示例中，其他房间中可能还有其它类型的传感器，其主题名称如下：
+ `sensor/temperature/room2`
+ `sensor/humidity/room1`
+ `sensor/humidity/room2`

**注意**  
在考虑系统中消息的主题名称时，请记住：  
主题名称和主题筛选条件区分大小写。
主题名称不得包含个人身份信息。
以 \$1 开头的主题名称均为只能由 AWS IoT Core使用的[预留主题](reserved-topics.md)。
AWS IoT Core 无法在 AWS 账户 s 或地区之间发送或接收消息。

有关设计主题名称和命名空间的更多信息，请参阅我们的白皮书《[为 AWS IoT Core Core 设计 MQTT 主题](https://docs.aws.amazon.com/whitepapers/latest/designing-mqtt-topics-aws-iot-core/designing-mqtt-topics-aws-iot-core.html)》。

有关应用程序如何发布和订阅消息的示例，请从 [AWS IoT Core 教程入门](iot-gs.md) 和 [AWS IoT Device SDK、Mobile SDK 和 AWS IoT Device Client](iot-sdks.md) 开始查阅。

**重要**  
主题命名空间仅限于 AWS 账户 和区域。例如，一个区域 AWS 账户 中某人使用的`sensor/temp/room1`主题与另一个区域的同一个 AWS 账户使用的`sensor/temp/room1`主题或任何其他区域中任何其他 AWS 账户 账户使用的主题不同。

## 主题 ARN
<a name="topicnames-arn"></a>

所有主题 ARNs （Amazon 资源名称）的格式如下：

```
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。

## 主题名称筛选条件
<a name="topicfilters"></a>

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

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

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


**主题通配符**  

| 通配符 | Matches | 注意 | 
| --- | --- | --- | 
| \$1 | 主题层次结构中位于其级别及其以下的所有字符串。 |  必须是主题筛选条件中的最后一个字符。 必须是其主题层次结构级别中的唯一字符。 可以在还包含 \$1 通配符的主题筛选条件中使用。  | 
| \$1 | 级别中包含字符的任何字符串。 |  必须是其主题层次结构级别中的唯一字符。 可在主题筛选条件的多个级别中使用。  | 

将通配符用于之前的传感器主题名称示例：
+ `sensor/#` 订阅接收发布到 `sensor/`、`sensor/temperature` 和 `sensor/temperature/room1` 的消息，但不会接收发布到 `sensor` 的消息。
+ `sensor/+/room1` 订阅接收发布到 `sensor/temperature/room1` 和 `sensor/humidity/room1` 的消息，但不会接收发布到 `sensor/temperature/room2` 或 `sensor/humidity/room2` 的消息。

### 主题筛选条件 ARN
<a name="topicfilters-arn"></a>

所有主题筛选条件 ARNs （Amazon 资源名称）均采用以下格式：

```
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。

# MQTT 消息有效载荷
<a name="topicdata"></a>

在您的 MQTT 消息中发送的消息有效负载不是由指定的 AWS IoT，除非它是针对其中一个。[保留的主题](reserved-topics.md)为了满足应用程序的需求，我们建议您在[协议的AWS IoT Core 服务配额](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#iot-protocol-limits)限制范围内为主题定义消息有效载荷。

对消息负载使用 JSON 格式可以让 AWS IoT 规则引擎解析您的消息并对其应用 SQL 查询。如果应用程序不需要规则引擎将 SQL 查询应用于消息有效载荷，则您可以使用应用程序所需的任何数据格式。有关 SQL 查询中使用的 JSON 文档中的限制和预留字符的信息，请参阅 [JSON 扩展](iot-sql-json.md)。

有关设计 MQTT 主题及其相应的消息有效载荷的更多信息，请参阅[为 AWS IoT Core设计 MQTT 主题](https://docs.aws.amazon.com/whitepapers/latest/designing-mqtt-topics-aws-iot-core/designing-mqtt-topics-aws-iot-core.html)。

如果消息大小限制超过服务配额，则会导致 `CLIENT_ERROR`，并显示原因 `PAYLOAD_LIMIT_EXCEEDED` 和“消息有效载荷超过消息类型的大小限制。” 有关消息大小限制的更多信息，请参阅 [AWS IoT Core 消息代理限制和配额](https://docs.aws.amazon.com//general/latest/gr/iot-core.html#message-broker-limits.html)。

# 保留的主题
<a name="reserved-topics"></a>

以美元符号 (\$1) 开头的主题保留供使用 AWS IoT。您可以在允许的情况下订阅和发布到这些保留的主题；但是，您不能创建以美元符号开头的新主题。对保留的主题执行不受支持的发布或订阅操作可能会导致连接终止。

## 资产模型主题
<a name="reserved-topics-other"></a>


| Topic | 允许的客户端操作 | 说明 | 
| --- | --- | --- | 
|  \$1 aws/sitewise/asset-models/ /assets*assetModelId*//properties/ *assetId* *propertyId*  |  Subscribe  |  AWS IoT SiteWise 向该主题发布资产属性通知。有关更多信息，请参阅《*AWS IoT SiteWise 用户指南》*中的[与其他 AWS 服务交互](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/interact-with-other-services.html)。  | 

## AWS IoT Device Defender 话题
<a name="reserved-topics-device-defender"></a>

这些消息支持简明二进制对象表示 (CBOR) 格式和 JavaScript 对象表示法 (JSON) 的响应缓冲区，具体取决于*payload-format*主题。 AWS IoT Device Defender 仅主题支持 MQTT 发布。


| *payload-format* | 响应格式数据类型 | 
| --- | --- | 
| cbor | 简洁二进制对象表示法 (CBOR) | 
| json | JavaScript 对象表示法 (JSON) | 

有关更多信息，请参阅[从设备发送指标](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/detect-device-side-metrics.html#DetectMetricsMessages)。


| Topic | 允许的操作 | 说明 | 
| --- | --- | --- | 
|  \$1aw *thingName* s/things/ /defender/metrics/ *payload-format*  |  发布  |  AWS IoT Device Defender 代理向该主题发布指标。有关更多信息，请参阅[从设备发送指标](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/detect-device-side-metrics.html#DetectMetricsMessages)。  | 
|  \$1aws/things/ /defender/metrics//*thingName*已接受 *payload-format*  |  Subscribe  |  AWS IoT 在 AWS IoT Device Defender 代理成功向 \$1aws/things/ /defender/ *thingName* metrics/ 发布消息后，向该主题发布消息。*payload-format*有关更多信息，请参阅[从设备发送指标](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/detect-device-side-metrics.html#DetectMetricsMessages)。  | 
|  \$1aws/things/ /defender/metrics//*thingName*被拒绝 *payload-format*  |  Subscribe  |  AWS IoT 在 AWS IoT Device Defender 代理向 \$1aws/things/ /defender/ *thingName* metrics/ 发布一条失败的消息后，向该主题发布消息。*payload-format*有关更多信息，请参阅[从设备发送指标](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/detect-device-side-metrics.html#DetectMetricsMessages)。  | 

## AWS IoT Core 设备位置主题
<a name="reserved-topics-device-location"></a>

AWS IoT Core 设备位置可以解析来自您设备的测量数据，并提供物联网设备的估计位置。来自设备的测量数据可以包括 GNSS、Wi-Fi、蜂窝和 IP 地址。 AWS IoT Core 然后，Device Location 会选择能够提供最佳精度并求解设备位置信息的测量类型。有关更多信息，请参阅[AWS IoT Core 设备位置](device-location.md)和[使用设备位置解析 AWS IoT Core 设备位置 MQTT 主题](device-location-reserved-topics.md)。


| Topic | 允许的操作 | 说明 | 
| --- | --- | --- | 
|  \$1aw *customer\$1device\$1id* s/device\$1location/ /get\$1position\$1  |  发布  |  设备向本主题发布信息，以获取扫描的原始测量数据，以便通过 “ AWS IoT Core 设备位置” 进行解析。  | 
|  \$1aw *customer\$1device\$1id* s/device\$1location/ /get\$1position\$1estimat  |  Subscribe  |  AWS IoT Core 成功解析设备位置后，设备位置将发布到此主题中。  | 
|  \$1aw *customer\$1device\$1id* s/device\$1location/ /get\$1position\$1estimat  |  Subscribe  |  AWS IoT Core 当 “设备位置” 因 4xx 错误而无法成功解析设备位置时，它会发布到此主题中。  | 

## 事件主题
<a name="reserved-topics-event"></a>

在发生特定事件时将发布事件消息。例如，在添加、更新或删除事物时，由注册表生成事件。该表显示了各种 AWS IoT 活动及其保留的主题。


| Topic | 允许的客户端操作 | 说明 | 
| --- | --- | --- | 
|  \$1aws/events/certificates/registered/*caCertificateId*  |  Subscribe  |  AWS IoT 当 AWS IoT 自动注册证书以及客户端出示带有`PENDING_ACTIVATION`状态的证书时，会发布此消息。有关更多信息，请参阅 [配置客户端的首次连接以进行自动注册](auto-register-device-cert.md#configure-auto-reg-first-connect)。  | 
|  \$1aws/events/job/*jobID*/已取消  |  Subscribe  | AWS IoT 取消任务时会发布此消息。有关更多信息，请参阅 [任务事件](events-jobs.md)。 | 
| \$1aws/events/job/jobID/取消正在进行中 |  Subscribe  | AWS IoT 在取消任务时发布此消息。有关更多信息，请参阅 [任务事件](events-jobs.md)。 | 
|  \$1aws/events/job/*jobID*/已完成  |  Subscribe  | AWS IoT 任务完成后发布此消息。有关更多信息，请参阅 [任务事件](events-jobs.md)。 | 
| \$1aws/events/job/jobID/已删除 |  Subscribe  | AWS IoT 删除作业时会发布此消息。有关更多信息，请参阅 [任务事件](events-jobs.md)。 | 
| \$1aws/events/job/jobID/deletion\$1in\$1progress |  Subscribe  | AWS IoT 删除任务时会发布此消息。有关更多信息，请参阅 [任务事件](events-jobs.md)。 | 
| \$1aws/events/jobExecution/jobID/已取消 |  Subscribe  | AWS IoT 取消任务执行时会发布此消息。有关更多信息，请参阅 [任务事件](events-jobs.md)。 | 
| \$1aws/events/jobExecution/jobID/已删除 |  Subscribe  | AWS IoT 删除任务执行时会发布此消息。有关更多信息，请参阅 [任务事件](events-jobs.md)。 | 
| \$1aws/events/jobExecution/jobID/failed |  Subscribe  | AWS IoT 任务执行失败时发布此消息。有关更多信息，请参阅 [任务事件](events-jobs.md)。 | 
| \$1aws/events/jobExecution/jobID/已拒绝 |  Subscribe  | AWS IoT 在任务执行被拒绝时发布此消息。有关更多信息，请参阅 [任务事件](events-jobs.md)。 | 
| \$1aws/events/jobExecution/jobID/已移除 |  Subscribe  | AWS IoT 删除任务执行时会发布此消息。有关更多信息，请参阅 [任务事件](events-jobs.md)。 | 
| \$1aws/events/jobExecution/jobID/成功了 |  Subscribe  | AWS IoT 任务执行成功后发布此消息。有关更多信息，请参阅 [任务事件](events-jobs.md)。 | 
| \$1aws/events/jobExecution/jobID/timed\$1out |  Subscribe  | AWS IoT 在任务执行超时时时发布此消息。有关更多信息，请参阅 [任务事件](events-jobs.md)。 | 
|  \$1aws/events/presence/connected/*clientId*  |  Subscribe  |  AWS IoT 当具有指定客户端 ID 的 MQTT 客户端连接到时，将发布到 AWS IoT此主题。有关更多信息，请参阅 [连接/断开连接事件](life-cycle-events.md#connect-disconnect)。  | 
|  \$1aws/events/presence/disconnected/*clientId*  |  Subscribe  |  AWS IoT 当具有指定客户端 ID 的 MQTT 客户端断开连接时，将发布到此主题。 AWS IoT有关更多信息，请参阅 [连接/断开连接事件](life-cycle-events.md#connect-disconnect)。  | 
|  \$1aws/events/subscriptions/subscribed/*clientId*  |  Subscribe  |  AWS IoT 当具有指定客户端 ID 的 MQTT 客户端订阅 MQTT 主题时，将发布到此主题。有关更多信息，请参阅 [订阅/取消订阅事件](life-cycle-events.md#subscribe-unsubscribe-events)。  | 
|  \$1aws/events/subscriptions/unsubscribed/*clientId*  |  Subscribe  |  AWS IoT 当具有指定客户端 ID 的 MQTT 客户端取消订阅 MQTT 主题时，将发布到此主题。有关更多信息，请参阅 [订阅/取消订阅事件](life-cycle-events.md#subscribe-unsubscribe-events)。  | 
|  \$1aws/events/thing/*thingName*/created  |  Subscribe  |  AWS IoT 在创建*thingName*事物时向该主题发布。有关更多信息，请参阅 [注册表事件](registry-events.md)。  | 
|  \$1aws/events/thing/*thingName*/已更新  |  Subscribe  |  AWS IoT *thingName*事物更新时向该主题发布。有关更多信息，请参阅 [注册表事件](registry-events.md)。  | 
|  \$1aws/events/thing/*thingName*/已删除  |  Subscribe  |  AWS IoT 删除内容后，将*thingName*发布到此主题。有关更多信息，请参阅 [注册表事件](registry-events.md)。  | 
|  \$1aws/events/thingGroup/*thingGroupName*/created  |  Subscribe  |  AWS IoT 在创建事物组*thingGroupName*时向该主题发布内容。有关更多信息，请参阅 [注册表事件](registry-events.md)。  | 
|  \$1aws/events/thingGroup/*thingGroupName*/已更新  |  Subscribe  |  AWS IoT 事物组*thingGroupName*更新时发布到此主题。有关更多信息，请参阅 [注册表事件](registry-events.md)。  | 
|  \$1aws/events/thingGroup/*thingGroupName*/已删除  |  Subscribe  |  AWS IoT 删除事物组*thingGroupName*后，向该主题发布内容。有关更多信息，请参阅 [注册表事件](registry-events.md)。  | 
|  \$1aws/events/thingType/*thingTypeName*/created  |  Subscribe  |  AWS IoT 在创建*thingTypeName*事物类型时向该主题发布。有关更多信息，请参阅 [注册表事件](registry-events.md)。  | 
|  \$1aws/events/thingType/*thingTypeName*/已更新  |  Subscribe  |  AWS IoT 在*thingTypeName*事物类型更新时向该主题发布。有关更多信息，请参阅 [注册表事件](registry-events.md)。  | 
|  \$1aws/events/thingType/*thingTypeName*/已删除  |  Subscribe  |  AWS IoT 删除*thingTypeName*事物类型后，将发布到该主题。有关更多信息，请参阅 [注册表事件](registry-events.md)。  | 
|  \$1aws/events/thingTypeAssociation/thing/*thingName*/*thingTypeName*  |  Subscribe  |  AWS IoT 当事物与事物类型关联或与事物*thingName*类型*thingTypeName*取消关联时，发布到此主题。有关更多信息，请参阅 [注册表事件](registry-events.md)。  | 
|  \$1aws/events/thingGroupMembership/thingGroup//t *thingGroupName* hing/ /add *thingName* ed  |  Subscribe  |   AWS IoT 将事物添加到事物*thingName*组时发布到此主题*thingGroupName*。有关更多信息，请参阅 [注册表事件](registry-events.md)。  | 
|  \$1aws/events/thingGroupMembership/thingGroup//t *thingGroupName* hing//*thingName*已移除  |  Subscribe  |   AWS IoT 将事物从事物*thingName*组中移除后发布到此主题*thingGroupName*。有关更多信息，请参阅 [注册表事件](registry-events.md)。  | 
|   \$1aws/events/thingGroupHierarchy/thingGroup//*parentThingGroupName*childThingGroup///已添*childThingGroupName*加  |  Subscribe  |   AWS IoT 将事物组添加到事物组后*childThingGroupName*，将发布到该主题*parentThingGroupName*。有关更多信息，请参阅 [注册表事件](registry-events.md)。  | 
|   \$1aws/events/thingGroupHierarchy/thingGroup//*parentThingGroupName*childThingGroup///已移*childThingGroupName*除  |  Subscribe  |   AWS IoT 将事物组从事物组*childThingGroupName*中移除后发布到此主题*parentThingGroupName*。有关更多信息，请参阅 [注册表事件](registry-events.md)。  | 

## 队列预调配主题
<a name="reserved-topics-fleet"></a>

**注意**  
此表中标为 **R** eceive 的客户端操作表示直接向请求它的客户端 AWS IoT 发布的主题，无论该客户是否订阅了该主题。即使客户端尚未订阅这些消息，也会收到这些消息。这些响应消息不会通过消息代理，也无法由其它客户端或规则订阅。

这些消息支持简明二进制对象表示 (CBOR) 格式和 JavaScript 对象表示法 (JSON) 的响应缓冲区，具体取决于*payload-format*主题。


| *payload-format* | 响应格式数据类型 | 
| --- | --- | 
| cbor | 简洁二进制对象表示法 (CBOR) | 
| json | JavaScript 对象表示法 (JSON) | 

有关更多信息，请参阅 [设备预调配 MQTT API](fleet-provision-api.md)。


| Topic | 允许的客户端操作 | 说明 | 
| --- | --- | --- | 
|  \$1aws/certificates/create/*payload-format*  |  发布  |  发布到此主题以从证书签名请求（CSR）创建证书。  | 
|  \$1aws/certificates/create/*payload-format*/已接受  |  订阅，接收  |  AWS IoT 成功调用 \$1aws/certificates/create/后发布到此主题*payload-format*。  | 
|  \$1aws/certificates/create/*payload-format*/已拒绝  |  订阅，接收  |  AWS IoT 在调用 \$1aws/certificates/create/失败后发布到此主题*payload-format*。  | 
|  \$1 aws/certificates/create-from-csr/ *payload-format*  |  发布  |  发布到此主题以从 CSR 创建证书。  | 
|  \$1 aws/certificates/create-from-csr/ //accep *payload-format* ted  |  订阅，接收  |  AWS IoT 向此主题发布对 \$1 aws/certificates/create-from-*payload-format* csr/ 的成功调用。  | 
|  \$1 aws/certificates/create-from-csr///*payload-format*已拒绝  | 订阅，接收 |  AWS IoT 向此主题发布了对 \$1 aws/certificates/create-from-*payload-format* csr/ 的调用失败。  | 
|  \$1aw *templateName* s/配置模板//provision/ *payload-format*  |  发布  |  发布到此主题以注册事物。  | 
|  \$1aws/provisioning-templates////prov *templateName* *payload-format*  | 订阅，接收 |  AWS IoT 在成功调用 \$1aws/provisioning-templates//*templateName*provision/ 后发布到此主题。*payload-format*  | 
|  \$1aws/provisioning-templates////*templateName*已拒绝 *payload-format*  |  订阅，接收  |  AWS IoT 在调用 \$1aws/provisioning-templates//*templateName*provision/ 失败后发布到此主题。*payload-format*  | 

## 任务主题
<a name="reserved-topics-job"></a>

**注意**  
此表中标为 **R** eceive 的客户端操作表示直接向请求它的客户端 AWS IoT 发布的主题，无论该客户是否订阅了该主题。即使客户端尚未订阅这些消息，也会收到这些消息。  
这些响应消息不会通过消息代理，也无法由其它客户端或规则订阅。要订阅与消息相关的任务活动，请使用 `notify` 和 `notify-next` 主题。  
当订阅任务和您的实例集监控解决方案的 `jobExecution` 事件主题时，您必须首先启用[任务和任务执行事件](iot-events.md)接收云端的任何事件。  
有关更多信息，请参阅 [任务设备 MQTT API 操作](jobs-mqtt-api.md)。


| Topic | 允许的客户端操作 | 说明 | 
| --- | --- | --- | 
|  \$1aw *thingName* s/things/ /jobs/get  |  发布  |  设备向此主题发布一条消息以发出 `GetPendingJobExecutions` 请求。有关更多信息，请参阅 [任务设备 MQTT API 操作](jobs-mqtt-api.md)。  | 
|  \$1aw *thingName* s/things//jobs/get/accepted  |  订阅，接收  |  设备订阅此主题以接收来自 `GetPendingJobExecutions` 请求的成功响应。有关更多信息，请参阅 [任务设备 MQTT API 操作](jobs-mqtt-api.md)。  | 
|  \$1aw *thingName* s/things//jobs/get/rejected  |  订阅，接收  |  当 `GetPendingJobExecutions` 请求被拒绝时，设备会订阅此主题以接收响应。有关更多信息，请参阅 [任务设备 MQTT API 操作](jobs-mqtt-api.md)。  | 
|  \$1aw *thingName* s/things/ /jobs/start-nex  |  发布  |  设备向此主题发布一条消息以发出 `StartNextPendingJobExecution` 请求。有关更多信息，请参阅 [任务设备 MQTT API 操作](jobs-mqtt-api.md)。  | 
|  \$1aw *thingName* s/things//jobs/start-next/accepted  |  订阅，接收  |  设备订阅此主题以接收 `StartNextPendingJobExecution` 请求的成功响应。有关更多信息，请参阅 [任务设备 MQTT API 操作](jobs-mqtt-api.md)。  | 
|  \$1aw *thingName* s/things//jobs/start-next/rejected  |  订阅，接收  |  当 `StartNextPendingJobExecution` 请求被拒绝时，设备会订阅此主题以接收响应。有关更多信息，请参阅 [任务设备 MQTT API 操作](jobs-mqtt-api.md)。  | 
|  \$1aws/things/ /jobs/ /g *thingName* et *jobId*  |  发布  |  设备向此主题发布一条消息以发出 `DescribeJobExecution` 请求。有关更多信息，请参阅 [任务设备 MQTT API 操作](jobs-mqtt-api.md)。  | 
|  \$1aws/things/ /jobs/ /get/acc *thingName* ept *jobId*  |  订阅，接收  |  设备订阅此主题以接收 `DescribeJobExecution` 请求的成功响应。有关更多信息，请参阅 [任务设备 MQTT API 操作](jobs-mqtt-api.md)。  | 
|  \$1aws/things/ /jobs/ /get/rec *thingName* tion *jobId*  |  订阅，接收  |  当 `DescribeJobExecution` 请求被拒绝时，设备会订阅此主题以接收响应。有关更多信息，请参阅 [任务设备 MQTT API 操作](jobs-mqtt-api.md)。  | 
|  \$1aws/things/ /jobs/ /更新 *thingName* *jobId*  |  发布  |  设备向此主题发布一条消息以发出 `UpdateJobExecution` 请求。有关更多信息，请参阅 [任务设备 MQTT API 操作](jobs-mqtt-api.md)。  | 
|  \$1aws/things/ /jobs/ /更新/ *thingName* 已接受 *jobId*  |  订阅，接收  |  设备订阅此主题以接收 `UpdateJobExecution` 请求的成功响应。有关更多信息，请参阅 [任务设备 MQTT API 操作](jobs-mqtt-api.md)。  备注 只有发布到 \$1aws/things//*thingName*jobs/ /update 的设备才会收到有关此主题的*jobId*消息。   | 
|  \$1aws/things/ /jobs/ /update/ *thingName* 已拒绝 *jobId*  |  订阅，接收  |  当 `UpdateJobExecution` 请求被拒绝时，设备会订阅此主题以接收响应。有关更多信息，请参阅 [任务设备 MQTT API 操作](jobs-mqtt-api.md)。  备注 只有发布到 \$1aws/things//*thingName*jobs/ /update 的设备才会收到有关此主题的*jobId*消息。   | 
|  \$1aw *thingName* s/things//jobs/noti  |  订阅，接收  |  设备订阅此主题，以在某个事物的待处理执行列表中添加或删除了任务执行时接收通知。有关更多信息，请参阅 [任务设备 MQTT API 操作](jobs-mqtt-api.md)。  | 
|  \$1aw *thingName* s/things/ /jobs/notify-nex  |  订阅，接收  |  设备订阅此主题，以在事物的下一个待处理任务执行发生更改时接收通知。有关更多信息，请参阅 [任务设备 MQTT API 操作](jobs-mqtt-api.md)。  | 
|  \$1aws/events/job/*jobId*/已完成  |  Subscribe  |  当某个任务完成时，任务服务在此主题上发布事件。有关更多信息，请参阅 [任务事件](events-jobs.md)。  | 
|  \$1aws/events/job/*jobId*/已取消  |  Subscribe  |  当取消某个任务时，任务服务在此主题上发布事件。有关更多信息，请参阅 [任务事件](events-jobs.md)。  | 
|  \$1aws/events/job/*jobId*/已删除   |  Subscribe  |  当删除某个任务时，任务服务在此主题上发布事件。有关更多信息，请参阅 [任务事件](events-jobs.md)。  | 
|  \$1aws/events/job/*jobId*/取消正在进行中   |  Subscribe  |  当开始取消某个任务时，任务服务在此主题上发布事件。有关更多信息，请参阅 [任务事件](events-jobs.md)。  | 
|  \$1aws/events/job/*jobId*/deletion\$1in\$1progress   |  Subscribe  |  当开始删除某个任务时，任务服务在此主题上发布事件。有关更多信息，请参阅 [任务事件](events-jobs.md)。  | 
|  \$1aws/events/jobExecution/*jobId*/成功了   |  Subscribe  |  当任务执行成功时，任务服务在此主题上发布事件。有关更多信息，请参阅 [任务事件](events-jobs.md)。  | 
|  \$1aws/events/jobExecution/*jobId*/failed   |  Subscribe  |  当任务执行失败时，任务服务在此主题上发布事件。有关更多信息，请参阅 [任务事件](events-jobs.md)。  | 
|  \$1aws/events/jobExecution/*jobId*/已拒绝   |  Subscribe  |  当任务执行被拒绝时，任务服务在此主题上发布事件。有关更多信息，请参阅 [任务事件](events-jobs.md)。  | 
|  \$1aws/events/jobExecution/*jobId*/已取消   |  Subscribe  |  当任务执行取消时，任务服务在此主题上发布事件。有关更多信息，请参阅 [任务事件](events-jobs.md)。  | 
|  \$1aws/events/jobExecution/*jobId*/timed\$1out   |  Subscribe  |  当任务执行超时时，任务服务在此主题上发布事件。有关更多信息，请参阅 [任务事件](events-jobs.md)。  | 
|  \$1aws/events/jobExecution/*jobId*/已移除   |  Subscribe  |  当任务执行被移除时，任务服务在此主题上发布事件。有关更多信息，请参阅 [任务事件](events-jobs.md)。  | 
|  \$1aws/events/jobExecution/*jobId*/已删除   |  Subscribe  |  当任务执行被删除时，任务服务在此主题上发布事件。有关更多信息，请参阅 [任务事件](events-jobs.md)。  | 

## 命令主题
<a name="reserved-topics-commands"></a>

**注意**  
此表中标为 **R** eceive 的客户端操作表示直接向请求它的客户端 AWS IoT 发布的主题，无论该客户是否订阅了该主题。即使客户端尚未订阅这些消息，也会收到这些消息。  
这些响应消息不会通过消息代理，也无法由其它客户端或规则订阅。


| Topic | 允许的客户端操作 | 说明 | 
| --- | --- | --- | 
|  \$1aws/commands/ //executions/ /requ *<devices>* est/ *<DeviceID>* *<ExecutionId>* *<PayloadFormat>* \$1aws/commands/ //executions/ /reques *<devices>* *<DeviceID>* *<ExecutionId>*  |  订阅，接收  |  当从控制台或使用 `StartCommandExecution` API 请求启动命令执行时，设备会在此主题上收到一条消息。在本例中，*<devices>*可以是物联网事物或 MQTT 客户端，*<DeviceID>*可以是物联网事物名称或 MQTT 客户端 ID。  | 
|  \$1aws/commands/ //executions/ /respons *<devices>* e/ *<DeviceID>* *<ExecutionId>* *<PayloadFormat>*  |  发布  |  设备使用 `UpdateCommandExecution` MQTT API 将有关命令执行的消息发布到此主题。该消息是作为对从控制台或使用 `StartCommandExecution` API 启动命令执行请求的响应而发布的。发布的消息将使用 JSON 或 CBOR 作为。*<PayloadFormat>*  | 
|  \$1aws/commands/ //exections/ /response/acc *<devices>* epted/ *<DeviceID>* *<ExecutionId>* *<PayloadFormat>* \$1aws/commands/ //exections/ /respons *<devices>* e/acce *<DeviceID>* *<ExecutionId>*  |  订阅，接收  |  如果云服务成功处理了命令执行结果， AWS IoT Device Management 会向 /accepted 主题发布响应。  | 
|  \$1aws/commands/ //executions/ /response/rejec *<devices>* ted/ *<DeviceID>* *<ExecutionId>* *<PayloadFormat>* \$1aws/commands/ //executions/ /response/已拒绝 *<devices>* *<DeviceID>* *<ExecutionId>*  |  发布  |  如果云服务未能处理命令执行结果， AWS IoT Device Management 会向 /rejected 主题发布响应。  | 

## 规则主题
<a name="reserved-topics-rule"></a>


| Topic | 允许的客户端操作 | 说明 | 
| --- | --- | --- | 
|  \$1aws/rules/ *ruleName*  |  发布  |  设备或应用程序向此主题发布消息以直接触发规则。有关更多信息，请参阅 [借助基本摄取功能，降低消息收发成本](iot-basic-ingest.md)。  | 

## 安全隧道主题
<a name="reserved-topics-secure"></a>


| Topic | 允许的客户端操作 | 说明 | 
| --- | --- | --- | 
|  \$1aw *thing-name* s/things/ /隧道/通知  |  Subscribe  |   AWS IoT 发布此消息以让 IoT 代理在远程设备上启动本地代理。有关更多信息，请参阅 [IoT 代理代码段](configure-remote-device.md#agent-snippet)。  | 

## 影子主题
<a name="reserved-topics-shadow"></a>

本节中的主题由命名和未命名的影子使用。每个影子使用的主题仅在主题前缀上有所不同。下表显示每种影子类型使用的主题前缀。


| *ShadowTopicPrefix* 值 | 影子类型 | 
| --- | --- | 
| \$1aw thingName s/things/ /shad | 未命名的（经典）影子 | 
| \$1aw thingName s/things/ /shadow/name/ shadowName | 命名的影子 | 

要创建完整的主题，请选择要引用的影子类型，将其替换*ShadowTopicPrefix**thingName*为相应的值（如果适用），然后将其附加到主题存根，如下表所示。*shadowName*请记住，主题区分大小写。


| Topic | 允许的客户端操作 | 说明 | 
| --- | --- | --- | 
|  *ShadowTopicPrefix*/删除  |  发布/订阅  |  设备或应用程序向此主题发布消息以删除影子。有关更多信息，请参阅 [/delete](device-shadow-mqtt.md#delete-pub-sub-topic)。  | 
|  *ShadowTopicPrefix*/删除/接受  |  Subscribe  |  当一个影子被删除时，Device Shadow 服务将向此主题发送消息。有关更多信息，请参阅 [/delete/accepted](device-shadow-mqtt.md#delete-accepted-pub-sub-topic)。  | 
|  *ShadowTopicPrefix*/删除/已拒绝  |  Subscribe  |  当删除影子的请求遭拒时，Device Shadow 服务将向此主题发送消息。有关更多信息，请参阅 [/delete/rejected](device-shadow-mqtt.md#delete-rejected-pub-sub-topic)。  | 
|  *ShadowTopicPrefix*/get  |  发布/订阅  |  应用程序或事物向此主题发布空消息来获取影子。有关更多信息，请参阅 [Device Shadow MQTT 主题](device-shadow-mqtt.md)。  | 
|  *ShadowTopicPrefix*/get/已接受  |  Subscribe  |  当获取影子的请求获批时，Device Shadow 服务将向此主题发送消息。有关更多信息，请参阅 [/get/accepted](device-shadow-mqtt.md#get-accepted-pub-sub-topic)。  | 
|  *ShadowTopicPrefix*/get/被拒绝  |  Subscribe  |  当获取影子的请求遭拒时，Device Shadow 服务将向此主题发送消息。有关更多信息，请参阅 [/get/rejected](device-shadow-mqtt.md#get-rejected-pub-sub-topic)。  | 
|  *ShadowTopicPrefix*/更新  |  发布/订阅  |  事物或应用程序向此主题发布消息以更新影子。有关更多信息，请参阅 [/update](device-shadow-mqtt.md#update-pub-sub-topic)。  | 
|  *ShadowTopicPrefix*/更新/已接受  |  Subscribe  |  当影子更新成功时，Device Shadow 服务将向此主题发送消息。有关更多信息，请参阅 [/update/accepted](device-shadow-mqtt.md#update-accepted-pub-sub-topic)。  | 
|  *ShadowTopicPrefix*/更新/已拒绝  |  Subscribe  |  当影子更新遭拒时，Device Shadow 服务将向此主题发送消息。有关更多信息，请参阅 [/update/rejected](device-shadow-mqtt.md#update-rejected-pub-sub-topic)。  | 
|  *ShadowTopicPrefix*/update/delta  |  Subscribe  |  当检测到影子的“reported”部分与“desired”部分之间存在差异时，Device Shadow 服务将向此主题发送消息。有关更多信息，请参阅 [/update/delta](device-shadow-mqtt.md#update-delta-pub-sub-topic)。  | 
|  *ShadowTopicPrefix*/更新/文档  |  Subscribe  |  AWS IoT 每当成功执行影子更新时，都会向该主题发布状态文档。有关更多信息，请参阅 [/update/documents](device-shadow-mqtt.md#update-documents-pub-sub-topic)。  | 

## 基于 MQTT 的文件传输主题
<a name="reserved-topics-mqtt-based-file-delivery"></a>

**注意**  
此表中标为 **R** eceive 的客户端操作表示直接向请求它的客户端 AWS IoT 发布的主题，无论该客户是否订阅了该主题。即使客户端尚未订阅这些消息，也会收到这些消息。这些响应消息不会通过消息代理，也无法由其它客户端或规则订阅。

这些消息支持简明二进制对象表示 (CBOR) 格式和 JavaScript 对象表示法 (JSON) 的响应缓冲区，具体取决于*payload-format*主题。


| *payload-format* | 响应格式数据类型 | 
| --- | --- | 
| cbor | 简洁二进制对象表示法 (CBOR) | 
| json | JavaScript 对象表示法 (JSON) | 


| Topic | 允许的客户端操作 | 说明 | 
| --- | --- | --- | 
|  \$1aws/things/ /streams/ /data/ *ThingName* *StreamId* *payload-format*  |  订阅，接收  |  AWS 如果设备的 “GetStream” 请求被接受，则基于 MQTT 的文件传输会发布到此主题。有效载荷包含流数据。有关更多信息，请参阅 [在设备中使用 AWS IoT 基于 MQTT 的文件传输](mqtt-based-file-delivery-in-devices.md)。  | 
|  \$1aws/things/ /streams/ /get/ *ThingName* *StreamId* *payload-format*  |  发布  |  设备向该主题发布消息以执行 “GetStream” 请求。有关更多信息，请参阅 [在设备中使用 AWS IoT 基于 MQTT 的文件传输](mqtt-based-file-delivery-in-devices.md)。  | 
|  \$1aws/things/ /streams/ /描述/ *ThingName* *StreamId* *payload-format*  |  订阅，接收  |  AWS 如果设备的 “DescribeStream” 请求被接受，则基于 MQTT 的文件传输会发布到此主题。有效载荷包含流描述。有关更多信息，请参阅 [在设备中使用 AWS IoT 基于 MQTT 的文件传输](mqtt-based-file-delivery-in-devices.md)。  | 
|  \$1aws/things/ /streams/ /describe/ *ThingName* *StreamId* *payload-format*  |  发布  |  设备向该主题发布消息以执行 “DescribeStream” 请求。有关更多信息，请参阅 [在设备中使用 AWS IoT 基于 MQTT 的文件传输](mqtt-based-file-delivery-in-devices.md)。  | 
|  \$1aws/things/ /streams/ /rejected/ *ThingName* *StreamId* *payload-format*  |  订阅，接收  |  AWS 如果来自设备的 “” 或 “DescribeStreamGetStream” 请求被拒绝，则基于 MQTT 的文件传输会发布到此主题。有关更多信息，请参阅 [在设备中使用 AWS IoT 基于 MQTT 的文件传输](mqtt-based-file-delivery-in-devices.md)。  | 

## 保留的主题 ARN
<a name="reserved-topicnames-arn"></a>

所有保留主题 ARNs （Amazon 资源名称）均采用以下格式：

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

例如，`arn:aws:iot:us-west-2:123EXAMPLE456:topic/$aws/things/thingName/jobs/get/accepted` 是保留主题 `$aws/things/thingName/jobs/get/accepted` 的 ARN。