Eventos de trabajos
El servicio de AWS IoT Jobs también publica en temas reservados en el protocolo MQTT cuando los trabajos están pendientes, completados o cancelados y cuando un dispositivo informa del éxito o del fracaso al ejecutar un trabajo. Los dispositivos o las aplicaciones de administración y monitorización pueden realizar un seguimiento del estado de los trabajos mediante la suscripción a estos temas.
Cómo habilitar los eventos de trabajos
Los mensajes de respuesta del servicio de AWS IoT Jobs no pasan por el agente de mensajes y otros clientes o reglas no pueden suscribirse a ellos. Para suscribirse a los mensajes relacionados con la actividad laboral, utilice los temas notify
y notify-next
. Para obtener más información acerca de los temas de trabajos, consulte Temas de trabajos.
Para recibir notificaciones de actualizaciones de trabajos, habilite estos eventos de trabajo con AWS Management Console, con la API o mediante la CLI. Para obtener más información, consulte Habilitar eventos para AWS IoT.
Cómo funcionan los eventos de trabajo
Dado que cancelar o eliminar un trabajo puede llevar un tiempo, se envían dos mensajes para indicar el comienzo y el final de una solicitud. Por ejemplo, cuando se inicia una solicitud de cancelación, se envía un mensaje al tema $aws/events/job/jobID/cancellation_in_progress
. Cuando finaliza una solicitud de cancelación, se envía un mensaje al tema $aws/events/job/jobID/canceled
.
En las solicitudes de eliminación de trabajos se lleva a cabo un proceso parecido. Las aplicaciones de administración y monitorización pueden suscribirse a estos temas y hacer un seguimiento del estado de los trabajos. Para obtener más información acerca de cómo publicar en temas de MQTT y suscribirse a ellos, consulte Protocolos de comunicación de dispositivos.
Tipos de eventos de trabajo
A continuación se muestran los diferentes tipos de eventos de trabajo:
- Trabajo completado, cancelado o eliminado
-
El servicio Jobs de AWS IoT publica un mensaje en un tema de MQTT cuando se completa, cancela o elimina un trabajo, o bien cuando la cancelación o la eliminación está en curso:
-
$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
El mensaje
completed
contiene la siguiente carga de ejemplo:{ "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 } }
El mensaje
canceled
contiene la siguiente carga de ejemplo:{ "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 }
El mensaje
deleted
contiene la siguiente carga de ejemplo:{ "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" }
El mensaje
cancellation_in_progress
contiene la siguiente carga de ejemplo:{ "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" }
El mensaje
deletion_in_progress
contiene la siguiente carga de ejemplo:{ "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" }
-
- Estado final de ejecución de trabajo
-
El servicio Jobs de AWS IoT publica un mensaje cuando un dispositivo actualiza la ejecución de un trabajo al estado final:
-
$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
El mensaje contiene la siguiente carga de ejemplo:
{ "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" } }
-