

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

# AWS IoT 作业 API 操作
<a name="jobs-api"></a>

AWS IoT 作业 API 可用于以下任一类别：
+ 诸如管理和控制任务等管理任务。这是*控制面板*。
+ 执行这些任务的设备。这是*数据面板*，允许您发送和接收数据。

任务的管理和控制操作将使用 HTTPS 协议 API。设备可以使用 MQTT 或 HTTPS 协议 API。控制面板 API 旨在用于在创建和跟踪任务时通常进行的少量调用。它通常会为一个请求打开一个连接，然后在收到响应后关闭此连接。数据面板 HTTPS 和 MQTT API 允许进行长时间轮询。这些 API 操作旨在用于可扩展至数百万台设备的大量流量。

每个 AWS IoT Jobs HTTPS API 都有相应的命令，允许你从 AWS Command Line Interface (AWS CLI) 调用 API。命令采用小写形式，并且在构成 API 名称的单词之间使用连字符。例如，您可以通过键入以下内容，在 CLI 上调用 `CreateJob` API：

```
aws iot create-job ...
```

如果在操作过程中发生错误，您会收到包含有关错误的信息的错误响应。

## ErrorResponse
<a name="jobs-mqtt-error-response"></a>

包含有关 AWS IoT Jobs 服务操作期间发生的错误的信息。

以下示例显示此操作的语法：

```
{
    "code": "ErrorCode",
    "message": "string",
    "clientToken": "string",
    "timestamp": timestamp,
    "executionState": JobExecutionState
}
```

以下是此 `ErrorResponse` 的描述：

`code`  
ErrorCode 可以设置为：    
InvalidTopic  
该请求已发送到 AWS IoT Jobs 命名空间中未映射到任何 API 操作的主题。  
InvalidJson  
请求的内容无法解释为有效的 UTF-8 编码的 JSON。  
InvalidRequest  
请求的内容无效。例如，当 `UpdateJobExecution` 请求包含无效的状态详细信息时，将返回此代码。消息包含有关错误的详细信息。  
InvalidStateTransition  
由于任务执行的当前状态，更新已尝试将任务执行更改为无效的状态。例如，尝试将状态为 SUCCEEDED 的请求更改为状态 IN\$1PROGRESS。在这种情况下，错误消息的正文还包含 `executionState` 字段。  
ResourceNotFound  
请求主题所指定的 `JobExecution` 不存在。  
VersionMismatch  
请求中指定的预期版本与 AWS IoT 作业服务中任务执行的版本不匹配。在这种情况下，错误消息的正文还包含 `executionState` 字段。  
InternalError  
处理请求期间出现内部错误。  
RequestThrottled  
请求已被阻止。  
TerminalStateReached  
在处于最终状态的任务上执行描述任务的命令时发生。

`message`  
错误消息字符串。

`clientToken`  
用于将请求与其答复关联起来的任意字符串。

`timestamp`  
用自纪元以来的秒数表示的时间。

`executionState`  
一个 [https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_JobExecutionState.html](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_JobExecutionState.html) 对象。仅在 `code` 字段具有 `InvalidStateTransition` 或 `VersionMismatch` 值时包含此字段。在这些情况下，这使得不必执行单独的 `DescribeJobExecution` 请求以获取当前任务执行状态数据。

**Topics**
+ [任务管理和控制 API 以及数据类型](jobs-management-control-api.md)
+ [任务设备 MQTT 和 HTTPS API 操作以及数据类型](jobs-mqtt-https-api.md)