本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS IoT 任务 API 操作
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 ...
如果在操作过程中发生错误,您会收到包含有关错误的信息的错误响应。
包含有关 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_PROGRESS。在这种情况下,错误消息的正文还包含
executionState
字段。 - ResourceNotFound
-
请求主题所指定的
JobExecution
不存在。 - VersionMismatch
-
请求中指定的预期版本与 AWS IoT Jobs 服务中的任务执行版本不匹配。在这种情况下,错误消息的正文还包含
executionState
字段。 - InternalError
-
处理请求期间出现内部错误。
- RequestThrottled
-
请求已被阻止。
- TerminalStateReached
-
在处于最终状态的任务上执行描述任务的命令时发生。
message
-
错误消息字符串。
clientToken
-
用于将请求与其答复关联起来的任意字符串。
timestamp
-
用自纪元以来的秒数表示的时间。
executionState
-
一个
JobExecutionState
对象。仅在code
字段具有InvalidStateTransition
或VersionMismatch
值时包含此字段。在这些情况下,这使得不必执行单独的DescribeJobExecution
请求以获取当前任务执行状态数据。