任務事件 - AWS IoT Core

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

任務事件

當 AWS IoT 工作擱置、完成或取消,以及裝置在執行作業時報告成功或失敗時,Jobs 服務會發佈至 MQTT 通訊協定上的保留主題。藉由訂閱這些主題,裝置或管理及監控應用程式就能夠追蹤任務的狀態。

如何啟用任務事件

來自 AWS IoT Jobs 服務的回應訊息不會透過訊息代理程式傳遞,而且無法由其他用戶端或規則訂閱這些訊息。若要訂閱任務活動相關的訊息,請使用 notifynotify-next 主題。如需任務主題的詳細資訊,請參閱 任務主題

若要收到工作更新的通知,請使用 AWS Management Console、或使用 API 或 CLI 來啟用這些工作事件。如需詳細資訊,請參閱 啟用事件 AWS IoT

任務事件的運作方式

由於取消和刪除任務可能需要一些時間,系統會傳送兩個訊息來表示請求開始和結束。例如,當取消請求開始時,系統會將訊息傳送到 $aws/events/job/jobID/cancellation_in_progress 主題。當取消請求完成時,系統會將訊息傳送到 $aws/events/job/jobID/canceled 主題。

任務刪除請求的程序亦同。管理及監控應用程式可以藉由訂閱這些主題,以追蹤任務的狀態。如需發佈與訂閱 MQTT 主題的詳細資訊,請參閱 裝置通訊協定

任務事件類型

下文顯示不同類型的任務事件:

完成/取消/刪除的任務

當 AWS IoT 工作完成、取消、刪除或取消或刪除正在進行時,Jobs 服務會在 MQTT 主題上發佈訊息:

  • $aws/events/job/jobID/completed

  • $aws/events/job/jobID/canceled

  • $aws/events/job/jobID/deleted

  • $aws/events/job/jobID/cancellation_in_progress

  • $aws/events/job/jobID/deletion_in_progress

completed 訊息包含的承載範例如下:

{ "eventType": "JOB", "eventId": "7364ffd1-8b65-4824-85d5-6c14686c97c6", "timestamp": 1234567890, "operation": "completed", "jobId": "27450507-bf6f-4012-92af-bb8a1c8c4484", "status": "COMPLETED", "targetSelection": "SNAPSHOT|CONTINUOUS", "targets": [ "arn:aws:iot:us-east-1:123456789012:thing/a39f6f91-70cf-4bd2-a381-9c66df1a80d0", "arn:aws:iot:us-east-1:123456789012:thinggroup/2fc4c0a4-6e45-4525-a238-0fe8d3dd21bb" ], "description": "My Job Description", "completedAt": 1234567890123, "createdAt": 1234567890123, "lastUpdatedAt": 1234567890123, "jobProcessDetails": { "numberOfCanceledThings": 0, "numberOfRejectedThings": 0, "numberOfFailedThings": 0, "numberOfRemovedThings": 0, "numberOfSucceededThings": 3 } }

canceled 訊息包含的承載範例如下。

{ "eventType": "JOB", "eventId": "568d2ade-2e9c-46e6-a115-18afa1286b06", "timestamp": 1234567890, "operation": "canceled", "jobId": "4d2a531a-da2e-47bb-8b9e-ff5adcd53ef0", "status": "CANCELED", "targetSelection": "SNAPSHOT|CONTINUOUS", "targets": [ "arn:aws:iot:us-east-1:123456789012:thing/Thing0-947b9c0c-ff10-4a80-b4b3-cd33d0145a0f", "arn:aws:iot:us-east-1:123456789012:thinggroup/ThingGroup1-95c644d5-1621-41a6-9aa5-ad2de581d18f" ], "description": "My job description", "createdAt": 1234567890123, "lastUpdatedAt": 1234567890123 }

deleted 訊息包含的承載範例如下。

{ "eventType": "JOB", "eventId": "568d2ade-2e9c-46e6-a115-18afa1286b06", "timestamp": 1234567890, "operation": "deleted", "jobId": "4d2a531a-da2e-47bb-8b9e-ff5adcd53ef0", "status": "DELETED", "targetSelection": "SNAPSHOT|CONTINUOUS", "targets": [ "arn:aws:iot:us-east-1:123456789012:thing/Thing0-947b9c0c-ff10-4a80-b4b3-cd33d0145a0f", "arn:aws:iot:us-east-1:123456789012:thinggroup/ThingGroup1-95c644d5-1621-41a6-9aa5-ad2de581d18f" ], "description": "My job description", "createdAt": 1234567890123, "lastUpdatedAt": 1234567890123, "comment": "Comment for this operation" }

cancellation_in_progress 訊息包含的承載範例如下:

{ "eventType": "JOB", "eventId": "568d2ade-2e9c-46e6-a115-18afa1286b06", "timestamp": 1234567890, "operation": "cancellation_in_progress", "jobId": "4d2a531a-da2e-47bb-8b9e-ff5adcd53ef0", "status": "CANCELLATION_IN_PROGRESS", "targetSelection": "SNAPSHOT|CONTINUOUS", "targets": [ "arn:aws:iot:us-east-1:123456789012:thing/Thing0-947b9c0c-ff10-4a80-b4b3-cd33d0145a0f", "arn:aws:iot:us-east-1:123456789012:thinggroup/ThingGroup1-95c644d5-1621-41a6-9aa5-ad2de581d18f" ], "description": "My job description", "createdAt": 1234567890123, "lastUpdatedAt": 1234567890123, "comment": "Comment for this operation" }

deletion_in_progress 訊息包含的承載範例如下:

{ "eventType": "JOB", "eventId": "568d2ade-2e9c-46e6-a115-18afa1286b06", "timestamp": 1234567890, "operation": "deletion_in_progress", "jobId": "4d2a531a-da2e-47bb-8b9e-ff5adcd53ef0", "status": "DELETION_IN_PROGRESS", "targetSelection": "SNAPSHOT|CONTINUOUS", "targets": [ "arn:aws:iot:us-east-1:123456789012:thing/Thing0-947b9c0c-ff10-4a80-b4b3-cd33d0145a0f", "arn:aws:iot:us-east-1:123456789012:thinggroup/ThingGroup1-95c644d5-1621-41a6-9aa5-ad2de581d18f" ], "description": "My job description", "createdAt": 1234567890123, "lastUpdatedAt": 1234567890123, "comment": "Comment for this operation" }
任務執行結束狀態

當設備將作業執行更新為終端狀態時,J AWS IoT obs 服務會發布一條消息:

  • $aws/events/jobExecution/jobID/succeeded

  • $aws/events/jobExecution/jobID/failed

  • $aws/events/jobExecution/jobID/rejected

  • $aws/events/jobExecution/jobID/canceled

  • $aws/events/jobExecution/jobID/timed_out

  • $aws/events/jobExecution/jobID/removed

  • $aws/events/jobExecution/jobID/deleted

訊息包含的承載範例如下:

{ "eventType": "JOB_EXECUTION", "eventId": "cca89fa5-8a7f-4ced-8c20-5e653afb3572", "timestamp": 1234567890, "operation": "succeeded|failed|rejected|canceled|removed|timed_out", "jobId": "154b39e5-60b0-48a4-9b73-f6f8dd032d27", "thingArn": "arn:aws:iot:us-east-1:123456789012:myThing/6d639fbc-8f85-4a90-924d-a2867f8366a7", "status": "SUCCEEDED|FAILED|REJECTED|CANCELED|REMOVED|TIMED_OUT", "statusDetails": { "key": "value" } }