任务执行 - AWS IoT Core

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

任务执行

"Device can complete a job execution"(“设备可以完成任务执行”)

此测试用例可帮助您验证您的设备是否能够使用 AWS IoT 任务接收更新,并发布成功更新的状态。有关 AWS IoT 作业的更多信息,请参阅作业

要成功运行此测试用例,您需要为设备角色授予两个保留 AWS 主题。要订阅与消息相关的作业活动,请使用 notifynotify-next 主题。您的设备角色必须为以下主题授予PUBLISH操作权限:

  • $aws/things/ /jobs/ /g thingNameet jobId

  • $aws/things/ /jobs/ /更新 thingNamejobId

建议对以下主题进行授予SUBSCRIBE和RECEIVE采取行动:

  • $aw thingNames/things/ /jobs/get/accep

  • $aws/things/ /jobs/ /get/rec thingNametion jobId

  • $aws/things/ /jobs/ /更新/ thingName已接受 jobId

  • $aws/things/ /jobs/ /update/ thingName已拒绝 jobId

建议批准SUBSCRIBE针对以下主题的操作:

  • $aw thingNames/things/ /jobs/notify-nex

有关这些保留主题的更多信息,请参阅 AWS IoT 作业的保留主题。

MQTT WebSocket目前不支持 over。

API测试用例定义:

注意

EXECUTION_TIMEOUT 的默认值为 5 分钟。我们建议将超时值设置为 3 分钟。根据提供的 Jo AWS IoT b 文档或来源,调整超时值(例如,如果作业需要很长时间才能运行,请为测试用例定义更长的超时值)。要运行测试,需要有效的 AWS IoT Job 文档或已经存在的作业 ID。 AWS IoT Job 文档可以作为JSON文档或 S3 链接提供。如果已提供作业文档,则可以选择提供作业 ID。如果提供了任务 ID,Device Advisor 将在代表您创建 AWS IoT 任务时使用该ID。如果未提供作业文档,您可以提供用于运行测试用例的同一区域中的现有 ID。在这种情况下,设备顾问将在运行测试用例时使用该 AWS IoT Job。

"tests": [ { "name":"my_job_execution", "configuration": { // optional: // Test case will create a job task by using either JOB_DOCUMENT or JOB_DOCUMENT_SOURCE. // If you manage the job task on your own, leave it empty and provide the JOB_JOBID (self-managed job task). // JOB_DOCUMENT is a JSON formatted string "JOB_DOCUMENT": "{ \"operation\":\"reboot\", \"files\" : { \"fileName\" : \"install.py\", \"url\" : \"${aws:iot:s3-presigned-url:https://s3.amazonaws.com/bucket-name/key}\" } }", // JOB_DOCUMENT_SOURCE is an S3 link to the job document. It will be used only if JOB_DOCUMENT is not provided. "JOB_DOCUMENT_SOURCE": "https://s3.amazonaws.com/bucket-name/key", // JOB_JOBID is mandatory, only if neither document nor document source is provided. (Test case needs to know the self-managed job task id). "JOB_JOBID": "String", // JOB_PRESIGN_ROLE_ARN is used for the presign Url, which will replace the placeholder in the JOB_DOCUMENT field "JOB_PRESIGN_ROLE_ARN": "String", // Presigned Url expiration time. It must be between 60 and 3600 seconds, with the default value being 3600. "JOB_PRESIGN_EXPIRES_IN_SEC": "Long" "EXECUTION_TIMEOUT": "300", // in seconds }, "test": { "id": "Job_Execution", "version": "0.0.0" } } ]

有关创建和使用任务文档的更多信息,请参阅任务文档