使用 Amazon IoT Jobs API 指定任务配置 - Amazon IoT Core
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用 Amazon IoT Jobs API 指定任务配置

您可以使用CreateJobCreateJobTemplateAPI 来指定不同的任务配置。以下各节介绍如何添加这些配置。添加配置后,您可以使用JobExecutionSummaryJobExecutionSummaryForJob来查看其状态。

有关不同配置及其工作方式的更多信息,请参阅 任务配置的工作原理

推出配置

您可以为推出配置指定恒定推出速率或指数推出速率。

  • 设置恒定推出速率

    若要设置恒定推出速率,请使用 JobExecutionsRolloutConfig 对象将 maximumPerMinute 参数添加到 CreateJob 请求。该参数会指定任务执行的速率上限。此值为可选值,范围从 1 到 1000。如果不设置该值,则会使用 1000 作为默认值。

    "jobExecutionsRolloutConfig": { "maximumPerMinute": 1000 }
  • 设置指数推出速率

    若要设置任务可变推出速率,请使用 JobExecutionsRolloutConfig 对象。您可以在运行 ExponentialRolloutRate API 操作时配置 CreateJob 属性。以下示例使用 exponentialRate 参数设置指数推出速率。有关这些参数的更多信息,请参阅ExponentialRolloutRate

    { ... "jobExecutionsRolloutConfig": { "exponentialRate": { "baseRatePerMinute": 50, "incrementFactor": 2, "rateIncreaseCriteria": { "numberOfNotifiedThings": 1000, "numberOfSucceededThings": 1000 }, "maximumPerMinute": 1000 } } ... }

其中,参数:

baseRatePer分钟

指定达到 numberOfNotifiedThingsnumberOfSucceededThings 阈值之前任务的执行速率。

incrementFactor

指定达到 numberOfNotifiedThingsnumberOfSucceededThings 阈值之后推出速率增加的指数因子。

rateIncreaseCriteria

指定 numberOfNotifiedThingsnumberOfSucceededThings 阈值。

中止配置

要使用 API 添加此配置,请在运行 CreateJobCreateJobTemplate API 操作时指定 AbortConfig 参数。以下示例介绍了任务推出的中止配置,该任务经历了如 CreateJob API 操作指定的多次失败执行。

注意

删除任务执行会影响已完成执行总数的计算值。当任务中止时,服务会创建自动的 commentreasonCode 以将用户驱动的取消与任务中止取消区分开来。

"abortConfig": { "criteriaList": [ { "action": "CANCEL", "failureType": "FAILED", "minNumberOfExecutedThings": 100, "thresholdPercentage": 20 }, { "action": "CANCEL", "failureType": "TIMED_OUT", "minNumberOfExecutedThings": 200, "thresholdPercentage": 50 } ] }

其中,参数:

action

指定满足中止条件时要采取的操作。此参数是必需的,并且 CANCEL 是唯一的有效值。

failureType

指定哪种失败类型应启动任务中止。有效值为 FAILEDREJECTEDTIMED_OUTALL

minNumberOfExecutedThings

指定在满足任务中止条件之前必须完成的任务执行数量。在此示例中, Amazon IoT 直到至少 100 个设备已完成任务执行时才检查是否应执行任务中止。

thresholdPercentage

指定可启动任务中止的已执行任务的事物总数。在此示例中,如果达到阈值百分比,则按顺序 Amazon IoT 检查并启动任务中止。如果完成 100 次执行后至少有 20% 的完整执行失败,则会取消任务推出。如果不符合此标准, Amazon IoT 则检查是否有至少 50% 的已完成执行在 200 次执行完成后超时。如果是这样,则会取消任务推出。

计划配置

要使用此 API 添加此配置,请在运行 CreateJobCreateJobTemplate API 操作时指定可选的 SchedulingConfig

"SchedulingConfig": { "endBehavior": string "endTime": string "maintenanceWindows": string "startTime": string }

其中,参数:

startTime

指定任务开始的日期和时间。

endTime

指定任务结束的日期和时间。

maintenanceWindows

指定是否为计划任务选择了可选维护时段,以便将任务文档推出到目标组中的所有设备。maintenanceWindow 的字符串格式为 YYYY/MM/DD(表示日期)和 hh: mm(表示时间)。

endBehavior

指定计划任务到达 endTime 时的任务行为。

注意

任务的可选 SchedulingConfig 可在 DescribeJobDescribeJobTemplate API 中查看。

超时配置

要使用 API 添加此配置,请在运行 CreateJobCreateJobTemplate API 操作时指定 TimeoutConfig 参数。

使用超时配置

  1. 要在创建作业或作业模板时设置正在进行的计时器,请为可选TimeoutConfig对象的inProgressTimeoutInMinutes属性设置一个值。

    "timeoutConfig": { "inProgressTimeoutInMinutes": number }
  2. 要为任务执行指定步数计时器,请为调用stepTimeoutInMinutes时设置一个值UpdateJobExecution。步骤计时器仅应用于您更新的任务执行。您每次更新任务执行时,可以为此计时器设置新值。

    注意

    UpdateJobExecution 可以通过创建新的值为 -1 的步骤计时器来丢弃已经创建的步骤计时器。

    { ... "statusDetails": { "string" : "string" }, "stepTimeoutInMinutes": number }
  3. 要创建新的步数计时器,您也可以调用 StartNextPendingJobExecutionAPI 操作。

重试配置

注意

创建任务时,请考虑为配置采用适当的重试次数。为避免因潜在的重试失败产生额外成本,请添加中止配置。创建任务后,便无法更新重试次数。您只能使用 UpdateJobAPI 操作将重试次数设置为 0。

要使用 API 添加此配置,请在运行 CreateJobCreateJobTemplate API 操作时指定 jobExecutionsRetryConfig 参数。

{ ... "jobExecutionsRetryConfig": { "criteriaList": [ { "failureType": "string", "numberOfRetries": number } ] } ... }

其中 criteriaList 是指定条件列表的数组,用于确定任务的每种失败类型允许的重试次数。