本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
任务执行
- "Device can complete a job execution"(“设备可以完成任务执行”)
-
此测试用例可帮助您验证设备是否能够使用 Amazon IoT Jobs 接收更新,并发布成功更新的状态。有关 Amazon IoT 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 作业的保留主题。
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" } } ]有关创建和使用任务文档的更多信息,请参阅任务文档。