-
作业
-
作业是为设备定义的一组要执行的操作。例如,你可以定义一个作业,指示一组设备下载和安装应用程序或固件更新、重新启动、轮换证书,或执行远程故障排除操作。
-
作业文档
-
作业文档详细说明了每台设备将执行的操作。它是一份 UTF-8 编码的 JSON 文档,其中包含设备执行作业所需的所有信息。例如,一份作业文档可包含多个 URL,设备可从这些 URL下载固件更新或接收其他数据。作业文档可存储在 Amazon S3 存储桶中,或包含在创建作业的命令中。
-
目标
-
目标是执行作业所需的一台设备或一组设备。在 AWS IoT 控制台中定义目标列表后,将通知每台设备有待处理的作业。
-
作业执行
-
作业执行是指在特定设备上执行由作业定义的操作。设备下载作业文档后就开始作业执行。然后设备会执行文档中指定的操作,并向 AWS IoT 报告进度情况。每台独立设备上的每个作业都有一个唯一的标识符,因此您可跟踪和管理所有目标上的作业进度。
-
快照作业
-
快照作业仅发送到您在创建作业时定义的目标。如果需要新设备执行相同的操作,则必须为这些附加设备创建新的快照作业。一旦所有目标完成快照作业(或报告无法完成),该作业即被视为已完成。
-
连续工作
-
连续作业将发送到您在创建作业时定义的目标,以及此后添加到目标组的任何设备。连续作业通常用于在新设备被添加至组中时,对其进行载入或升级。您可在创建作业时设置可选参数以让作业持续。
-
推出
-
您可指定目标在挂起作业中被通知的速度。这允许您创建一个分阶段的推出,以更好地管理整个设备群的更新、重启和其他操作。
可以将下列字段添加至 CreateJob
请求,以指定每分钟要通知的作业目标的最大数量。此示例设置静态推出率。
"jobExecutionRolloutConfig": {
"maximumPerMinute": "integer"
}
您还可以使用 exponentialRate
字段来设置可变的推出率。下方示例创建了一个带有指数率的推出。
"jobExecutionsRolloutConfig": {
"exponentialRate": {
"baseRatePerMinute": integer,
"incrementFactor": integer,
"rateIncreaseCriteria": {
"numberOfNotifiedThings": integer, // Set one or the other
"numberOfSucceededThings": integer // of these two values.
},
"maximumPerMinute": integer
}
}
有关配置作业推出的更多信息,请参阅AWSIoT开发者指南中的作业推出和中止配置章节。
-
中止
-
中止是指根据一组预定义标准取消作业推出。例如,如果有 10 个作业无法执行,您可以将作业推出设置为中止。如果失败作业的数量符合一组标准,也可以中止作业推出。您可使用 AbortConfig
对象在作业创建时设置作业中止标准。想要了解更多信息,请参阅AWSIoT开发者指南中的作业推出和中止配置章节。
-
占位符链接和预签名 URL
-
除了作业文档中所包含的数据,设备可能还需要其他数据。您可将这些数据放在 Amazon S3 存储桶中,并在作业文档中提供一条占位符链接。当 AWS 作业开始通知目标设备时,占位符链接将替换为预签名的 Amazon S3 URL。预签名 URL 为设备检索其他数据(例如有关软件更新的固件映像数据)提供一个安全但有时间限制的位置。
占位符链接的形式如下:
${aws:iot:s3-presigned-url:https://s3.amazonaws.com/bucket/key}
其中,bucket 表示存储桶名称,key 表示存储桶中包含数据的对象。
-
超时
-
作业超时使得每当作业执行被卡在 IN_PROGRESS
状态中的时间格外长时都可以收到通知。定时器有两种类型:进行中定时器和步进定时器。
当您创建作业时,您可在可选的 TimeoutConfig 对象中为 inProgressTimeoutInMinutes
属性设置一个值。进行中定时器无法更新,并且适用于该作业的所有作业执行。每当作业执行停留在 IN_PROGRESS
状态的时间超过该时间间隔,作业执行就会失败并会切换至终端 TIMED_OUT
状态。AWS IoT 也会发布 MQTT 通知。
您也可以在调用 UpdateJobExecution 时,通过设置 stepTimeoutInMinutes
的值,为设备的作业执行设置一个步进定时器。步进定时器仅适用于您更新的特定作业执行。您可以在每次更新作业执行时为此定时器设置一个新值。您也可以在调用 StartNextPendingJobExecution 时创建步进定时器。如果作业执行停留在 IN_PROGRESS
状态的时间超过步进定时器的时间间隔,作业执行就会失败,并会切换至终端 TIMED_OUT
状态。步进定时器对您在创建作业时设置的进行中定时器没有影响。有关详细信息,请参阅 AWS IoT 文档。
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.