

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

# 任务执行
<a name="device-advisor-tests-job-execution"></a>

**“设备可以完成任务执行”**  
 此测试用例可帮助您验证您的设备是否能够使用 Amazon IoT 任务接收更新，并发布成功更新的状态。有关 Amazon IoT 作业的更多信息，请参阅[作业](https://docs.amazonaws.cn//iot/latest/developerguide/iot-jobs.html)。  
 为了成功运行此测试案例，提供了您授予[设备角色](https://docs.amazonaws.cn/iot/latest/developerguide/device-advisor-setting-up.html#da-iam-role)所需的两个保留 Amazon 主题。要订阅与消息相关的任务活动，请使用 **notify** 和 **notify-next** 主题。您的设备角色必须为以下主题授予 PUBLISH 操作：  
+ \$1aws/things/**thingName**/jobs/**jobId**/get
+ \$1aws/things/**thingName**/jobs/**jobId**/update
建议为以下主题授予 SUBSCRIBE 和 RECEIVE 操作：  
+ **\$1aws/things/ thingName/**jobs/get/accepted
+ \$1aws/things/**thingName**/jobs/**jobId**/get/rejected
+ \$1aws/things/**thingName**/jobs/**jobId**/update/accepted
+ \$1aws/things/**thingName**/jobs/**jobId**/update/rejected
建议为以下主题授予 SUBSCRIBE 操作：  
+ \$1aws/things/**thingName**/jobs/notify-next
有关这些保留主题的更多信息，请参阅 [Amazon IoT 任务](https://docs.amazonaws.cn/iot/latest/developerguide/reserved-topics.html#reserved-topics-job)的保留主题。  
 WebSocket目前不支持 **MQTT** 版本。  
*API 测试用例定义：*  
`EXECUTION_TIMEOUT` 的默认值为 5 分钟。我们建议将超时值设置为 3 分钟。根据所提供的 Jo Amazon IoT b 文档或来源，调整超时值（例如，如果作业需要很长时间才能运行，请为测试用例定义更长的超时值）。要运行测试，需要有效的 Amazon IoT Job 文档或已经存在的作业 ID。 Amazon IoT Job 文档可以以 JSON 文档或 S3 链接的形式提供。如果已提供任务文档，则可以选择提供任务 ID。如果提供了任务 ID，Device Advisor 将在代表您创建 Amazon IoT 任务时使用该ID。如果未提供任务文档，您可以提供用于运行测试使用案例的同一区域中的现有 ID。在这种情况下，设备顾问将在运行测试用例时使用该 Amazon 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"
      }
   }
]
```
有关创建和使用任务文档的更多信息，请参阅[任务文档](https://docs.amazonaws.cn//iot/latest/developerguide/iot-jobs.html)。