AWS IoT
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

作业推出和中止配置

在满足各种条件和阈值时,可使用可变推出速率部署 AWS IoT 作业。如果失败作业的数量与一组条件匹配,也可以中止作业推出。这些推出配置使您能够更精细地控制作业的影响范围。在创建作业时通过 JobExecutionsRolloutConfig 对象设置作业推出速率条件。在创建作业时通过 AbortConfig 对象设置作业中止条件。

使用作业推出速率

您可以在运行 CreateJob API 时通过配置 JobExecutionsRolloutConfig 对象的 ExponentialRolloutRate 属性来设置作业推出速率。以下示例使用 exponentialRate 参数设置可变推出速率。

{ ... "jobExecutionsRolloutConfig": { "exponentialRate": { "baseRatePerMinute": 50, "incrementFactor": 2, "rateIncreaseCriteria": { "numberOfNotifiedThings": 1000, // Set one or the other "numberOfSucceededThings": 1000 // of these two values. }, "maximumPerMinute": 1000 ... }

baseRatePerMinute 参数指定在达到 numberOfNotifiedThingsnumberOfSucceededThings 阈值之前作业的执行速率。

incrementFactor 参数指定在达到 numberOfNotifiedThingsnumberOfSucceededThings 阈值后推出速率提高所采用的指数因子。

rateIncreaseCriteria 参数是指定 numberOfNotifiedThingsnumberOfSucceededThings 阈值的对象。

maximumPerMinute 参数指定作业执行的速率上限。有效值范围为 1 至 1000。在传递 ExponentialRate 对象时,此参数是必需的。在可变速率推出中,此值确定作业推出速率的上限。

具有上述配置的作业推出将以每分钟 50 个作业执行的速率开始。它将继续采用该速率,直到 1000 个事物收到了作业执行通知(如果指定了 numberOfNotifiedThings 的值)或出现了 1000 个成功的作业执行(如果指定了 numberOfSucceededThings 的值)。

下表说明了推出将如何通过前四个增量继续。

每分钟的推出速率

50

100

200

400

被通知设备或成功执行的数量

1000

2000

3000

4000

以下配置设置静态推出速率。

{ ... "jobExecutionsRolloutConfig": { "maximumPerMinute": 1000 ... }

maximumPerMinute 参数指定作业执行的速率上限。有效值范围为 1 至 1000。此参数为可选项。如果您未指定值,则将使用默认值 1000。

使用作业推出中止配置

您可以在运行 CreateJob API 时通过配置可选的 AbortConfig 对象来设置作业中止条件。此部分介绍以下示例配置对遇到多个失败执行的作业推出的影响。

"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 参数指定在服务检查是否已满足作业中止条件之前必须发生的已完成作业执行的数量。在此示例中,AWS IoT 直到至少 100 个设备已完成作业执行时才检查是否应执行作业中止。

thresholdPercentage 参数指定启动作业中止的执行事物的总数。在此示例中,如果在完成 100 个执行后所有已完成执行中至少有 20% 以任何方式失败,AWS IoT 将启动作业中止并取消作业推出。

注意

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