

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.

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

Esta sección contiene información sobre los mensajes que se publican AWS IoT cuando se actualizan o cambian cosas o trabajos. Para obtener información sobre el AWS IoT Events servicio que le permite crear detectores para monitorear sus dispositivos en busca de fallas o cambios en el funcionamiento y activar acciones cuando se produzcan, consulte [AWS IoT Events](https://aws.amazon.com/iot-events).

## Cómo se generan los mensajes de eventos
<a name="iot-events-how"></a>

AWS IoT publica mensajes de eventos cuando se producen determinados eventos. Por ejemplo, el registro genera eventos cuando se agregan, actualizan o eliminan objetos. Cada evento provoca que se envíe un único mensaje de evento. Los mensajes de evento se publican a través de MQTT con una carga JSON. El contenido de la carga depende del tipo de evento.

**nota**  
Se garantiza que los mensajes de eventos se publican una vez. Es posible que se publiquen más de una. No se garantiza el orden de los mensajes de eventos.

### Política de recepción de mensajes de eventos
<a name="iot-events-policy"></a>

Para recibir mensajes de eventos, su dispositivo debe utilizar una política adecuada que le permita conectarse a la puerta de enlace del AWS IoT dispositivo y suscribirse a los temas de los eventos de MQTT. También debe suscribirse a los filtros de temas adecuados.

A continuación, mostramos un ejemplo de política necesaria para recibir eventos del 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/*"
            ]
        }
    ]
}
```

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

Para que los suscriptores de los temas reservados puedan recibir mensajes, debes habilitar los mensajes de eventos desde Consola de administración de AWS o mediante la API o la CLI. Para obtener información sobre los mensajes de eventos que administran las distintas opciones, consulte la [tabla de opciones de configuración de AWS IoT eventos](#iot-events-settings-table).
+ Para habilitar los mensajes de eventos, vaya a la pestaña [Configuración](https://console.aws.amazon.com//iot/home#/settings) de la AWS IoT consola y, a continuación, en la sección **Mensajes basados en eventos**, elija **Administrar eventos**. Puede especificar los eventos que desea administrar.
+ Para controlar qué tipos de eventos se publican mediante la API o la CLI, llame a la [UpdateEventConfigurations](https://docs.aws.amazon.com/iot/latest/apireference/API_UpdateEventConfigurations.html)API o utilice el comando **update-event-configurations** CLI. Por ejemplo:

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

**nota**  
Todas las comillas (") van precedidas de barras diagonales invertidas (\$1).

Puede obtener la configuración de eventos actual llamando a la [DescribeEventConfigurations](https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeEventConfigurations.html)API o mediante el comando **describe-event-configurations** CLI. Por ejemplo:

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

**Tabla de opciones de configuración de eventos de AWS IoT **


|  Categoría de evento  (AWS IoT Consola: configuración: mensajes basados en eventos)  |  Valor de la clave `eventConfigurations` (AWS CLI/API)  |    Tema del mensaje del evento  | 
| --- | --- | --- | 
|  *(Solo se puede configurar mediante la AWS CLI/API)*  |  `CA_CERTIFICATE`  |  `$aws/events/certificates/registered/caCertificateId`  | 
|  *(Solo se puede configurar mediante la AWS CLI/API)*  |  `CERTIFICATE`  |  `$aws/events/presence/connected/clientId`  | 
|  *(Solo se puede configurar mediante la AWS CLI/API)*  |  `CERTIFICATE`  |  `$aws/events/presence/disconnected/clientId`  | 
|  *(Solo se puede configurar mediante la AWS CLI/API)*  |  `CERTIFICATE`  |  `$aws/events/subscriptions/subscribed/clientId`  | 
|  *(Solo se puede configurar mediante la AWS CLI/API)*  |  `CERTIFICATE`  |  `$aws/events/subscriptions/unsubscribed/clientId`  | 
|  Trabajo completado, cancelado  |  `JOB`  |  `$aws/events/job/jobID/canceled`  | 
|  Trabajo completado, cancelado  |  `JOB`  |  `$aws/events/job/jobID/cancellation_in_progress`  | 
|  Trabajo completado, cancelado  |  `JOB`  |  `$aws/events/job/jobID/completed`  | 
|  Trabajo completado, cancelado  |  `JOB`  |  `$aws/events/job/jobID/deleted`  | 
|  Trabajo completado, cancelado  |  `JOB`  |  `$aws/events/job/jobID/deletion_in_progress`  | 
|  Ejecución del trabajo: correcta, fallida, rechazada, cancelad, eliminada  |  `JOB_EXECUTION`  |  `$aws/events/jobExecution/jobID/canceled`  | 
|  Ejecución del trabajo: correcta, fallida, rechazada, cancelad, eliminada  |  `JOB_EXECUTION`  |  `$aws/events/jobExecution/jobID/deleted`  | 
|  Ejecución del trabajo: correcta, fallida, rechazada, cancelad, eliminada  |  `JOB_EXECUTION`  |  `$aws/events/jobExecution/jobID/failed`  | 
|  Ejecución del trabajo: correcta, fallida, rechazada, cancelad, eliminada  |  `JOB_EXECUTION`  |  `$aws/events/jobExecution/jobID/rejected`  | 
|  Ejecución del trabajo: correcta, fallida, rechazada, cancelad, eliminada  |  `JOB_EXECUTION`  |  `$aws/events/jobExecution/jobID/removed`  | 
|  Ejecución del trabajo: correcta, fallida, rechazada, cancelad, eliminada  |  `JOB_EXECUTION`  |  `$aws/events/jobExecution/jobID/succeeded`  | 
|  Ejecución del trabajo: correcta, fallida, rechazada, cancelad, eliminada  |  `JOB_EXECUTION`  |  `$aws/events/jobExecution/jobID/timed_out`  | 
|  Objeto: creado, actualizado, eliminado  |  `THING`  |  `$aws/events/thing/thingName/created`  | 
|  Objeto: creado, actualizado, eliminado  |  `THING`  |  `$aws/events/thing/thingName/updated`  | 
|  Objeto: creado, actualizado, eliminado  |  `THING`  |  `$aws/events/thing/thingName/deleted`  | 
|  Grupo de objetos: agregado, eliminado  |  `THING_GROUP`  |  `$aws/events/thingGroup/thingGroupName/created`  | 
|  Grupo de objetos: agregado, eliminado  |  `THING_GROUP`  |  `$aws/events/thingGroup/thingGroupName/updated`  | 
|  Grupo de objetos: agregado, eliminado  |  `THING_GROUP`  |  `$aws/events/thingGroup/thingGroupName/deleted`  | 
|  Jerarquía de grupos de objetos: agregada, eliminada  |  `THING_GROUP_HIERARCHY`  |  `$aws/events/thingGroupHierarchy/thingGroup/parentThingGroupName/childThingGroup/childThingGroupName/added`  | 
|  Jerarquía de grupos de objetos: agregada, eliminada  |  `THING_GROUP_HIERARCHY`  |  `$aws/events/thingGroupHierarchy/thingGroup/parentThingGroupName/childThingGroup/childThingGroupName/removed`  | 
|  Pertenencia a un grupo de objetos: agregada, eliminada  |  `THING_GROUP_MEMBERSHIP`  |  `$aws/events/thingGroupMembership/thingGroup/thingGroupName/thing/thingName/added`  | 
|  Pertenencia a un grupo de objetos: agregada, eliminada  |  `THING_GROUP_MEMBERSHIP`  |  `$aws/events/thingGroupMembership/thingGroup/thingGroupName/thing/thingName/removed`  | 
|  Tipo de objeto: creado, actualizado, eliminado  |  `THING_TYPE`  |  `$aws/events/thingType/thingTypeName/created`  | 
|  Tipo de objeto: creado, actualizado, eliminado  |  `THING_TYPE`  |  `$aws/events/thingType/thingTypeName/updated`  | 
|  Tipo de objeto: creado, actualizado, eliminado  |  `THING_TYPE`  |  `$aws/events/thingType/thingTypeName/deleted`  | 
|  Asociación de tipo de objeto: agregada, eliminada  |  `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>

El registro puede publicar mensajes de eventos cuando se crean, actualizan o eliminan objetos, tipos de objetos y grupos de objetos. Estos eventos, sin embargo, no están disponibles de forma predeterminada. Para obtener información sobre cómo activar estos eventos, consulte [Habilite los eventos para AWS IoT](iot-events.md#iot-events-enable).

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

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

**¿Cosa Created/Updated/Deleted**

El registro publica los siguientes mensajes de eventos cuando se crean, actualizan o eliminan objetos:
+ `$aws/events/thing/thingName/created`
+ `$aws/events/thing/thingName/updated`
+ `$aws/events/thing/thingName/deleted`

Los mensajes contienen la siguiente carga de ejemplo:

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

Las cargas contienen los siguientes atributos:

eventType  
Se establece en "THING\$1EVENT".

eventId  
Un ID de evento exclusivo (cadena).

timestamp  
La marca de tiempo UNIX de cuándo se produjo el evento.

operación  
La operación en la que se activó el evento. Los valores válidos son:  
+ CREATED
+ UPDATED
+ DELETED

accountId  
Tu Cuenta de AWS carné de identidad.

thingId  
El ID de la cosa que se crea, actualiza o elimina.

thingName  
El nombre de la cosa que se crea, actualiza o elimina.

versionNumber  
La versión de la cosa que se crea, actualiza o elimina. Este valor se establece en 1 cuando se crea un objeto. Aumenta en 1 cada vez que se actualiza el objeto.

thingTypeName  
El tipo de objeto asociado al objeto, si existiera. De lo contrario, `null`.

attributes  
Un conjunto de pares nombre-valor asociados al objeto.

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

**Topics**
+ [Tipo de cosa Created/Updated/Deprecated/Undeprecated/Deleted](#registry-events-thingtype-crud)
+ [Tipo de objeto asociado o desasociado de un objeto](#registry-events-thingtype-assoc)

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

El registro publica los siguientes mensajes de eventos cuando los tipos de objetos se crean, se actualizan, se dan de baja o a los que se les quita la marca de obsoleto:
+ `$aws/events/thingType/thingTypeName/created`
+ `$aws/events/thingType/thingTypeName/updated`
+ `$aws/events/thingType/thingTypeName/deleted`

El mensaje contiene la siguiente carga de ejemplo:

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

Las cargas contienen los siguientes atributos:

eventType  
Se establece en "THING\$1TYPE\$1EVENT".

eventId  
Un ID de evento exclusivo (cadena).

timestamp  
La marca de tiempo UNIX de cuándo se produjo el evento.

operación  
La operación en la que se activó el evento. Los valores válidos son:  
+ CREATED
+ UPDATED
+ DELETED

accountId  
Tu Cuenta de AWS carné de identidad.

thingTypeId  
El ID del tipo de objeto que se crea, se actualiza, se da de baja o se elimina.

thingTypeName  
El nombre del tipo de objeto que se crea, se actualiza, se da de baja o se elimina.

isDeprecated  
`true` si el tipo de objeto está descartado. De lo contrario, `false`.

deprecationDate  
La marca de tiempo UNIX para cuando el tipo de objeto está descartado.

searchableAttributes  
Un conjunto de pares nombre-valor asociados con el tipo de objeto que puede utilizarse para realizar búsquedas.

propagatingAttributes  
Una lista de atributos de propagación. Un atributo de propagación puede incluir un atributo de objeto, un atributo de conexión y una clave de propiedad de usuario. Para obtener más información, consulte [Agregación de atributos de propagación para enriquecer los mensajes](https://docs.aws.amazon.com//iot/latest/developerguide/thing-types-propagating-attributes.html).

description  
Una descripción del tipo de objeto.

### Tipo de objeto asociado o desasociado de un objeto
<a name="registry-events-thingtype-assoc"></a>

El registro publica los siguientes mensajes de eventos cuando se asocia o desasocia un tipo de objeto a un objeto.
+ `$aws/events/thingTypeAssociation/thing/thingName/thingType/typeName/added`
+ `$aws/events/thingTypeAssociation/thing/thingName/thingType/typeName/removed`

A continuación, se muestra un ejemplo de carga de `added`. Las cargas de los mensajes `removed` son similares.

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

Las cargas contienen los siguientes atributos:

eventId  
Un ID de evento exclusivo (cadena).

eventType  
Se establece en "THING\$1TYPE\$1ASSOCIATION\$1EVENT".

operación  
La operación en la que se activó el evento. Los valores válidos son:  
+ ADDED
+ REMOVED

thingId  
El ID de la cosa cuya asociación de tipo ha cambiado.

thingName  
El nombre de la cosa cuya asociación de tipo ha cambiado.

thingTypeName  
El tipo de objeto asociado o desasociado de la cosa.

timestamp  
La marca de tiempo UNIX de cuándo se produjo el evento.

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

**Topics**
+ [Grupo de cosas Created/Updated/Deleted](#registry-events-thinggroup-crud)
+ [Objeto agregado o eliminado de un grupo de objetos](#registry-events-thinggroup-addremove)
+ [Grupo de objetos agregado o eliminado de un grupo de objetos](#registry-events-thinggroup-adddelete)

### Grupo de cosas Created/Updated/Deleted
<a name="registry-events-thinggroup-crud"></a>

El registro publica los siguientes mensajes de eventos cuando se crea, actualiza o elimina un grupo de objetos.
+ `$aws/events/thingGroup/groupName/created`
+ `$aws/events/thingGroup/groupName/updated`
+ `$aws/events/thingGroup/groupName/deleted`

A continuación, se muestra un ejemplo de carga de `updated`. Las cargas de los mensajes `created` y `deleted` son similares.

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

Las cargas contienen los siguientes atributos:

eventType  
Se establece en "THING\$1GROUP\$1EVENT".

eventId  
Un ID de evento exclusivo (cadena).

timestamp  
La marca de tiempo UNIX de cuándo se produjo el evento.

operación  
La operación en la que se activó el evento. Los valores válidos son:  
+ CREATED
+ UPDATED
+ DELETED

accountId  
Tu Cuenta de AWS carné de identidad.

thingGroupId  
El ID del grupo de objetos que se crea, actualiza o elimina.

thingGroupName  
El nombre del grupo de objetos que se crea, actualiza o elimina.

versionNumber  
La versión del grupo de objetos. Este valor se establece en 1 cuando se crea un grupo de objetos. Aumenta en 1 cada vez que se actualiza el grupo de objetos.

parentGroupName  
El nombre del grupo principal de objetos, si existe.

parentGroupId  
El ID del grupo principal de objetos, si existe.

description  
Una descripción del grupo de objetos.

rootToParentThingGroups  
Una matriz de información acerca del grupo principal de objetos. Hay un elemento por cada grupo principal de objetos, empezando por el grupo de objetos raíz y continuando hasta el grupo principal. Cada entrada contiene los `groupArn` y `groupId` del grupo de objetos.

attributes  
Un conjunto de pares nombre-valor asociados al grupo de objetos.

### Objeto agregado o eliminado de un grupo de objetos
<a name="registry-events-thinggroup-addremove"></a>

El registro publica los siguientes mensajes de eventos cuando se agrega un objeto a un grupo de objetos o se elimina de este.
+ `$aws/events/thingGroupMembership/thingGroup/thingGroupName/thing/thingName/added`
+ `$aws/events/thingGroupMembership/thingGroup/thingGroupName/thing/thingName/removed`

Los mensajes contienen la siguiente carga de ejemplo:

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

Las cargas contienen los siguientes atributos:

eventType  
Se establece en "THING\$1GROUP\$1MEMBERSHIP\$1EVENT".

eventId  
El ID del evento.

timestamp  
La marca de tiempo UNIX de cuándo se produjo el evento.

operación  
`ADDED` cuando se agrega un objeto a un grupo de objetos. `REMOVED` cuando se elimina un objeto de un grupo de objetos.

accountId  
Tu Cuenta de AWS carné de identidad.

groupArn  
El ARN del grupo de objetos.

groupId  
El ID del grupo.

thingArn  
El ARN de la cosa que se agregó o quitó del grupo de objetos.

thingId  
El ID de la cosa que se agregó o quitó del grupo de objetos.

membershipId  
Un ID que representa la relación entre objeto y el grupo de objetos. Este valor se genera cuando agrega un objeto a un grupo de objetos.

### Grupo de objetos agregado o eliminado de un grupo de objetos
<a name="registry-events-thinggroup-adddelete"></a>

El registro publica los siguientes mensajes de eventos cuando se agrega un grupo de objetos a otro grupo de objetos o se elimina de este.
+ `$aws/events/thingGroupHierarchy/thingGroup/parentThingGroupName/childThingGroup/childThingGroupName/added`
+ `$aws/events/thingGroupHierarchy/thingGroup/parentThingGroupName/childThingGroup/childThingGroupName/removed`

El mensaje contiene la siguiente carga de ejemplo:

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

Las cargas contienen los siguientes atributos:

eventType  
Se establece en "THING\$1GROUP\$1HIERARCHY\$1EVENT".

eventId  
El ID del evento.

timestamp  
La marca de tiempo UNIX de cuándo se produjo el evento.

operación  
`ADDED` cuando se agrega un objeto a un grupo de objetos. `REMOVED` cuando se elimina un objeto de un grupo de objetos.

accountId  
Tu Cuenta de AWS carné de identidad.

thingGroupId  
El ID del grupo principal de objetos.

thingGroupName  
El nombre del grupo principal de objetos.

childGroupId  
El ID del grupo secundario de objetos.

childGroupName  
El nombre del grupo secundario de objetos.

# 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 de que los trabajos se han ejecutado correctamente o no. 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 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:

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

# Eventos de ejecución de comandos
<a name="command-events"></a>

AWS IoT publica mensajes de eventos en temas de MQTT cuando las ejecuciones de comandos cambian de estado. Puede utilizar estos eventos para supervisar el progreso de la ejecución de los comandos y crear aplicaciones que respondan a los cambios de estado.

**Temas de eventos de ejecución de comandos**  
Los eventos de ejecución de comandos se publican en el siguiente tema de MQTT:

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

Donde:
+ `commandId`es el identificador del comando.
+ `status`es el estado de la ejecución del comando. Los valores válidos son: `CREATED`, `IN_PROGRESS`, `SUCCEEDED`, `FAILED`, `REJECTED`, `TIMED_OUT`.

Para recibir notificaciones de todos los comandos y todos los estados, suscríbase al siguiente tema con caracteres comodín:

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

**Mensaje de evento de ejecución de comandos**  
Cuando el estado de ejecución de un comando cambia, AWS IoT publica un mensaje de evento en el tema de MQTT correspondiente. El mensaje contiene la siguiente carga de ejemplo:

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

La carga contiene los siguientes atributos:

**ID de ejecución**  
Un identificador único para la ejecución del comando (cadena).

**estado**  
El estado de la ejecución del comando. Los valores válidos son: `CREATED`, `IN_PROGRESS`, `SUCCEEDED`, `FAILED`, `REJECTED`, `TIMED_OUT`.

**statusReason**  
Objeto que contiene información adicional sobre el estado, si está disponible. Contiene `reasonCode` y `reasonDescription` campos.

**eventType**  
Establézcalo en «COMMAND\$1EXECUTION».

**Comando ARN**  
El nombre de recurso de Amazon (ARN) del comando.

**TargetArn**  
El ARN del dispositivo (cosa o cliente) de destino para la ejecución del comando.

**timestamp**  
La marca de tiempo UNIX de cuándo se produjo el evento.

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

AWS IoT puede publicar eventos del ciclo de vida sobre los temas de MQTT. Estos eventos están disponibles de forma predeterminada y no se pueden desactivar.

**nota**  
Es posible que los mensajes de ciclo de vida se envíen de forma desordenada. Puede que reciba mensajes duplicados.  
`thingName` solo se incluirá si el cliente se conecta mediante la característica [objeto exclusivo](exclusive-thing.md).

**Topics**
+ [Eventos de conexión/desconexión](#connect-disconnect)
+ [Evento de error de intento de conexión](#connect-authfailure-event)
+ [Eventos de suscripción/cancelación de suscripción](#subscribe-unsubscribe-events)

## Eventos de conexión/desconexión
<a name="connect-disconnect"></a>

**nota**  
Con la indexación de flotas de AWS IoT Device Management, puede buscar cosas, ejecutar consultas agregadas y crear grupos dinámicos basados en eventos de cosas Connect/Disconnect . Para obtener más información, consulte [Indexación de flotas](https://docs.aws.amazon.com//iot/latest/developerguide/iot-indexing.html).

AWS IoT publica un mensaje sobre los siguientes temas de MQTT cuando un cliente se conecta o se desconecta:
+ `$aws/events/presence/connected/clientId`: un cliente se ha conectado al agente de mensajes.
+ `$aws/events/presence/disconnected/clientId`: un cliente se ha desconectado del agente de mensajes.

La siguiente es una lista de los elementos de JSON que se incluyen en los connection/disconnection mensajes publicados en el `$aws/events/presence/connected/clientId` tema.

**clientId**  
El ID del cliente que se conecta o se desconecta.  
Los clientes IDs que contienen \$1 o \$1 no reciben eventos del ciclo de vida.

**thingName**  
El nombre del objeto de IoT. `thingName` solo se incluirá si el cliente se conecta mediante la característica [objeto exclusivo](exclusive-thing.md).

**clientInitiatedDisconnect**  
True si el cliente inició la desconexión. De lo contrario, devuelve false. Sólo se encuentra en mensajes de desconexión.

**disconnectReason**  
La razón por la que el cliente se está desconectando. Sólo se encuentra en mensajes de desconexión. La siguiente tabla contiene valores válidos e indica si el agente de mensajes enviará [mensajes Last Will and Testament (LWT)](mqtt.md#mqtt-lwt) cuando se produzca la desconexión.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/life-cycle-events.html)
1Si el dispositivo tiene una conexión activa antes de recibir este error.  
2Para evitar los mensajes de Last Will and Testament (LWT), establezca `preventWillMessage=true` para anular el comportamiento de envío de LWT predeterminado de la API `DeleteConnection`.

**eventType**  
El tipo de evento. Los valores válidos son `connected` o `disconnected`. 

**ipAddress**  
La dirección IP del cliente que se conecta. Puede estar en IPv6 formato IPv4 o. Sólo se encuentra en los mensajes de conexión. 

**principalIdentifier**  
Las credenciales que se utilizan para la autenticación. En el caso de los certificados de autenticación mutua de TLS, se trata del ID de certificado. En cuanto a las demás conexiones, se trata de las credenciales de IAM.

**sessionIdentifier**  
Un identificador único a nivel mundial AWS IoT que existe durante toda la sesión.

**timestamp**  
Una aproximación de cuándo se produjo el evento.

**versionNumber**  
El número de versión del evento del ciclo de vida. Se trata de un valor entero largo que aumenta de forma monótona para cada conexión de un ID de cliente. El número de versión puede utilizarlo un suscriptor para deducir el orden de los eventos del ciclo de vida.  
Los mensajes de conexión y desconexión de una conexión de cliente tienen el mismo número de versión.  
El número de versión podría saltarse algunos valores y no se garantiza que se vaya a incrementar de forma coherente en 1 para cada evento.  
Si un cliente no se conecta durante aproximadamente una hora, el número de versión se restablece a 0. En el caso de las sesiones persistentes, el número de versión se restablece a 0 después de que un cliente haya estado desconectado durante más tiempo del tiempo configurado time-to-live (TTL) para la sesión persistente.

Un mensaje de conexión tiene la siguiente estructura.

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

Un mensaje de desconexión tiene la siguiente estructura.

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

### Gestión de desconexiones del cliente
<a name="reconnect"></a>

La práctica recomendada consiste siempre en tener implementado un estado de espera para los eventos del ciclo de vida, incluidos los mensajes [Last Will and Testament (LWT)](mqtt.md). Cuando se recibe un mensaje de desconexión, el código debe esperar un periodo de tiempo y verificar que un dispositivo sigue sin conexión antes de tomar cualquier medida. Una forma de hacerlo consiste en utilizar [colas con retraso de SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-delay-queues.html). Cuando un cliente recibe un evento de ciclo de vida o un mensaje LWT, se puede poner en cola un mensaje (por ejemplo, durante 5 segundos). Cuando dicho mensaje está disponible y se procesa (por parte de Lambda u otro servicio), primero se puede comprobar si el dispositivo sigue sin conexión antes de tomar otras medidas.

## Evento de error de intento de conexión
<a name="connect-authfailure-event"></a>

AWS IoT publica un mensaje sobre el siguiente tema de MQTT cuando un cliente no está autorizado a conectarse o cuando se ha configurado un testamento y testamento y el cliente no está autorizado a publicar en ese tema de último testamento.

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

A continuación, se muestra una lista de elementos JSON que se incluyen en los mensajes de autorización de conexión publicados en el tema de `$aws/events/presence/connect_failed/clientId`.

**clientId**  
El ID de cliente que intentó conectarse y que no pudo hacerlo.  
Los clientes IDs que contienen \$1 o \$1 no reciben eventos del ciclo de vida.

**thingName**  
El nombre del objeto de IoT. `thingName` solo se incluirá si el cliente se conecta mediante la característica [objeto exclusivo](exclusive-thing.md).

**timestamp**  
Una aproximación de cuándo se produjo el evento.

**eventType**  
El tipo de evento. El valor válido es `connect_failed`.

**connectFailureReason**  
El motivo por el que se produce un error en la conexión. El valor válido es `AUTHORIZATION_FAILED`.

**principalIdentifier**  
Las credenciales que se utilizan para la autenticación. En el caso de los certificados de autenticación mutua de TLS, se trata del ID de certificado. En cuanto a las demás conexiones, se trata de las credenciales de IAM.

**sessionIdentifier**  
Un identificador único a nivel mundial AWS IoT que existe durante toda la sesión.

**ipAddress**  
La dirección IP del cliente que se conecta. Puede estar en IPv6 formato IPv4 o. Sólo se encuentra en los mensajes de conexión.

Un mensaje de error de conexión tiene la siguiente estructura.

```
{
    "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 suscripción/cancelación de suscripción
<a name="subscribe-unsubscribe-events"></a>

AWS IoT publica un mensaje sobre el siguiente tema de MQTT cuando un cliente se suscribe o cancela la suscripción a un tema de MQTT:

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

 o 

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

Donde `clientId` es el ID de cliente MQTT que se conecta con el agente de mensajes de AWS IoT .

El mensaje publicado en este tema tiene la estructura siguiente:

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

A continuación, se ofrece una lista de elementos JSON que se encuentran en los mensajes suscritos y no suscritos publicados en los temas `$aws/events/subscriptions/subscribed/clientId` y `$aws/events/subscriptions/unsubscribed/clientId`.

clientId  
El ID del cliente que se suscribe o cancela su suscripción.  
Los clientes IDs que contienen \$1 o \$1 no reciben eventos del ciclo de vida.

thingName  
El nombre del objeto de IoT. `thingName` solo se incluirá si el cliente se conecta mediante la característica [objeto exclusivo](exclusive-thing.md).

eventType  
El tipo de evento. Los valores válidos son `subscribed` o `unsubscribed`. 

principalIdentifier  
Las credenciales que se utilizan para la autenticación. En el caso de los certificados de autenticación mutua de TLS, se trata del ID de certificado. En cuanto a las demás conexiones, se trata de las credenciales de IAM.

sessionIdentifier  
Un identificador único a nivel mundial AWS IoT que existe durante toda la sesión.

timestamp  
Una aproximación de cuándo se produjo el evento.

temas  
Una matriz de los temas MQTT a los que se ha suscrito el cliente.

**nota**  
Es posible que los mensajes de ciclo de vida se envíen de forma desordenada. Puede que reciba mensajes duplicados.