本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
- 「裝置可以完成任務執行」
-
此測試案例可協助您驗證裝置是否能夠使用 AWS IoT 任務接收更新,並發佈成功更新的狀態。如需 AWS IoT 任務的詳細資訊,請參閱任務。
若要成功執行此測試案例,您需要授予裝置角色 兩個預留 AWS 主題。若要訂閱作業活動相關的訊息,請使用 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
如需有關這些保留主題的詳細資訊,請參閱AWS IoT Job 的保留主題。
目前不支援MQTT WebSocket。
API 測試案例定義:
注意
EXECUTION_TIMEOUT
的預設值為 5 分鐘。我們建議的逾時值為 3 分鐘。根據提供 AWS IoT 的任務文件或來源,調整逾時值 (例如,如果任務需要很長時間才能執行,請定義測試案例的較長逾時值)。若要執行測試,需要有效的 AWS IoT 任務文件或現有的任務 ID。 AWS IoT 任務文件可以做為JSON文件或 S3 連結提供。如果提供 Job 文件,則可選擇性提供作業 ID。如果提供任務 ID,Device Advisor 將在代表您建立 AWS IoT 任務時使用該 ID。如果未提供 Job 文件,您可以提供與執行測試案例位於相同區域的現有 ID。在此情況下,Device Advisor 將在執行測試案例時使用該 AWS 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" } } ]
如需建立和使用任務文件的詳細資訊,請參閱任務文件。