本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Amazon IoT Jobs API 指定任务配置
你可以使用CreateJob或者CreateJobTemplate用于指定不同任务配置的 API。以下各节介绍如何添加这些配置。添加配置后,您可以使用JobExecutionSummary和JobExecutionSummaryForJob查看他们的状态。
有关不同配置及其工作方式的更多信息,请参阅 任务配置的工作原理。
推出配置
您可以为推出配置指定恒定推出速率或指数推出速率。
-
设置恒定推出速率
若要设置恒定推出速率,请使用
JobExecutionsRolloutConfig
对象将maximumPerMinute
参数添加到CreateJob
请求。该参数会指定任务执行的速率上限。此值为可选值,范围从 1 到 1000。如果不设置该值,则会使用 1000 作为默认值。"jobExecutionsRolloutConfig": { "maximumPerMinute": 1000 }
-
设置指数推出速率
若要设置任务可变推出速率,请使用
JobExecutionsRolloutConfig
对象。您可以在运行
API 操作时配置ExponentialRolloutRate
CreateJob
属性。以下示例使用exponentialRate
参数设置指数推出速率。有关这些参数的更多信息,请参阅ExponentialRolloutRate
。{ ... "jobExecutionsRolloutConfig": { "exponentialRate": { "baseRatePerMinute": 50, "incrementFactor": 2, "rateIncreaseCriteria": { "numberOfNotifiedThings": 1000, "numberOfSucceededThings": 1000 }, "maximumPerMinute": 1000 } } ... }
其中,参数:
- baseRatePer分钟
-
指定达到
numberOfNotifiedThings
或numberOfSucceededThings
阈值之前任务的执行速率。 - incrementFactor
-
指定达到
numberOfNotifiedThings
或numberOfSucceededThings
阈值之后推出速率增加的指数因子。 - rateIncreaseCriteria
-
指定
numberOfNotifiedThings
或numberOfSucceededThings
阈值。
中止配置
要使用 API 添加此配置,请指定AbortConfig
运行时的参数CreateJob
,或者CreateJobTemplate
API 操作。以下示例介绍了任务推出的中止配置,该任务经历了如 CreateJob
API 操作指定的多次失败执行。
注意
删除任务执行会影响已完成执行总数的计算值。当任务中止时,服务会创建自动的 comment
和 reasonCode
以将用户驱动的取消与任务中止取消区分开来。
"abortConfig": { "criteriaList": [ { "action": "CANCEL", "failureType": "FAILED", "minNumberOfExecutedThings": 100, "thresholdPercentage": 20 }, { "action": "CANCEL", "failureType": "TIMED_OUT", "minNumberOfExecutedThings": 200, "thresholdPercentage": 50 } ] }
其中,参数:
- action
-
指定满足中止标准时要采取的操作。此参数是必需的,并且
CANCEL
是唯一的有效值。 - failureType
-
指定哪种失败类型应启动任务中止。有效值为
FAILED
、REJECTED
、TIMED_OUT
和ALL
。 - minNumberOfExecutedThings
-
指定在满足任务中止条件之前必须完成的任务执行数量。在此示例中,Amazon IoT 直到至少 100 个设备已完成任务执行时才检查是否应执行任务中止。
- thresholdPercentage
-
指定可启动任务中止的已执行任务的事物总数。在此示例中,Amazon IoT 会按顺序检查;如果达到阈值百分比,则启动任务中止。如果完成 100 次执行后至少有 20% 的完整执行失败,则会取消任务推出。如果不符合该条件,在完成 200 次执行后,Amazon IoT 会检查是否至少有 50% 的已完成执行超时。如果是这样,则会取消任务推出。
计划配置
要使用 API 添加此配置,请指定可选SchedulingConfig
当你运行CreateJob
,或者CreateJobTemplate
API 操作。
"SchedulingConfig": { "endBehavior": string "endTime": string "maintenanceWindows": string "startTime": string }
其中,参数:
- startTime
-
指定任务开始的日期和时间。
- endTime
-
指定任务结束的日期和时间。
- 维护窗口
指定是否为计划作业选择了可选的维护时段,以便将作业文档发布到目标组中的所有设备。的字符串格式
maintenanceWindow
日期为 YYYY/MM/DD,时间为 hh: mm。- 终结行为
-
指定计划任务到达
endTime
时的任务行为。
注意
任务的可选 SchedulingConfig
可在 DescribeJob
和 DescribeJobTemplate
API 中查看。
超时配置
要使用 API 添加此配置,请指定TimeoutConfig
运行时的参数CreateJob
,或者CreateJobTemplate
API 操作。
使用超时配置
-
要在创建作业或作业模板时设置正在进行的计时器,请为
inProgressTimeoutInMinutes
可选的属性TimeoutConfig对象。"timeoutConfig": { "inProgressTimeoutInMinutes": number }
-
要为作业执行指定计时器,请为设置一个值
stepTimeoutInMinutes
当你打电话时UpdateJobExecution。步骤计时器仅应用于您更新的任务执行。您每次更新任务执行时,可以为此计时器设置新值。注意
UpdateJobExecution
可以通过创建值为 -1 的新计时器来丢弃已经创建的步进计时器。{ ... "statusDetails": { "string" : "string" }, "stepTimeoutInMinutes": number }
-
要创建新的计步器,也可以调用StartNextPendingJobExecutionAPI 操作。
重试配置
注意
创建任务时,请考虑为配置采用适当的重试次数。为避免因潜在的重试失败产生额外成本,请添加中止配置。创建任务后,便无法更新重试次数。只能使用将重试次数设置为 0UpdateJobAPI 操作。
要使用 API 添加此配置,请指定jobExecutionsRetryConfig
运行时的参数CreateJob
,或者CreateJobTemplate
API 操作。
{ ... "jobExecutionsRetryConfig": { "criteriaList": [ { "failureType": "string", "numberOfRetries": number } ] } ... }
哪里标准主义者是一个数组,用于指定标准列表,用于确定作业每种失败类型允许的重试次数。