

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

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

O serviço AWS IoT Jobs publica em tópicos reservados no protocolo MQTT quando os trabalhos estão pendentes, concluídos ou cancelados e quando um dispositivo relata sucesso ou falha ao executar um trabalho. Os dispositivos ou os aplicativos de gerenciamento e monitoramento podem acompanhar o status de trabalhos assinando esses tópicos.

**Como habilitar eventos de trabalhos**  
As mensagens de resposta do serviço AWS IoT Jobs não passam pelo agente de mensagens e não podem ser assinadas por outros clientes ou regras. Para assinar mensagens relacionadas a atividades de trabalhos, use os tópicos `notify` e `notify-next`. Para obter mais informações sobre os tópicos de trabalhos, consulte [Tópicos de trabalhos](reserved-topics.md#reserved-topics-job).

Para ser notificado sobre atualizações de trabalhos, ative esses eventos de trabalhos usando o Console de gerenciamento da AWS, ou usando a API ou a CLI. Para obter mais informações, consulte [Habilitar eventos para AWS IoT](iot-events.md#iot-events-enable).

**Como funcionam os eventos de trabalho**  
Como cancelamento ou exclusão do trabalho podem levar algum tempo, duas mensagens são enviadas para indicar o início e o fim de uma solicitação. Por exemplo, quando uma solicitação de cancelamento é iniciada, uma mensagem é enviada para o tópico `$aws/events/job/jobID/cancellation_in_progress`. Quando uma solicitação de cancelamento é concluída, uma mensagem é enviada para o tópico `$aws/events/job/jobID/canceled`.

Um processo similar ocorre para uma solicitação de exclusão do trabalho. Os aplicativos de gerenciamento e de monitoramento podem assinar esses tópicos para acompanhar os status de trabalhos. Para obter mais informações sobre publicação e assinatura em tópicos MQTT, consulte [Protocolos de comunicação do dispositivo](protocols.md).

**Tipos de eventos do trabalho**  
Os seguintes exemplos mostram os diferentes tipos de eventos de trabalho:

**Trabalho Completed/Canceled/Deleted**  
O serviço AWS IoT Jobs publica uma mensagem em um tópico do MQTT quando um trabalho é concluído, cancelado, excluído ou quando o cancelamento ou a exclusão estão em andamento:  
+ `$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`
A mensagem `completed` contém as seguintes cargas úteis de exemplo:  

```
{
  "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
  }
}
```
A mensagem `canceled` contém a seguinte carga de exemplo.  

```
{
  "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
}
```
A mensagem `deleted` contém a seguinte carga de exemplo.  

```
{
      "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"
    }
```
A mensagem `cancellation_in_progress` contém as seguintes cargas úteis de exemplo:  

```
{
      "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"
    }
```
A mensagem `deletion_in_progress` contém as seguintes cargas úteis de exemplo:  

```
{
      "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"
    }
```

**Status terminal da execução do trabalho**  
O serviço AWS IoT Jobs publica uma mensagem quando um dispositivo atualiza a execução de uma tarefa para o status do 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`
A mensagem contém as seguintes cargas úteis de exemplo:  

```
{
  "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"
  }
}
```