任务执行
- “设备可以完成任务执行”
-
此测试使用案例可帮助您验证设备是否能够使用 Amazon IoT Jobs 接收更新,并发布成功更新的状态。有关 Amazon IoT Jobs 的更多信息,请参阅 Jobs。
为了成功运行此测试案例,提供了您授予设备角色所需的两个保留 Amazon 主题。要订阅与消息相关的任务活动,请使用 notify 和 notify-next 主题。您的设备角色必须为以下主题授予 PUBLISH 操作:
$aws/things/thingName/jobs/jobId/get
$aws/things/thingName/jobs/jobId/update
建议为以下主题授予 SUBSCRIBE 和 RECEIVE 操作:
$aws/things/thingName/jobs/get/accepted
$aws/things/thingName/jobs/jobId/get/rejected
$aws/things/thingName/jobs/jobId/update/accepted
$aws/things/thingName/jobs/jobId/update/rejected
建议为以下主题授予 SUBSCRIBE 操作:
$aws/things/thingName/jobs/notify-next
有关这些保留主题的更多信息,请参阅 Amazon IoT 任务的保留主题。
目前不支持基于 WebSocket 的 MQTT。
API 测试使用案例定义:
注意
EXECUTION_TIMEOUT的默认值为 5 分钟。我们建议将超时值设置为 3 分钟。根据提供的 Amazon IoT 任务文档或源,调整超时值(例如,如果任务需要很长时间才能运行,则为测试使用案例定义一个更大的超时值)。要运行测试,需要提供有效的 Amazon IoT 任务文档或现有的任务 ID。可采用 JSON 文档或 S3 链接形式提供 Amazon IoT 任务文档。如果已提供任务文档,则可以选择提供任务 ID。如果已提供任务 ID,Device Advisor 将在代表您创建 Amazon IoT 任务时使用该 ID。如果未提供任务文档,您可以提供用于运行测试使用案例的同一区域中的现有 ID。在此情况下,Device Advisor 将在运行测试使用案例时使用该 Amazon IoT 任务。"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" } } ]有关创建和使用任务文档的更多信息,请参阅任务文档。