

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á.

# Mensagens de eventos
<a name="iot-events"></a>

Esta seção contém informações sobre mensagens publicadas AWS IoT quando itens ou trabalhos são atualizados ou alterados. Para obter informações sobre o AWS IoT Events serviço que permite criar detectores para monitorar seus dispositivos em busca de falhas ou alterações na operação e para acionar ações quando elas ocorrerem, consulte [AWS IoT Events](https://aws.amazon.com/iot-events).

## Como as mensagens de eventos são geradas
<a name="iot-events-how"></a>

AWS IoT publica mensagens de eventos quando determinados eventos ocorrem. Por exemplo, os eventos são gerados pelo registro quando as objetos são adicionadas, atualizadas ou excluídas. Cada evento faz com que uma única mensagem de evento seja enviada. As mensagens de eventos são publicadas por meio do MQTT com uma carga JSON. O conteúdo da carga depende do tipo do evento.

**nota**  
Há garantia de que as mensagens de eventos sejam publicadas uma vez. É possível que elas sejam publicadas mais de uma vez. A ordenação das mensagens de eventos não é garantida.

### Política para receber mensagens de eventos
<a name="iot-events-policy"></a>

Para receber mensagens de eventos, seu dispositivo deve usar uma política apropriada que permita que ele se conecte ao gateway do AWS IoT dispositivo e assine os tópicos de eventos do MQTT. Você também deve assinar os filtros apropriados dos tópicos.

Veja a seguir um exemplo da política necessária para o recebimento de eventos de ciclo de vida:

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iot:Subscribe",
                "iot:Receive"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:/$aws/events/*"
            ]
        }
    ]
}
```

## Habilitar eventos para AWS IoT
<a name="iot-events-enable"></a>

Antes que os assinantes dos tópicos reservados possam receber mensagens, você deve habilitar as mensagens de eventos do Console de gerenciamento da AWS ou usando a API ou a CLI. Para obter informações sobre as mensagens de eventos que as diferentes opções gerenciam, consulte a [Tabela de configurações de AWS IoT eventos](#iot-events-settings-table).
+ Para habilitar mensagens de eventos, acesse a guia [Configurações](https://console.aws.amazon.com//iot/home#/settings) do AWS IoT console e, na seção **Mensagens baseadas em eventos**, escolha **Gerenciar eventos**. Você pode especificar os eventos que deseja gerenciar.
+ Para controlar quais tipos de eventos são publicados usando a API ou a CLI, chame a [UpdateEventConfigurations](https://docs.aws.amazon.com/iot/latest/apireference/API_UpdateEventConfigurations.html)API ou use o comando da CLI**update-event-configurations**. Por exemplo:

  ```
  aws iot update-event-configurations --event-configurations "{\"THING\":{\"Enabled\": true}}"
  ```

**nota**  
Todas as aspas (") são recuadas com uma barra invertida (\$1).

Você pode obter a configuração atual do evento chamando a [DescribeEventConfigurations](https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeEventConfigurations.html)API ou usando o comando **describe-event-configurations** CLI. Por exemplo: .

```
aws iot describe-event-configurations
```<a name="iot-events-settings-table"></a>

**Tabela de configurações de eventos de AWS IoT **


|  Categoria de evento  (AWS IoT Console: Configurações: mensagens baseadas em eventos)  |  Valor da chave `eventConfigurations` (AWS CLI/API)  |    Tópico de mensagens de evento  | 
| --- | --- | --- | 
|  *(Só pode ser configurado usando a AWS CLI/API)*  |  `CA_CERTIFICATE`  |  `$aws/events/certificates/registered/caCertificateId`  | 
|  *(Só pode ser configurado usando a AWS CLI/API)*  |  `CERTIFICATE`  |  `$aws/events/presence/connected/clientId`  | 
|  *(Só pode ser configurado usando a AWS CLI/API)*  |  `CERTIFICATE`  |  `$aws/events/presence/disconnected/clientId`  | 
|  *(Só pode ser configurado usando a AWS CLI/API)*  |  `CERTIFICATE`  |  `$aws/events/subscriptions/subscribed/clientId`  | 
|  *(Só pode ser configurado usando a AWS CLI/API)*  |  `CERTIFICATE`  |  `$aws/events/subscriptions/unsubscribed/clientId`  | 
|  Trabalho concluído, cancelado  |  `JOB`  |  `$aws/events/job/jobID/canceled`  | 
|  Trabalho concluído, cancelado  |  `JOB`  |  `$aws/events/job/jobID/cancellation_in_progress`  | 
|  Trabalho concluído, cancelado  |  `JOB`  |  `$aws/events/job/jobID/completed`  | 
|  Trabalho concluído, cancelado  |  `JOB`  |  `$aws/events/job/jobID/deleted`  | 
|  Trabalho concluído, cancelado  |  `JOB`  |  `$aws/events/job/jobID/deletion_in_progress`  | 
|  Execução do trabalho: sucesso, falha, rejeitado, cancelado, removido  |  `JOB_EXECUTION`  |  `$aws/events/jobExecution/jobID/canceled`  | 
|  Execução do trabalho: sucesso, falha, rejeitado, cancelado, removido  |  `JOB_EXECUTION`  |  `$aws/events/jobExecution/jobID/deleted`  | 
|  Execução do trabalho: sucesso, falha, rejeitado, cancelado, removido  |  `JOB_EXECUTION`  |  `$aws/events/jobExecution/jobID/failed`  | 
|  Execução do trabalho: sucesso, falha, rejeitado, cancelado, removido  |  `JOB_EXECUTION`  |  `$aws/events/jobExecution/jobID/rejected`  | 
|  Execução do trabalho: sucesso, falha, rejeitado, cancelado, removido  |  `JOB_EXECUTION`  |  `$aws/events/jobExecution/jobID/removed`  | 
|  Execução do trabalho: sucesso, falha, rejeitado, cancelado, removido  |  `JOB_EXECUTION`  |  `$aws/events/jobExecution/jobID/succeeded`  | 
|  Execução do trabalho: sucesso, falha, rejeitado, cancelado, removido  |  `JOB_EXECUTION`  |  `$aws/events/jobExecution/jobID/timed_out`  | 
|  Objeto: criado, atualizado, excluído  |  `THING`  |  `$aws/events/thing/thingName/created`  | 
|  Objeto: criado, atualizado, excluído  |  `THING`  |  `$aws/events/thing/thingName/updated`  | 
|  Objeto: criado, atualizado, excluído  |  `THING`  |  `$aws/events/thing/thingName/deleted`  | 
|  Grupo de objetos: adicionado, removido  |  `THING_GROUP`  |  `$aws/events/thingGroup/thingGroupName/created`  | 
|  Grupo de objetos: adicionado, removido  |  `THING_GROUP`  |  `$aws/events/thingGroup/thingGroupName/updated`  | 
|  Grupo de objetos: adicionado, removido  |  `THING_GROUP`  |  `$aws/events/thingGroup/thingGroupName/deleted`  | 
|  Hierarquia de grupos de objetos: adicionada, removida  |  `THING_GROUP_HIERARCHY`  |  `$aws/events/thingGroupHierarchy/thingGroup/parentThingGroupName/childThingGroup/childThingGroupName/added`  | 
|  Hierarquia de grupos de objetos: adicionada, removida  |  `THING_GROUP_HIERARCHY`  |  `$aws/events/thingGroupHierarchy/thingGroup/parentThingGroupName/childThingGroup/childThingGroupName/removed`  | 
|  Associação ao grupo de objetos: adicionada, removida  |  `THING_GROUP_MEMBERSHIP`  |  `$aws/events/thingGroupMembership/thingGroup/thingGroupName/thing/thingName/added`  | 
|  Associação ao grupo de objetos: adicionada, removida  |  `THING_GROUP_MEMBERSHIP`  |  `$aws/events/thingGroupMembership/thingGroup/thingGroupName/thing/thingName/removed`  | 
|  Tipo de objeto: criada, atualizada, excluída  |  `THING_TYPE`  |  `$aws/events/thingType/thingTypeName/created`  | 
|  Tipo de objeto: criada, atualizada, excluída  |  `THING_TYPE`  |  `$aws/events/thingType/thingTypeName/updated`  | 
|  Tipo de objeto: criada, atualizada, excluída  |  `THING_TYPE`  |  `$aws/events/thingType/thingTypeName/deleted`  | 
|  Associação do tipo de objeto: adicionada, removida  |  `THING_TYPE_ASSOCIATION`  |  `$aws/events/thingTypeAssociation/thing/thingName/thingType/thingTypeName/added` `$aws/events/thingTypeAssociation/thing/thingName/thingType/thingTypeName/removed`  | 

# Eventos de registro
<a name="registry-events"></a>

O registro pode publicar mensagens de eventos quando objetos, tipos de objetos e grupos de objetos são criados, atualizados ou excluídos. No entanto, esses eventos não estão disponíveis por padrão. Para obter mais informações sobre como ativar esses eventos, consulte [Habilitar eventos para AWS IoT](iot-events.md#iot-events-enable).

**Topics**
+ [Eventos de objetos](#registry-events-thing)
+ [Eventos de tipos de objeto](#registry-events-thingtype)
+ [Eventos de grupos de objetos](#registry-events-thinggroup)

## Eventos de objetos
<a name="registry-events-thing"></a>

**Coisa Created/Updated/Deleted**

O registro publica as seguintes mensagens de eventos quando as objetos são criadas, atualizadas ou excluídas:
+ `$aws/events/thing/thingName/created`
+ `$aws/events/thing/thingName/updated`
+ `$aws/events/thing/thingName/deleted`

As mensagens contêm os seguintes exemplos de carga útil:

```
{
    "eventType" : "THING_EVENT",
    "eventId" : "f5ae9b94-8b8e-4d8e-8c8f-b3266dd89853",
    "timestamp" : 1234567890123,
    "operation" : "CREATED|UPDATED|DELETED",
    "accountId" : "123456789012",
    "thingId" : "b604f69c-aa9a-4d4a-829e-c480e958a0b5",
    "thingName" : "MyThing",
    "versionNumber" : 1,
    "thingTypeName" : null,
    "attributes": {
                "attribute3": "value3",
                "attribute1": "value1",
                "attribute2": "value2"
    }
}
```

As cargas úteis contêm os seguintes atributos:

eventType  
Defina como "THING\$1EVENT".

eventId  
Um ID de evento exclusivo (sequência).

timestamp  
A data e hora do UNIX de quando o evento ocorreu.

operação  
A operação que acionou o evento. Os valores válidos são:  
+ CREATED
+ UPDATED
+ EXCLUÍDO

accountId  
Sua Conta da AWS identidade.

thingId  
O ID do objeto que está sendo criada, atualizada ou excluída.

thingName  
O nome do objeto que está sendo criada, atualizada ou excluída.

versionNumber  
A versão do objeto que está sendo criada, atualizada ou excluída. Esse valor é definido como 1 quando um objeto é criada. Ele é incrementado em 1 toda vez que o objeto é atualizada.

thingTypeName  
O tipo do objeto associado ao objeto, se existir. Caso contrário, `null`.

attributes  
Uma coleção de pares nome-valor associados ao objeto.

## Eventos de tipos de objeto
<a name="registry-events-thingtype"></a>

**Topics**
+ [Tipo de coisa Created/Updated/Deprecated/Undeprecated/Deleted](#registry-events-thingtype-crud)
+ [Tipo de objeto associado ou desassociado de um objeto](#registry-events-thingtype-assoc)

### Tipo de coisa Created/Updated/Deprecated/Undeprecated/Deleted
<a name="registry-events-thingtype-crud"></a>

O registro publica as seguintes mensagens de evento quando os tipos de coisa são criados, atualizados, suspensos, recuperados ou excluídos:
+ `$aws/events/thingType/thingTypeName/created`
+ `$aws/events/thingType/thingTypeName/updated`
+ `$aws/events/thingType/thingTypeName/deleted`

A mensagem contém as seguintes cargas úteis de exemplo:

```
{
    "eventType" : "THING_TYPE_EVENT",
    "eventId" : "8827376c-4b05-49a3-9b3b-733729df7ed5",
    "timestamp" : 1234567890123,
    "operation" : "CREATED|UPDATED|DELETED",
    "accountId" : "123456789012",
    "thingTypeId" : "c530ae83-32aa-4592-94d3-da29879d1aac",
    "thingTypeName" : "MyThingType",
    "isDeprecated" : false|true,
    "deprecationDate" : null,
    "searchableAttributes" : [ "attribute1", "attribute2", "attribute3" ],
    "propagatingAttributes": [
        {
	    "userPropertyKey": "key",
	    "thingAttribute": "model"
        },
        {
	    "userPropertyKey": "key",
	    "connectionAttribute": "iot:ClientId"
        }
    ],
    "description" : "My thing type"
}
```

As cargas úteis contêm os seguintes atributos:

eventType  
Defina como "THING\$1TYPE\$1EVENT".

eventId  
Um ID de evento exclusivo (sequência).

timestamp  
A data e hora do UNIX de quando o evento ocorreu.

operação  
A operação que acionou o evento. Os valores válidos são:  
+ CREATED
+ UPDATED
+ EXCLUÍDO

accountId  
Sua Conta da AWS identidade.

thingTypeId  
O ID do tipo de coisa que está sendo criada, atualizada, suspensa ou excluída.

thingTypeName  
O nome do tipo de coisa que está sendo criada, atualizada, suspensa ou excluída.

isDeprecated  
`true` se o tipo do objeto estiver preterido. Caso contrário, `false`.

deprecationDate  
A data e hora do UNIX em que o tipo de objeto foi preterido.

searchableAttributes  
Uma coleção de pares nome-valor associados ao tipo de objeto que pode ser usada para pesquisa.

propagatingAttributes  
Lista de atributos de propagação. Um atributo de propagação pode conter um atributo de coisa, um atributo de conexão e uma chave de propriedade do usuário. Para acessar mais informações, consulte [Adicionar atributos de propagação para enriquecimento de mensagens](https://docs.aws.amazon.com//iot/latest/developerguide/thing-types-propagating-attributes.html).

descrição  
Uma descrição do tipo de objeto.

### Tipo de objeto associado ou desassociado de um objeto
<a name="registry-events-thingtype-assoc"></a>

O registro publica as seguintes mensagens de eventos quando um tipo de objeto é associado ou desassociado de um objeto.
+ `$aws/events/thingTypeAssociation/thing/thingName/thingType/typeName/added`
+ `$aws/events/thingTypeAssociation/thing/thingName/thingType/typeName/removed`

Veja a seguir um exemplo de carga `added`. As cargas das mensagens `removed` são semelhantes.

```
{
    "eventId" : "87f8e095-531c-47b3-aab5-5171364d138d",
    "eventType" : "THING_TYPE_ASSOCIATION_EVENT",
    "operation" : "ADDED",
    "thingId" : "b604f69c-aa9a-4d4a-829e-c480e958a0b5",
    "thingName": "myThing",
    "thingTypeName" : "MyThingType",
    "timestamp" : 1234567890123,
}
```

As cargas úteis contêm os seguintes atributos:

eventId  
Um ID de evento exclusivo (sequência).

eventType  
Defina como "THING\$1TYPE\$1ASSOCIATION\$1EVENT".

operação  
A operação que acionou o evento. Os valores válidos são:  
+ ADICIONADO
+ REMOVIDO

thingId  
O ID do objeto cuja associação do tipo foi alterada.

thingName  
O nome do objeto cuja associação do tipo foi alterada.

thingTypeName  
O tipo de objeto associado ou não mais associado ao objeto.

timestamp  
A data e hora do UNIX de quando o evento ocorreu.

## Eventos de grupos de objetos
<a name="registry-events-thinggroup"></a>

**Topics**
+ [Thing Group Created/Updated/Deleted](#registry-events-thinggroup-crud)
+ [Objeto adicionado ou removido de um grupo de objetos](#registry-events-thinggroup-addremove)
+ [Grupo de objetos adicionado ou removido de um grupo de objetos](#registry-events-thinggroup-adddelete)

### Thing Group Created/Updated/Deleted
<a name="registry-events-thinggroup-crud"></a>

O registro publica as seguintes mensagens de eventos quando um grupo de objetos é criado, atualizado ou excluído.
+ `$aws/events/thingGroup/groupName/created`
+ `$aws/events/thingGroup/groupName/updated`
+ `$aws/events/thingGroup/groupName/deleted`

Veja a seguir um exemplo de carga `updated`. As cargas para mensagens `created` e `deleted` são semelhantes.

```
{
  "eventType": "THING_GROUP_EVENT",
  "eventId": "8b9ea8626aeaa1e42100f3f32b975899",
  "timestamp": 1603995417409,
  "operation": "UPDATED",
  "accountId": "571EXAMPLE833",
  "thingGroupId": "8757eec8-bb37-4cca-a6fa-403b003d139f",
  "thingGroupName": "Tg_level5",
  "versionNumber": 3,
  "parentGroupName": "Tg_level4",
  "parentGroupId": "5fce366a-7875-4c0e-870b-79d8d1dce119",
  "description": "New description for Tg_level5",
  "rootToParentThingGroups": [
    {
      "groupArn": "arn:aws:iot:us-west-2:571EXAMPLE833:thinggroup/TgTopLevel",
      "groupId": "36aa0482-f80d-4e13-9bff-1c0a75c055f6"
    },
    {
      "groupArn": "arn:aws:iot:us-west-2:571EXAMPLE833:thinggroup/Tg_level1",
      "groupId": "bc1643e1-5a85-4eac-b45a-92509cbe2a77"
    },
    {
      "groupArn": "arn:aws:iot:us-west-2:571EXAMPLE833:thinggroup/Tg_level2",
      "groupId": "0476f3d2-9beb-48bb-ae2c-ea8bd6458158"
    },
    {
      "groupArn": "arn:aws:iot:us-west-2:571EXAMPLE833:thinggroup/Tg_level3",
      "groupId": "1d9d4ffe-a6b0-48d6-9de6-2e54d1eae78f"
    },
    {
      "groupArn": "arn:aws:iot:us-west-2:571EXAMPLE833:thinggroup/Tg_level4",
      "groupId": "5fce366a-7875-4c0e-870b-79d8d1dce119"
    }
  ],
  "attributes": {
    "attribute1": "value1",
    "attribute3": "value3",
    "attribute2": "value2"
  },
  "dynamicGroupMappingId": null
}
```

As cargas úteis contêm os seguintes atributos:

eventType  
Defina como "THING\$1GROUP\$1EVENT".

eventId  
Um ID de evento exclusivo (sequência).

timestamp  
A data e hora do UNIX de quando o evento ocorreu.

operação  
A operação que acionou o evento. Os valores válidos são:  
+ CREATED
+ UPDATED
+ EXCLUÍDO

accountId  
Sua Conta da AWS identidade.

thingGroupId  
O ID do grupo de objetos que está sendo criado, atualizado ou excluído.

thingGroupName  
O nome do grupo de objetos que está sendo criado, atualizado ou excluído.

versionNumber  
A versão do grupo de objetos. Esse valor é definido como 1 quando um grupo de objetos é criado. Ele é incrementado em 1 toda vez que o grupo de objetos é atualizado.

parentGroupName  
O nome do grupo de objetos pai, se houver.

parentGroupId  
O ID do grupo de objetos pai, se houver.

descrição  
Uma descrição do grupo de objetos.

rootToParentThingGroups  
Um conjunto de informações sobre o grupo de objetos pai. Há um elemento para cada grupo de objetos principal, começando pelo grupo de objetos raiz e continuando até o grupo de objetos principal. Cada entrada contém o `groupArn` e `groupId`. do grupo de objetos.

attributes  
Uma coleção de pares nome-valor associados ao grupo de objetos.

### Objeto adicionado ou removido de um grupo de objetos
<a name="registry-events-thinggroup-addremove"></a>

O registro publica as seguintes mensagens de eventos quando um objeto é adicionada ou removida de um grupo de objetos.
+ `$aws/events/thingGroupMembership/thingGroup/thingGroupName/thing/thingName/added`
+ `$aws/events/thingGroupMembership/thingGroup/thingGroupName/thing/thingName/removed`

As mensagens contêm os seguintes exemplos de carga útil:

```
{
    "eventType" : "THING_GROUP_MEMBERSHIP_EVENT",
    "eventId" : "d684bd5f-6f6e-48e1-950c-766ac7f02fd1",
    "timestamp" : 1234567890123,
    "operation" : "ADDED|REMOVED",
    "accountId" : "123456789012",
    "groupArn" : "arn:aws:iot:ap-northeast-2:123456789012:thinggroup/MyChildThingGroup",
    "groupId" : "06838589-373f-4312-b1f2-53f2192291c4",
    "thingArn" : "arn:aws:iot:ap-northeast-2:123456789012:thing/MyThing",
    "thingId" : "b604f69c-aa9a-4d4a-829e-c480e958a0b5",
    "membershipId" : "8505ebf8-4d32-4286-80e9-c23a4a16bbd8"
}
```

As cargas úteis contêm os seguintes atributos:

eventType  
Defina como "THING\$1GROUP\$1MEMBERSHIP\$1EVENT".

eventId  
O ID do evento.

timestamp  
A data e hora do UNIX de quando o evento ocorreu.

operação  
`ADDED` quando um objeto é adicionada a um grupo de objetos. `REMOVED` quando um objeto é removida de um grupo de objetos.

accountId  
Sua Conta da AWS identidade.

groupArn  
O ARN do grupo de objetos.

groupId  
O ID do group.

thingArn  
O ARN do objeto que foi adicionada ou removida do grupo de objetos.

thingId  
O ID do objeto que foi adicionada ou removida do grupo de objetos.

membershipId  
Um ID que representa a relação entre o objeto e o grupo de objetos. Esse valor é gerado quando você adiciona um objeto a um grupo de objetos.

### Grupo de objetos adicionado ou removido de um grupo de objetos
<a name="registry-events-thinggroup-adddelete"></a>

O registro publica as seguintes mensagens de eventos quando um grupo de objetos é adicionado ou removido de um outro grupo de objetos.
+ `$aws/events/thingGroupHierarchy/thingGroup/parentThingGroupName/childThingGroup/childThingGroupName/added`
+ `$aws/events/thingGroupHierarchy/thingGroup/parentThingGroupName/childThingGroup/childThingGroupName/removed`

A mensagem contém as seguintes cargas úteis de exemplo:

```
{
    "eventType" : "THING_GROUP_HIERARCHY_EVENT",
    "eventId" : "264192c7-b573-46ef-ab7b-489fcd47da41",
    "timestamp" : 1234567890123,
    "operation" : "ADDED|REMOVED",
    "accountId" : "123456789012",
    "thingGroupId" : "8f82a106-6b1d-4331-8984-a84db5f6f8cb",
    "thingGroupName" : "MyRootThingGroup",
    "childGroupId" : "06838589-373f-4312-b1f2-53f2192291c4",
    "childGroupName" : "MyChildThingGroup"
}
```

As cargas úteis contêm os seguintes atributos:

eventType  
Defina como "THING\$1GROUP\$1HIERARCHY\$1EVENT".

eventId  
O ID do evento.

timestamp  
A data e hora do UNIX de quando o evento ocorreu.

operação  
`ADDED` quando um objeto é adicionada a um grupo de objetos. `REMOVED` quando um objeto é removida de um grupo de objetos.

accountId  
Sua Conta da AWS identidade.

thingGroupId  
O ID do grupo de objetos pai.

thingGroupName  
O nome do grupo de objetos pai.

childGroupId  
O ID do grupo de objetos filho.

childGroupName  
O nome do grupo de objetos filho.

# 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:

**Job 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"
  }
}
```

# Eventos de execução de comandos
<a name="command-events"></a>

AWS IoT publica mensagens de eventos em tópicos do MQTT quando as execuções de comandos mudam de status. Você pode usar esses eventos para monitorar o progresso da execução do comando e criar aplicativos que respondam às mudanças de status.

**Tópicos de eventos de execução de comandos**  
Os eventos de execução do comando são publicados no seguinte tópico do MQTT:

```
$aws/events/commandExecution/commandId/status
```

Em que:
+ `commandId`é o identificador do comando.
+ `status`é o status da execução do comando. Os valores válidos são: `CREATED`, `IN_PROGRESS`, `SUCCEEDED`, `FAILED`, `REJECTED`, `TIMED_OUT`.

Para receber notificações para todos os comandos e todos os status, assine o tópico a seguir usando caracteres curinga:

```
$aws/events/commandExecution/+/#
```

**Mensagem do evento de execução do comando**  
Quando o status de execução de um comando muda, AWS IoT publica uma mensagem de evento no tópico correspondente do MQTT. A mensagem contém as seguintes cargas úteis de exemplo:

```
{
    "executionId": "2bd65c51-4cfd-49e4-9310-d5cbfdbc8554",
    "status": "FAILED",
    "statusReason": {
        "reasonCode": "DEVICE_TOO_BUSY",
        "reasonDescription": ""
    },
    "eventType": "COMMAND_EXECUTION",
    "commandArn": "arn:aws:iot:us-east-1:123456789012:command/0b9d9ddf-e873-43a9-8e2c-9fe004a90086",
    "targetArn": "arn:aws:iot:us-east-1:123456789012:thing/5006c3fc-de96-4def-8427-7eee36c6f2bd",
    "timestamp": 1717708862107
}
```

As cargas contêm os seguintes atributos:

**ID de execução**  
Um identificador exclusivo para a execução do comando (string).

**status**  
O status da execução do comando. Os valores válidos são: `CREATED`, `IN_PROGRESS`, `SUCCEEDED`, `FAILED`, `REJECTED`, `TIMED_OUT`.

**statusReason**  
Um objeto contendo informações adicionais sobre o status, se disponível. Contém `reasonCode` e `reasonDescription` campos.

**eventType**  
Defina como “COMMAND\$1EXECUTION”.

**Comando ARN**  
O Amazon Resource Name (ARN) do comando.

**TargetARN**  
O ARN do dispositivo de destino (coisa ou cliente) para a execução do comando.

**timestamp**  
A data e hora do UNIX de quando o evento ocorreu.

# Eventos de ciclo de vida
<a name="life-cycle-events"></a>

AWS IoT pode publicar eventos do ciclo de vida sobre os tópicos do MQTT. Esses eventos estão disponíveis por padrão e não podem ser desativados.

**nota**  
As mensagens de ciclo de vida podem ser enviadas fora de ordem. Você pode receber mensagens duplicadas.  
`thingName` só será incluído se o cliente estiver se conectando usando o recurso de [coisa exclusiva](exclusive-thing.md).

**Topics**
+ [Eventos de conexão/desconexão](#connect-disconnect)
+ [Evento de falha na tentativa de conexão](#connect-authfailure-event)
+ [Eventos de assinatura/cancelamento de assinatura](#subscribe-unsubscribe-events)

## Eventos de conexão/desconexão
<a name="connect-disconnect"></a>

**nota**  
Com a indexação de frotas do AWS IoT Device Management, você pode pesquisar coisas, executar consultas agregadas e criar grupos dinâmicos com base em eventos de coisas. Connect/Disconnect Para obter mais informações, consulte [Indexação de frota](https://docs.aws.amazon.com//iot/latest/developerguide/iot-indexing.html).

AWS IoT publica uma mensagem nos seguintes tópicos do MQTT quando um cliente se conecta ou desconecta:
+ `$aws/events/presence/connected/clientId` – Um cliente se conectou apenas ao agente de mensagens.
+ `$aws/events/presence/disconnected/clientId` – Um cliente se desconectou do agente de mensagens.

Veja a seguir uma lista dos elementos JSON contidos nas connection/disconnection mensagens publicadas no `$aws/events/presence/connected/clientId` tópico.

**clientId**  
O ID do cliente que se conecta ou que se desconecta.  
Clientes IDs que contêm \$1 ou \$1 não recebem eventos de ciclo de vida.

**thingName**  
O nome da sua coisa da IoT. `thingName` só será incluído se o cliente estiver se conectando usando o recurso de [coisa exclusiva](exclusive-thing.md).

**clientInitiatedDisconnect**  
Verdadeiro se o cliente iniciou a desconexão. Caso contrário, falso. Encontrado apenas em mensagens de desconexão.

**disconnectReason**  
A razão pela qual o cliente está se desconectando. Encontrado apenas em mensagens de desconexão. A tabela a seguir contém valores válidos e se o agente enviará [mensagens Last Will and Testament (LWT)](mqtt.md#mqtt-lwt) quando a desconexão ocorrer.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/life-cycle-events.html)
1Se o dispositivo tiver uma conexão ativa antes de receber esse erro.  
2 Para evitar mensagens Last Will and Testament (LWT), configure `preventWillMessage=true` para substituir o comportamento de envio de LWT padrão da API `DeleteConnection`.

**eventType**  
O tipo de evento. Os valores válidos são `connected` ou `disconnected`. 

**ipAddress**  
O endereço IP do cliente que está se conectando. Isso pode estar em IPv4 nosso IPv6 formato. Encontrado somente em mensagens de conexão. 

**principalIdentifier**  
A credencial usada para autenticar. Para certificados de autenticação mútua TLS, a credencial é o ID do certificado. Para outras conexões, são as credenciais do IAM.

**sessionIdentifier**  
Um identificador globalmente exclusivo AWS IoT que existe durante toda a sessão.

**timestamp**  
Uma estimativa de quando o evento ocorreu.

**versionNumber**  
O número de versão para o evento de ciclo de vida. Esse é um valor inteiro longo que cresce monotonicamente para cada conexão do ID do cliente. O número da versão pode ser usado por um assinante para inferir a ordem dos eventos de ciclo de vida.  
As mensagens de conexão e desconexão para uma conexão do cliente têm o mesmo número de versão.  
O número da versão pode ignorar valores e não há garantia de que ele aumente de forma consistente em 1 para cada evento.  
Se um cliente não permanecer conectado por aproximadamente uma hora, o número da versão será redefinido como 0. Para sessões persistentes, o número da versão é redefinido para 0 após um cliente ter sido desconectado por mais tempo do que o configurado time-to-live (TTL) para a sessão persistente.

Uma mensagem de conexão tem a seguinte estrutura.

```
{
    "clientId": "186b5",
    "thingName": "exampleThing",
    "timestamp": 1573002230757,
    "eventType": "connected",
    "sessionIdentifier": "00000000-0000-0000-0000-000000000000",
    "principalIdentifier": "12345678901234567890123456789012",
    "ipAddress": "192.0.2.0",
    "versionNumber": 0
}
```

Uma mensagem de desconexão tem a seguinte estrutura.

```
{
    "clientId": "186b5",
    "thingName": "exampleThing",
    "timestamp": 1573002340451,
    "eventType": "disconnected",
    "sessionIdentifier": "00000000-0000-0000-0000-000000000000",
    "principalIdentifier": "12345678901234567890123456789012",
    "clientInitiatedDisconnect": true,
    "disconnectReason": "CLIENT_INITIATED_DISCONNECT",
    "versionNumber": 0
}
```

### Gerenciamento de desconexões de clientes
<a name="reconnect"></a>

A prática recomendada é sempre ter um estado de espera implementado para eventos de ciclo de vida, incluindo mensagens [Last Will and Testament (LWT)](mqtt.md). Quando uma mensagem de desconexão é recebida, seu código deve aguardar um período e verificar se um dispositivo ainda está offline antes de realizar uma ação. Uma forma de fazer isso é usando [Filas de atraso do SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-delay-queues.html). Quando um cliente recebe um evento LWT ou de ciclo de vida, você pode colocar uma mensagem na fila (por exemplo, por 5 segundos). Quando essa mensagem se torna disponível e é processada (pelo Lambda ou outro serviço), você pode primeiro verificar se o dispositivo ainda está off-line antes de realizar outras ações.

## Evento de falha na tentativa de conexão
<a name="connect-authfailure-event"></a>

AWS IoT publica uma mensagem no seguinte tópico do MQTT quando um cliente não está autorizado a se conectar ou quando um último testamento e testamento são configurados e o cliente não está autorizado a publicar nesse tópico do último testamento.

```
$aws/events/presence/connect_failed/clientId
```

Veja a seguir uma lista de elementos JSON contidos nas mensagens de autorização de conexão publicadas no tópico `$aws/events/presence/connect_failed/clientId`.

**clientId**  
O ID do cliente que tentou, mas não conseguiu se conectar.  
Clientes IDs que contêm \$1 ou \$1 não recebem eventos de ciclo de vida.

**thingName**  
O nome da sua coisa da IoT. `thingName` só será incluído se o cliente estiver se conectando usando o recurso de [coisa exclusiva](exclusive-thing.md).

**timestamp**  
Uma estimativa de quando o evento ocorreu.

**eventType**  
O tipo de evento. O valor válido é `connect_failed`.

**connectFailureReason**  
A razão pela qual a conexão falha. O valor válido é `AUTHORIZATION_FAILED`.

**principalIdentifier**  
A credencial usada para autenticar. Para certificados de autenticação mútua TLS, a credencial é o ID do certificado. Para outras conexões, são as credenciais do IAM.

**sessionIdentifier**  
Um identificador globalmente exclusivo AWS IoT que existe durante toda a sessão.

**ipAddress**  
O endereço IP do cliente que está se conectando. Isso pode estar em IPv4 nosso IPv6 formato. Encontrado somente em mensagens de conexão.

Uma mensagem de falha de conexão tem a estrutura a seguir.

```
{
    "clientId": "186b5",
    "thingName": "exampleThing",
    "timestamp": 1460065214626,
    "eventType": "connect_failed",
    "connectFailureReason": "AUTHORIZATION_FAILED",
    "principalIdentifier": "12345678901234567890123456789012",
    "sessionIdentifier": "00000000-0000-0000-0000-000000000000",
    "ipAddress" : "192.0.2.0"
}
```

## Eventos de assinatura/cancelamento de assinatura
<a name="subscribe-unsubscribe-events"></a>

AWS IoT publica uma mensagem no seguinte tópico do MQTT quando um cliente se inscreve ou cancela a assinatura de um tópico do MQTT:

```
$aws/events/subscriptions/subscribed/clientId
```

 or 

```
$aws/events/subscriptions/unsubscribed/clientId
```

Onde `clientId` é o ID do cliente MQTT que se conecta ao agente de mensagens da AWS IoT .

A mensagem publicada para este tópico tem a seguinte estrutura:

```
{
    "clientId": "186b5",
    "thingName": "exampleThing",
    "timestamp": 1460065214626,
    "eventType": "subscribed" | "unsubscribed",
    "sessionIdentifier": "00000000-0000-0000-0000-000000000000",
    "principalIdentifier": "12345678901234567890123456789012",
    "topics" : ["foo/bar","device/data","dog/cat"]
}
```

Veja a seguir uma lista de elementos JSON que estão contidos nas mensagens assinadas e não assinadas publicadas nos tópicos `$aws/events/subscriptions/subscribed/clientId` e `$aws/events/subscriptions/unsubscribed/clientId`.

clientId  
O ID do cliente que assina ou que cancela a assinatura.  
Clientes IDs que contêm \$1 ou \$1 não recebem eventos de ciclo de vida.

thingName  
O nome da sua coisa da IoT. `thingName` só será incluído se o cliente estiver se conectando usando o recurso de [coisa exclusiva](exclusive-thing.md).

eventType  
O tipo de evento. Os valores válidos são `subscribed` ou `unsubscribed`. 

principalIdentifier  
A credencial usada para autenticar. Para certificados de autenticação mútua TLS, a credencial é o ID do certificado. Para outras conexões, são as credenciais do IAM.

sessionIdentifier  
Um identificador globalmente exclusivo AWS IoT que existe durante toda a sessão.

timestamp  
Uma estimativa de quando o evento ocorreu.

tópicos  
Uma série de tópicos MQTT nos quais o cliente se inscreveu.

**nota**  
As mensagens de ciclo de vida podem ser enviadas fora de ordem. Você pode receber mensagens duplicadas.