通过使用 AWS CLI创建自定义任务模板 - AWS IoT Core

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

通过使用 AWS CLI创建自定义任务模板

本主题介绍如何使用 AWS CLI创建、删除任务模板以及检索有关详细信息。

从头开始创建任务模板

以下 AWS CLI 命令显示如何使用作业文档创建作业 (job-document.json) 存储在 S3 存储桶中,角色有权从 Amazon S3 下载文件 (S3DownloadRole).

aws iot create-job-template \ --job-template-id 010 \ --document-source https://s3.amazonaws.com/amzn-s3-demo-bucket/job-document.json \ --timeout-config inProgressTimeoutInMinutes=100 \ --job-executions-rollout-config "{ \"exponentialRate\": { \"baseRatePerMinute\": 50, \"incrementFactor\": 2, \"rateIncreaseCriteria\": { \"numberOfNotifiedThings\": 1000, \"numberOfSucceededThings\": 1000}}, \"maximumPerMinute\": 1000}" \ --abort-config "{ \"criteriaList\": [ { \"action\": \"CANCEL\", \"failureType\": \"FAILED\", \"minNumberOfExecutedThings\": 100, \"thresholdPercentage\": 20}, { \"action\": \"CANCEL\", \"failureType\": \"TIMED_OUT\", \"minNumberOfExecutedThings\": 200, \"thresholdPercentage\": 50}]}" \ --presigned-url-config "{\"roleArn\":\"arn:aws:iam::123456789012:role/S3DownloadRole\", \"expiresInSec\":3600}"

可选的 timeout-config 参数指定每个设备完成任务运行所具有的时间。计时器在任务执行状态设置为 IN_PROGRESS 时启动。如果任务执行状态未在时间到期之前设置为其它最终状态,则会设置为 TIMED_OUT

进行中的计时器无法更新,将应用到该任务的所有任务启动。每当任务启动保持IN_PROGRESS状态的时间超过此时间间隔时,任务启动就会失败并切换到终端TIMED_OUT状态。 AWS IoT 还会发布MQTT通知。

有关创建任务推出和中止相关配置的更多信息,请参阅任务推出和中止配置

注意

在您创建任务时,系统会检索指定为 Amazon S3 文件的任务文档。如果在创建任务后更改任务文档源 Amazon S3文件的内容,发送到任务目标的内容不会更改。

从现有任务创建任务模板

以下 AWS CLI 命令通过指定现有任务的 Amazon 资源名称 (ARN) 来创建任务模板。新任务模板将使用任务中指定的所有配置。或者,您可以使用任何可选参数更改现有任务中的任何配置。

aws iot create-job-template \ --job-arn arn:aws:iot:region:123456789012:job/job-name \ --timeout-config inProgressTimeoutInMinutes=100

获取有关任务模板的详细信息

以下 AWS CLI 命令获取有关指定作业模板的详细信息。

aws iot describe-job-template \ --job-template-id template-id

该命令将显示以下输出。

{ "abortConfig": { "criteriaList": [ { "action": "string", "failureType": "string", "minNumberOfExecutedThings": number, "thresholdPercentage": number } ] }, "createdAt": number, "description": "string", "document": "string", "documentSource": "string", "jobExecutionsRolloutConfig": { "exponentialRate": { "baseRatePerMinute": number, "incrementFactor": number, "rateIncreaseCriteria": { "numberOfNotifiedThings": number, "numberOfSucceededThings": number } }, "maximumPerMinute": number }, "jobTemplateArn": "string", "jobTemplateId": "string", "presignedUrlConfig": { "expiresInSec": number, "roleArn": "string" }, "timeoutConfig": { "inProgressTimeoutInMinutes": number } }

列出任务模板

以下 AWS CLI 命令列出了您的所有作业模板 AWS 账户。

aws iot list-job-templates

该命令将显示以下输出。

{ "jobTemplates": [ { "createdAt": number, "description": "string", "jobTemplateArn": "string", "jobTemplateId": "string" } ], "nextToken": "string" }

要检索其它结果页面,使用 nextToken 字段的值。

删除任务模板

以下 AWS CLI 命令删除指定的作业模板。

aws iot delete-job-template \ --job-template-id template-id

该命令不显示任何输出。

从自定义任务模板创建任务。

以下 AWS CLI 命令根据自定义作业模板创建作业。它以名为的设备为目标,thingOne并指定任务模板的 Amazon 资源名称 (ARN) 作为任务的基础。您可以覆盖高级配置(如超时和取消配置),方法是传递 create-job 命令的关联参数。

警告

仅当从 AWS 托管式模板创建任务时,document-parameters 对象才能与 create-job 命令一起使用。此对象不得与自定义任务模板一起使用。有关演示如何使用此参数创建任务的示例,请参阅使用托管模板创建任务

aws iot create-job \ --targets arn:aws:iot:region:123456789012:thing/thingOne \ --job-template-arn arn:aws:iot:region:123456789012:jobtemplate/template-id