任务设备 MQTT 和 HTTPS API - Amazon IoT Core
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

任务设备 MQTT 和 HTTPS API

注意

任务设备命令可以通过将 MQTT 消息发布到用于 Jobs 命令的预留主题来签发。您的客户端将自动订阅这些命令的响应消息主题,这意味着消息代理将向发布命令消息的客户端发布响应消息主题,无论您的客户端是否订阅了响应消息主题。

由于消息代理会发布响应消息,即使没有明确订阅响应消息也是如此,因此必须配置您的客户端以接收和标识其接收的消息。您的客户端还必须确认传入消息中的 thingName 在客户端对消息执行操作前应用于客户端的事物名称。

Amazon IoT 发送的用于响应 MQTT Job API 命令消息的消息都会计入您的账户,无论您是否明确订阅了这些消息。

GetPendingJobExecutions

获取未处于最终状态的事物的所有任务列表。

注意

Amazon IoT 会将响应消息直接发布到发出请求的客户端,无论客户端是否订阅了响应主题。即使客户端尚未订阅这些消息,也会收到这些消息。这些响应消息不会通过消息代理,也无法由其他客户端或规则订阅。

Job 进度消息,这些消息通过消息代理处理并且可以由 Amazon IoT 规则使用,将发布为 任务事件

MQTT (12)

要调用此 API,请在 $aws/things/thingName/jobs/get 上发布消息。

请求负载:

{ "clientToken": "string" }
clientToken

可选。用于将请求和响应关联起来的客户端令牌。在此处输入任意值,它将反映在响应中。

消息代理将发布 $aws/things/thingName/jobs/get/accepted$aws/things/thingName/jobs/get/rejected,即使您没有指定订阅它们。但是,为了让您的客户端接收消息,客户端必须侦听这些消息。有关更多信息,请参阅关于 Job API 消息的说明

响应负载:

{ "inProgressJobs" : [ JobExecutionSummary ... ], "queuedJobs" : [ JobExecutionSummary ... ], "timestamp" : 1489096425069, "clientToken" : "client-001" }
inProgressJobs

状态为 JobExecutionSummaryIN_PROGRESS 对象的列表。

queuedJobs

状态为 JobExecutionSummaryQUEUED 对象的列表。

clientToken

用于将请求和响应关联起来的客户端令牌。

timestamp

发送消息的时间(用从纪元开始的秒数表示)。

HTTPS (12)

请求:

GET /things/thingName/jobs
thingName

与设备关联的事物的名称。

响应:

{ "inProgressJobs" : [ JobExecutionSummary ... ], "queuedJobs" : [ JobExecutionSummary ... ] }
inProgressJobs

JobExecutionSummary 对象的列表。

queuedJobs

JobExecutionSummary 对象的列表。

CLI (12)

摘要:

aws iot-jobs-data get-pending-job-executions \ --thing-name <value> \ [--cli-input-json <value>] \ [--generate-cli-skeleton]

cli-input-json 格式:

{ "thingName": "string" }
cli-input-json 字段:

名称

类型

说明

thingName

字符串

最大长度:128,最小长度:1

模式:[a-zA-Z0-9:_-]+

正在执行任务的事物的名称。

输出:

{ "inProgressJobs": [ { "jobId": "string", "queuedAt": long, "startedAt": long, "lastUpdatedAt": long, "versionNumber": long, "executionNumber": long } ], "queuedJobs": [ { "jobId": "string", "queuedAt": long, "startedAt": long, "lastUpdatedAt": long, "versionNumber": long, "executionNumber": long } ] }
CLI 输出字段:

名称

类型

说明

inProgressJobs

list

成员:JobExecutionSummary

java 类:java.util.List

状态为 IN_PROGRESS 的 JobExecutionSummary 对象的列表。

JobExecutionSummary

JobExecutionSummary

jobId

字符串

最大长度:64,最小长度:1

模式:[a-zA-Z0-9_-]+

您在创建此任务时向其分配的唯一标识符。

queuedAt

long

任务执行入队的时间,用从纪元开始的秒数表示。

startedAt

long

java 类:java.lang.Long

任务执行开始的时间,用从纪元开始的秒数表示。

lastUpdatedAt

long

上次更新任务执行的时间,用从纪元开始的秒数表示。

versionNumber

long

任务执行的版本。每当 Amazon IoT Jobs 服务收到来自设备的更新时,任务执行版本都会递增。

executionNumber

long

java 类:java.lang.Long

标识设备上的任务执行的数字。

queuedJobs

list

成员:JobExecutionSummary

java 类:java.util.List

状态为 QUEUED 的 JobExecutionSummary 对象的列表。

JobExecutionSummary

JobExecutionSummary

jobId

字符串

最大长度:64,最小长度:1

模式:[a-zA-Z0-9_-]+

您在创建此任务时向其分配的唯一标识符。

queuedAt

long

任务执行入队的时间,用从纪元开始的秒数表示。

startedAt

long

java 类:java.lang.Long

任务执行开始的时间,用从纪元开始的秒数表示。

lastUpdatedAt

long

上次更新任务执行的时间,用从纪元开始的秒数表示。

versionNumber

long

任务执行的版本。每当 Amazon IoT Jobs 服务收到来自设备的更新时,任务执行版本都会递增。

executionNumber

long

java 类:java.lang.Long

标识设备上的任务执行的数字。

StartNextPendingJobExecution

获取并启动事物的下一个待处理任务执行(状态为 IN_PROGRESS 或 QUEUED)。

  • 首先返回状态为 IN_PROGRESS 的所有任务执行。

  • 按任务执行的创建顺序返回这些执行。

  • 如果下一个待处理任务执行的状态为 QUEUED,则其状态将更改为 IN_PROGRESS,并且任务执行的状态详细信息将设定为指定内容。

  • 如果下一个待处理任务执行已处于 IN_PROGRESS 状态,则不会更改其状态。

  • 如果没有待处理的任务执行,则响应不包括 execution 字段。

  • (可选)您可以通过为 stepTimeoutInMinutes 属性设置值创建步骤计时器。如果您没有通过运行 UpdateJobExecution 更新此属性的值,任务执行将在步骤计时器到期时超时。

注意

Amazon IoT 会将响应消息直接发布到发出请求的客户端,无论客户端是否订阅了响应主题。即使客户端尚未订阅这些消息,也会收到这些消息。这些响应消息不会通过消息代理,也无法由其他客户端或规则订阅。

Job 进度消息,这些消息通过消息代理处理并且可以由 Amazon IoT 规则使用,将发布为 任务事件

MQTT (13)

要调用此 API,请在 $aws/things/thingName/jobs/start-next 上发布消息。

请求负载:

{ "statusDetails": { "string": "job-execution-state" ... }, "stepTimeoutInMinutes": long, "clientToken": "string" }
statusDetails

描述任务执行状态的名称-值对的集合。如果未指定,则 statusDetails 保持不变。

stepTimeOutInMinutes

指定此设备完成该任务执行所具有的时间。如果任务执行状态未在此计时器过期或者重置计时器(通过调用 UpdateJobExecution,将状态设置为 IN_PROGRESS,并在字段 stepTimeoutInMinutes 中指定新超时值)之前设置为最终状态,则任务执行状态将设置为 TIMED_OUT。设置此超时不会影响在创建任务时(CreateJob,使用 timeoutConfig 字段)可能指定的任务执行超时。

clientToken

用于将请求和响应关联起来的客户端令牌。在此处输入任意值,它将反映在响应中。

消息代理将发布 $aws/things/thingName/jobs/start-next/accepted$aws/things/thingName/jobs/start-next/rejected,即使您没有指定订阅它们。但是,为了让您的客户端接收消息,客户端必须侦听这些消息。有关更多信息,请参阅关于 Job API 消息的说明

响应负载:

{ "execution" : JobExecutionData, "timestamp" : timestamp, "clientToken" : "string" }
execution

一个 JobExecution 对象。例如:

{ "execution" : { "jobId" : "022", "thingName" : "MyThing", "jobDocument" : "< contents of job document >", "status" : "IN_PROGRESS", "queuedAt" : 1489096123309, "lastUpdatedAt" : 1489096123309, "versionNumber" : 1, "executionNumber" : 1234567890 }, "clientToken" : "client-1", "timestamp" : 1489088524284, }
timestamp

将消息发送到设备的时间 (用从纪元开始的秒数表示)。

clientToken

用于将请求和响应关联起来的客户端令牌。

HTTPS (13)

请求:

PUT /things/thingName/jobs/$next { "statusDetails": { "string": "string" ... }, "stepTimeoutInMinutes": long }
thingName

与设备关联的事物的名称。

statusDetails

描述任务执行状态的名称-值对的集合。如果未指定,则 statusDetails 保持不变。

stepTimeOutInMinutes

指定此设备完成该任务执行所具有的时间。如果任务执行状态未在此计时器过期或者重置计时器(通过调用 UpdateJobExecution,将状态设置为 IN_PROGRESS,并在字段 stepTimeoutInMinutes 中指定新超时值)之前设置为最终状态,则任务执行状态将设置为 TIMED_OUT。设置此超时不会影响在创建任务时(CreateJob,使用 timeoutConfig 字段)可能指定的任务执行超时。

响应:

{ "execution" : JobExecution }
execution

一个 JobExecution 对象。例如:

{ "execution" : { "jobId" : "022", "thingName" : "MyThing", "jobDocument" : "< contents of job document >", "status" : "IN_PROGRESS", "queuedAt" : 1489096123309, "lastUpdatedAt" : 1489096123309, "versionNumber" : 1, "executionNumber" : 1234567890 }, "clientToken" : "client-1", "timestamp" : 1489088524284, }
CLI (13)

摘要:

aws iot-jobs-data start-next-pending-job-execution \ --thing-name <value> \ {--step-timeout-in-minutes <value>] \ [--status-details <value>] \ [--cli-input-json <value>] \ [--generate-cli-skeleton]

cli-input-json 格式:

{ "thingName": "string", "statusDetails": { "string": "string" }, "stepTimeoutInMinutes": long }
cli-input-json 字段:

名称

类型

说明

thingName

字符串

最大长度:128,最小长度:1

模式:[a-zA-Z0-9:_-]+

与设备关联的事物的名称。

statusDetails

映射

键:DetailsKey

值:DetailsValue

描述任务执行状态的名称-值对的集合。如果未指定,则 statusDetails 保持不变。

stepTimeOutInMinutes

long

指定此设备完成该任务执行所具有的时间。如果任务执行状态未在此计时器过期或者重置计时器(通过调用 UpdateJobExecution,将状态设置为 IN_PROGRESS,并在字段 stepTimeoutInMinutes 中指定新超时值)之前设置为最终状态,则任务执行状态将设置为 TIMED_OUT。设置此超时不会影响在创建任务时(CreateJob,使用 timeoutConfig 字段)可能指定的任务执行超时。

DetailsKey

字符串

最大长度:128,最小长度:1

模式:[a-zA-Z0-9:_-]+

DetailsValue

字符串

最大长度:1024,最小长度:1

模式:[^\\p{C}]*+

输出:

{ "execution": { "jobId": "string", "thingName": "string", "status": "string", "statusDetails": { "string": "string" }, "queuedAt": long, "startedAt": long, "lastUpdatedAt": long, "versionNumber": long, "executionNumber": long, "jobDocument": "string" } }
CLI 输出字段:

名称

类型

说明

execution

JobExecution

JobExecution 对象。

jobId

字符串

最大长度:64,最小长度:1

模式:[a-zA-Z0-9_-]+

您在创建此任务时向其分配的唯一标识符。

thingName

字符串

最大长度:128,最小长度:1

模式:[a-zA-Z0-9:_-]+

正在执行任务的事物的名称。

status

字符串

枚举:QUEUED | IN_PROGRESS | SUCCEEDED | FAILED | TIMED_OUT | REJECTED | REMOVED | CANCELED

任务执行的状态。可以为以下值之一:QUEUED、IN_PROGRESS、FAILED、SUCCEEDED、CANCELED、TIMED_OUT、REJECTED 或 REMOVED。

statusDetails

映射

键:DetailsKey

值:DetailsValue

描述任务执行状态的名称-值对的集合。

DetailsKey

字符串

最大长度:128,最小长度:1

模式:[a-zA-Z0-9:_-]+

DetailsValue

字符串

最大长度:1024,最小长度:1

模式:[^\\p{C}]*+

queuedAt

long

任务执行入队的时间,用从纪元开始的秒数表示。

startedAt

long

java 类:java.lang.Long

任务执行开始的时间,用从纪元开始的秒数表示。

lastUpdatedAt

long

上次更新任务执行的时间,用从纪元开始的秒数表示。

versionNumber

long

任务执行的版本。每次设备更新任务执行版本时,版本将递增。

executionNumber

long

java 类:java.lang.Long

标识设备上的任务执行的数字。它可随后在返回或更新任务执行信息的命令中使用。

jobDocument

字符串

最大长度:32768

任务文档的内容。

DescribeJobExecution

获取有关任务执行的详细信息。

您可以将 jobId 设置为 $next 以返回事物的下一个待处理任务执行(状态为 IN_PROGRESS 或 QUEUED)。

MQTT (14)

要调用此 API,请在 $aws/things/thingName/jobs/jobId/get 上发布消息。

请求负载:

{ "executionNumber": long, "includeJobDocument": boolean, "clientToken": "string" }
thingName

与设备关联的事物的名称。

jobId

创建此任务时向其分配的唯一标识符。

或使用 $next 返回事物的下一个待处理任务执行(状态为 IN_PROGRESS 或 QUEUED)。在此情况下,首先返回状态为 IN_PROGRESS 的所有任务执行。按任务执行的创建顺序返回这些执行。

executionNumber

可选。标识设备上的任务执行的数字。如果未指定,则返回最新的任务执行。

includeJobDocument

可选。除非设置为 false,否则响应将包含任务文档。默认为 true

clientToken

用于将请求和响应关联起来的客户端令牌。在此处输入任意值,它将反映在响应中。

消息代理将发布 $aws/things/thingName/jobs/jobId/get/accepted$aws/things/thingName/jobs/jobId/get/rejected,即使您没有指定订阅它们。但是,为了让您的客户端接收消息,客户端必须侦听这些消息。有关更多信息,请参阅关于 Job API 消息的说明

响应负载:

{ "execution" : JobExecutionData, "timestamp": "timestamp", "clientToken": "string" }
execution

一个 JobExecution 对象。

timestamp

发送消息的时间(用从纪元开始的秒数表示)。

clientToken

用于将请求和响应关联起来的客户端令牌。

HTTPS (14)

任务的执行状态必须为 QUEUEDIN_PROGRESS

请求:

GET /things/thingName/jobs/jobId?executionNumber=executionNumber&includeJobDocument=includeJobDocument
thingName

与设备关联的事物的名称。

jobId

创建此任务时向其分配的唯一标识符。

或使用 $next 返回事物的下一个待处理任务执行(状态为 IN_PROGRESS 或 QUEUED)。在此情况下,首先返回状态为 IN_PROGRESS 的所有任务执行。按任务执行的创建顺序返回这些执行。

includeJobDocument

可选。除非设置为 false,否则响应将包含任务文档。默认为 true

executionNumber

可选。标识设备上的任务执行的数字。如果未指定,则返回最新的任务执行。

响应:

{ "execution" : JobExecution, }
execution

一个 JobExecution 对象。

CLI (14)

任务的执行状态必须为 QUEUEDIN_PROGRESS

摘要:

aws iot-jobs-data describe-job-execution \ --job-id <value> \ --thing-name <value> \ [--include-job-document | --no-include-job-document] \ [--execution-number <value>] \ [--cli-input-json <value>] \ [--generate-cli-skeleton]

cli-input-json 格式:

{ "jobId": "string", "thingName": "string", "includeJobDocument": boolean, "executionNumber": long }
cli-input-json 字段:

名称

类型

说明

jobId

字符串

模式:[a-zA-Z0-9_-]+|^$next

在此任务创建时分配给它的唯一标识符,或者用于返回事物的下一个待处理任务执行(状态为 IN_PROGRESS 或 QUEUED)的 $next。在此情况下,首先返回状态为 IN_PROGRESS 的所有任务执行。按任务执行的创建顺序返回这些执行。

thingName

字符串

最大长度:128,最小长度:1

模式:[a-zA-Z0-9:_-]+

与正在运行任务执行的设备关联的事物名称。

includeJobDocument

布尔值

java 类:java.lang.Boolean

可选。除非设置为 false,否则响应包含任务文档。默认值为 true。

executionNumber

long

java 类:java.lang.Long

可选。标识设备上的任务执行的数字。如果未指定,则返回最新的任务执行。

输出:

{ "execution": { "jobId": "string", "thingName": "string", "status": "string", "statusDetails": { "string": "string" }, "queuedAt": long, "startedAt": long, "lastUpdatedAt": long, "versionNumber": long, "executionNumber": long, "jobDocument": "string" } }
CLI 输出字段:

名称

类型

说明

execution

JobExecution

包含有关任务执行的数据。

jobId

字符串

最大长度:64,最小长度:1

模式:[a-zA-Z0-9_-]+

您在创建此任务时向其分配的唯一标识符。

thingName

字符串

最大长度:128,最小长度:1

模式:[a-zA-Z0-9:_-]+

正在执行任务的事物的名称。

status

字符串

枚举:QUEUED | IN_PROGRESS | SUCCEEDED | FAILED | TIMED_OUT | REJECTED | REMOVED | CANCELED

任务执行的状态。可以为以下值之一:QUEUED、IN_PROGRESS、FAILED、SUCCEEDED、CANCELED、TIMED_OUT、REJECTED 或 REMOVED。

statusDetails

映射

键:DetailsKey

值:DetailsValue

描述任务执行状态的名称-值对的集合。

DetailsKey

字符串

最大长度:128,最小长度:1

模式:[a-zA-Z0-9:_-]+

DetailsValue

字符串

最大长度:1024,最小长度:1

模式:[^\\p{C}]*+

queuedAt

long

任务执行入队的时间,用从纪元开始的秒数表示。

startedAt

long

java 类:java.lang.Long

任务执行开始的时间,用从纪元开始的秒数表示。

lastUpdatedAt

long

上次更新任务执行的时间,用从纪元开始的秒数表示。

versionNumber

long

任务执行的版本。每次设备更新任务执行版本时,版本将递增。

executionNumber

long

java 类:java.lang.Long

标识设备上的任务执行的数字。它可随后在返回或更新任务执行信息的命令中使用。

jobDocument

字符串

最大长度:32768

任务文档的内容。

UpdateJobExecution

更新任务执行的状态。(可选)您可以通过为 stepTimeoutInMinutes 属性设置值创建步骤计时器。如果您没有通过再次运行 UpdateJobExecution 更新此属性的值,任务执行将在步骤计时器到期时超时。

注意

Amazon IoT 会将响应消息直接发布到发出请求的客户端,无论客户端是否订阅了响应主题。即使客户端尚未订阅这些消息,也会收到这些消息。这些响应消息不会通过消息代理,也无法由其他客户端或规则订阅。

Job 进度消息,这些消息通过消息代理处理并且可以由 Amazon IoT 规则使用,将发布为 任务事件

MQTT (15)

要调用此 API,请在 $aws/things/thingName/jobs/jobId/update 上发布消息。

请求负载:

{ "status": "job-execution-state", "statusDetails": { "string": "string" ... }, "expectedVersion": "number", "executionNumber": long, "includeJobExecutionState": boolean, "includeJobDocument": boolean, "stepTimeoutInMinutes": long, "clientToken": "string" }
status

任务执行的新状态 (IN_PROGRESS、FAILED、SUCCEEDED 或 REJECTED)。这必须在每次更新时指定。

statusDetails

描述任务执行状态的名称-值对的集合。如果未指定,则 statusDetails 保持不变。

expectedVersion

任务执行的预期当前版本。每次更新任务执行时,其版本将递增。如果存储在 Amazon IoT Jobs 服务中的任务执行版本不匹配,则更新将被拒绝并出现 VersionMismatch 错误,并且将返回包含当前任务执行状态数据的 ErrorResponse。(这样就不必执行单独的 DescribeJobExecution 请求以获取任务执行状态数据。)

executionNumber

可选。标识设备上的任务执行的数字。如果未指定,则使用最新的任务执行。

includeJobExecutionState

可选。在包含此项并设置为 true 时,响应将包含 JobExecutionState 字段。默认为 false

includeJobDocument

可选。在包含此参数且设置为 true 时,响应将包含 JobDocument。默认为 false

stepTimeoutInMinutes

指定此设备完成该任务执行所具有的时间。如果任务执行状态未在此计时器过期或者重置计时器(通过再次调用 UpdateJobExecution,将状态设置为 IN_PROGRESS,并在此字段中指定新超时值)之前设置为最终状态,则任务执行状态将设置为 TIMED_OUT。设置或重置此超时不会影响在创建任务时(使用 CreateJobtimeoutConfig)可能指定的任务执行超时。

clientToken

用于将请求和响应关联起来的客户端令牌。在此处输入任意值,它将反映在响应中。

消息代理将发布 $aws/things/thingName/jobs/jobId/update/accepted$aws/things/thingName/jobs/jobId/update/rejected,即使您没有指定订阅它们。但是,为了让您的客户端接收消息,客户端必须侦听这些消息。有关更多信息,请参阅关于 Job API 消息的说明

响应负载:

{ "executionState": JobExecutionState, "jobDocument": "string", "timestamp": timestamp, "clientToken": "string" }
executionState

一个 JobExecutionState 对象。

jobDocument

一个任务文档对象。

timestamp

发送消息的时间(用从纪元开始的秒数表示)。

clientToken

用于将请求和响应关联起来的客户端令牌。

HTTPS (15)

请求:

POST /things/thingName/jobs/jobId { "status": "job-execution-state", "statusDetails": { "string": "string" ... }, "expectedVersion": "number", "includeJobExecutionState": boolean, "includeJobDocument": boolean, "stepTimeoutInMinutes": long, "executionNumber": long }
thingName

与设备关联的事物的名称。

jobId

创建此任务时向其分配的唯一标识符。

status

任务执行的新状态 (IN_PROGRESS、FAILED、SUCCEEDED 或 REJECTED)。这必须在每次更新时指定。

statusDetails

可选。描述任务执行状态的名称-值对的集合。如果未指定,则 statusDetails 保持不变。

expectedVersion

可选。任务执行的预期当前版本。每次更新任务执行时,其版本将递增。如果存储在 Amazon IoT Jobs 服务中的任务执行版本不匹配,则更新将被拒绝并出现 VersionMismatch 错误,并且将返回包含当前任务执行状态数据的 ErrorResponse。(这样就不必执行单独的 DescribeJobExecution 请求以获取任务执行状态数据。)

includeJobExecutionState

可选。在包括此项并设置为 true 时,响应将包含 JobExecutionState 数据。默认为 false

includeJobDocument

可选。设置为 true 时,响应将包含任务文档。默认为 false

stepTimeoutInMinutes

指定此设备完成该任务执行所具有的时间。如果任务执行状态未在此计时器过期或者重置计时器(通过再次调用 UpdateJobExecution,将状态设置为 IN_PROGRESS,并在此字段中指定新超时值)之前设置为最终状态,则任务执行状态将设置为 TIMED_OUT。设置或重置此超时不会影响在创建任务时(使用 CreateJobtimeoutConfig)可能指定的任务执行超时。

executionNumber

可选。标识设备上的任务执行的数字。

响应:

{ "executionState": JobExecutionState, "jobDocument": "string" }
executionState

一个 JobExecutionState 对象。

jobDocument

任务文档的内容。

CLI (15)

摘要:

aws iot-jobs-data update-job-execution \ --job-id <value> \ --thing-name <value> \ --status <value> \ [--status-details <value>] \ [--expected-version <value>] \ [--include-job-execution-state | --no-include-job-execution-state] \ [--include-job-document | --no-include-job-document] \ [--execution-number <value>] \ [--cli-input-json <value>] \ [--step-timeout-in-minutes <value>] \ [--generate-cli-skeleton]

cli-input-json 格式:

{ "jobId": "string", "thingName": "string", "status": "string", "statusDetails": { "string": "string" }, "stepTimeoutInMinutes": number, "expectedVersion": long, "includeJobExecutionState": boolean, "includeJobDocument": boolean, "executionNumber": long }
cli-input-json 字段:

名称

类型

说明

jobId

字符串

最大长度:64,最小长度:1

模式:[a-zA-Z0-9_-]+

创建此任务时向其分配的唯一标识符。

thingName

字符串

最大长度:128,最小长度:1

模式:[a-zA-Z0-9:_-]+

与设备关联的事物的名称。

status

字符串

枚举:QUEUED | IN_PROGRESS | SUCCEEDED | FAILED | TIMED_OUT | REJECTED | REMOVED | CANCELED

任务执行的新状态 (IN_PROGRESS、FAILED、SUCCEEDED 或 REJECTED)。这必须在每次更新时指定。

statusDetails

映射

键:DetailsKey

值:DetailsValue

可选。描述任务执行状态的名称-值对的集合。如果未指定,则 statusDetails 保持不变。

DetailsKey

字符串

最大长度:128,最小长度:1

模式:[a-zA-Z0-9:_-]+

DetailsValue

字符串

最大长度:1024,最小长度:1

模式:[^\\p{C}]*+

stepTimeoutInMinutes

long

指定此设备完成该任务执行所具有的时间。如果任务执行状态未在此计时器过期或者重置计时器(通过再次调用 UpdateJobExecution,将状态设置为 IN_PROGRESS,并在此字段中指定新超时值)之前设置为最终状态,则任务执行状态将设置为 TIMED_OUT。设置或重置此超时不会影响在创建任务时(使用 CreateJobtimeoutConfig)可能指定的任务执行超时。

expectedVersion

long

java 类:java.lang.Long

可选。任务执行的预期当前版本。每次更新任务执行时,其版本将递增。如果存储在 Amazon IoT Jobs 服务中的任务执行版本不匹配,则更新将被拒绝并出现 VersionMismatch 错误,并且将返回包含当前任务执行状态数据的 ErrorResponse。(这样就不必执行单独的 DescribeJobExecution 请求以获取任务执行状态数据。)

includeJobExecutionState

布尔值

java 类:java.lang.Boolean

可选。包括此项并设置为 true 时,响应将包含 JobExecutionState 数据。默认为 false。

includeJobDocument

布尔值

java 类:java.lang.Boolean

可选。设置为 true 时,响应将包含任务文档。默认为 false。

executionNumber

long

java 类:java.lang.Long

可选。标识设备上的任务执行的数字。

输出:

{ "executionState": { "status": "string", "statusDetails": { "string": "string" }, "versionNumber": long }, "jobDocument": "string" }
CLI 输出字段:

名称

类型

说明

executionState

JobExecutionState

JobExecutionState 对象。

status

字符串

枚举:QUEUED | IN_PROGRESS | SUCCEEDED | FAILED | TIMED_OUT | REJECTED | REMOVED | CANCELED

任务执行的状态。可以为以下值之一:QUEUED、IN_PROGRESS、FAILED、SUCCEEDED、CANCELED、TIMED_OUT、REJECTED 或 REMOVED。

statusDetails

映射

键:DetailsKey

值:DetailsValue

描述任务执行状态的名称-值对的集合。

DetailsKey

字符串

最大长度:128,最小长度:1

模式:[a-zA-Z0-9:_-]+

DetailsValue

字符串

最大长度:1024,最小长度:1

模式:[^\\p{C}]*+

versionNumber

long

任务执行的版本。每次设备更新任务执行版本时,版本将递增。

jobDocument

字符串

最大长度:32768

任务文档的内容。

JobExecutionsChanged

在事物的待处理任务执行列表中添加或删除任务执行时发送。

MQTT (16)

主题: $aws/things/thingName/jobs/notify

消息负载:

{ "jobs" : { "JobExecutionState": [ JobExecutionSummary ... ] }, "timestamp": timestamp, }
HTTPS (16)

不可用。

CLI (16)

不可用。

NextJobExecutionChanged

当存在对事物的待处理任务执行列表中的下一个任务执行的更改(由 jobId 为 DescribeJobExecution$next 定义)时发送。当下一个任务的执行详细信息发送更改时不会发送此消息,而仅在将由 jobId 为 DescribeJobExecution$next 返回的下一个任务发生更改时发送。考虑状态为 QUEUED 的任务执行 J1 和 J2。J1 是待处理任务执行列表中的下一个待处理任务执行。如果 J2 的状态更改为 IN_PROGRESS,而 J1 的状态保持不变,则将发送此通知,并且此通知包含 J2 的详细信息。

MQTT (17)

主题: $aws/things/thingName/jobs/notify-next

消息负载:

{ "execution" : JobExecution, "timestamp": timestamp, }
HTTPS (17)

不可用。

CLI (17)

不可用。