

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Eventos de trabajos
<a name="events-jobs"></a>

El servicio AWS IoT Jobs publica en temas reservados del protocolo MQTT cuando los trabajos están pendientes, completados o cancelados, y cuando un dispositivo informa que los trabajos se han ejecutado correctamente o han fallado. 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 AWS IoT Jobs no pasan por el intermediario 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](reserved-topics.md#reserved-topics-job).

Para recibir notificaciones de las actualizaciones de los trabajos, habilite estos eventos de trabajos mediante la API o la CLI Consola de administración de AWS, o bien mediante la misma. Para obtener más información, consulte [Habilite los eventos para AWS IoT](iot-events.md#iot-events-enable).

**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](protocols.md).

**Tipos de eventos de trabajo**  
A continuación, se muestran los diferentes tipos de eventos de trabajo:

**Trabajo Completed/Canceled/Deleted**  
El servicio AWS IoT Jobs publica un mensaje sobre un tema de MQTT cuando se completa, cancela o elimina un trabajo o cuando la cancelación o 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 AWS IoT Jobs publica un mensaje cuando un dispositivo actualiza la ejecución de un trabajo al estado terminal:  
+ `$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"
  }
}
```