

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

# 命令执行事件
<a name="command-events"></a>

AWS IoT 当命令执行更改状态时，向 MQTT 主题发布事件消息。您可以使用这些事件来监视命令执行进度，并构建响应状态变化的应用程序。

**命令执行事件主题**  
命令执行事件发布到以下 MQTT 主题：

```
$aws/events/commandExecution/commandId/status
```

其中：
+ `commandId`是命令的标识符。
+ `status`是命令执行的状态。有效值为: `CREATED`, `IN_PROGRESS`, `SUCCEEDED`, `FAILED`, `REJECTED`, `TIMED_OUT`。

要接收所有命令和所有状态的通知，请使用通配符订阅以下主题：

```
$aws/events/commandExecution/+/#
```

**命令执行事件消息**  
当命令执行状态发生变化时，会向相应的 MQTT 主题 AWS IoT 发布一条事件消息。消息包含以下示例负载：

```
{
    "executionId": "2bd65c51-4cfd-49e4-9310-d5cbfdbc8554",
    "status": "FAILED",
    "statusReason": {
        "reasonCode": "DEVICE_TOO_BUSY",
        "reasonDescription": ""
    },
    "eventType": "COMMAND_EXECUTION",
    "commandArn": "arn:aws:iot:us-east-1:123456789012:command/0b9d9ddf-e873-43a9-8e2c-9fe004a90086",
    "targetArn": "arn:aws:iot:us-east-1:123456789012:thing/5006c3fc-de96-4def-8427-7eee36c6f2bd",
    "timestamp": 1717708862107
}
```

负载包含以下属性：

**执行编号**  
命令执行的唯一标识符（字符串）。

**状态**  
命令执行的状态。有效值为: `CREATED`, `IN_PROGRESS`, `SUCCEEDED`, `FAILED`, `REJECTED`, `TIMED_OUT`。

**statusReason**  
包含有关状态的其他信息（如果有）的对象。包含`reasonCode`和`reasonDescription`字段。

**eventType**  
设置为 “命令执行”。

**Commandarn**  
命令的亚马逊资源名称 (ARN)。

**Targetarn**  
用于执行命令的目标设备（事物或客户端）的 ARN。

**timestamp**  
事件发生的 UNIX 时间戳。