本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon IoT 作业 API 操作
Amazon IoT 作业 API 可用于以下任一类别:
- 
            诸如管理和控制任务等管理任务。这是控制面板。 
- 
            执行这些任务的设备。这是数据面板,允许您发送和接收数据。 
任务的管理和控制操作将使用 HTTPS 协议 API。设备可以使用 MQTT 或 HTTPS 协议 API。控制面板 API 旨在用于在创建和跟踪任务时通常进行的少量调用。它通常会为一个请求打开一个连接,然后在收到响应后关闭此连接。数据面板 HTTPS 和 MQTT API 允许进行长时间轮询。这些 API 操作旨在用于可扩展至数百万台设备的大量流量。
每个 Amazon IoT Jobs HTTPS API 都有相应的命令,允许你从 Amazon Command Line Interface (Amazon CLI) 调用 API。命令采用小写形式,并且在构成 API 名称的单词之间使用连字符。例如,您可以通过键入以下内容,在 CLI 上调用 CreateJob API:
aws iot create-job ...
如果在操作过程中发生错误,您会收到包含有关错误的信息的错误响应。
包含有关 Amazon IoT Jobs 服务操作期间发生的错误的信息。
以下示例显示此操作的语法:
{ "code": "ErrorCode", "message": "string", "clientToken": "string", "timestamp": timestamp, "executionState": JobExecutionState }
以下是此 ErrorResponse 的描述:
- code
- 
                         ErrorCode 可以设置为: - InvalidTopic
- 
                                     该请求已发送到 Amazon IoT Jobs 命名空间中未映射到任何 API 操作的主题。 
- InvalidJson
- 
                                     请求的内容无法解释为有效的 UTF-8 编码的 JSON。 
- InvalidRequest
- 
                                     请求的内容无效。例如,当 UpdateJobExecution请求包含无效的状态详细信息时,将返回此代码。消息包含有关错误的详细信息。
- InvalidStateTransition
- 
                                     由于任务执行的当前状态,更新已尝试将任务执行更改为无效的状态。例如,尝试将状态为 SUCCEEDED 的请求更改为状态 IN_PROGRESS。在这种情况下,错误消息的正文还包含 executionState字段。
- ResourceNotFound
- 
                                     请求主题所指定的 JobExecution不存在。
- VersionMismatch
- 
                                     请求中指定的预期版本与 Amazon IoT 作业服务中任务执行的版本不匹配。在这种情况下,错误消息的正文还包含 executionState字段。
- InternalError
- 
                                     处理请求期间出现内部错误。 
- RequestThrottled
- 
                                     请求已被阻止。 
- TerminalStateReached
- 
                                     在处于最终状态的任务上执行描述任务的命令时发生。 
 
- message
- 
                         错误消息字符串。 
- clientToken
- 
                         用于将请求与其答复关联起来的任意字符串。 
- timestamp
- 
                         用自纪元以来的秒数表示的时间。 
- executionState
- 
                         一个 JobExecutionState对象。仅在code字段具有InvalidStateTransition或VersionMismatch值时包含此字段。在这些情况下,这使得不必执行单独的DescribeJobExecution请求以获取当前任务执行状态数据。