AWS IoT 任务 API 操作 - AWS IoT Core

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

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 字段具有 InvalidStateTransitionVersionMismatch 值时包含此字段。在这些情况下,这使得不必执行单独的 DescribeJobExecution 请求以获取当前任务执行状态数据。