

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Messages d'événements
<a name="iot-events"></a>

Cette section contient des informations sur les messages publiés AWS IoT lorsque des objets ou des tâches sont mis à jour ou modifiés. Pour plus d'informations sur le AWS IoT Events service qui vous permet de créer des détecteurs pour surveiller les défaillances ou les changements de fonctionnement de vos appareils, et pour déclencher des actions lorsqu'ils se produisent, voir [AWS IoT Events](https://aws.amazon.com/iot-events).

## Comment les messages d'événement sont générés
<a name="iot-events-how"></a>

AWS IoT publie des messages d'événements lorsque certains événements se produisent. Par exemple, le registre génère des événements quand des objets sont ajoutés, mis à jour ou supprimés. Chaque événement génère l'envoi d'un seul message. Les messages d'événements sont publiés sur MQTT avec une charge utile JSON. Le contenu de la charge utile dépend du type d'événement.

**Note**  
Il est garanti que les messages d'événements sont publiés une fois. Ils peuvent être publiés plusieurs fois. L'ordre des messages d'événement n'est pas garanti.

### Politique de réception des messages d'événement
<a name="iot-events-policy"></a>

Pour recevoir des messages d'événements, votre appareil doit utiliser une politique appropriée lui permettant de se connecter à la passerelle de l' AWS IoT appareil et de s'abonner aux sujets d'événements MQTT. Vous devez aussi vous abonner aux filtres de rubriques appropriés.

Voici un exemple de stratégie requise pour recevoir des événements de cycle de vie :

****  

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

## Activez les événements pour AWS IoT
<a name="iot-events-enable"></a>

Avant que les abonnés aux rubriques réservées puissent recevoir des messages, vous devez activer les messages d'événement depuis AWS Management Console ou à l'aide de l'API ou de la CLI. Pour plus d'informations sur les messages d'événements gérés par les différentes options, consultez le [Tableau des paramètres de configuration des AWS IoT événements](#iot-events-settings-table).
+ Pour activer les messages d'événements, accédez à l'onglet [Paramètres](https://console.aws.amazon.com//iot/home#/settings) de la AWS IoT console, puis, dans la section **Messages basés sur les événements**, choisissez **Gérer les** événements. Vous pouvez spécifier les événements que vous souhaitez gérer.
+ Pour contrôler les types d'événements publiés à l'aide de l'API ou de la CLI, appelez l'[UpdateEventConfigurations](https://docs.aws.amazon.com/iot/latest/apireference/API_UpdateEventConfigurations.html)API ou utilisez la commande **update-event-configurations** CLI. Par exemple :

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

**Note**  
L'échappement de tous les guillemets (") est effectué avec des barres obliques inverses (\$1).

Vous pouvez obtenir la configuration actuelle de l'événement en appelant l'[DescribeEventConfigurations](https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeEventConfigurations.html)API ou en utilisant la commande **describe-event-configurations** CLI. Par exemple :

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

**Tableau des paramètres AWS IoT de configuration des événements**


|  Catégorie d'événement  (AWS IoT Console : Paramètres : messages basés sur des événements)  |  Valeur de la clé `eventConfigurations` (AWS CLI/API)  |    Rubrique du message d'événement  | 
| --- | --- | --- | 
|  *(Ne peut être configuré qu'à l'aide de * AWS CLI/API)  |  `CA_CERTIFICATE`  |  `$aws/events/certificates/registered/caCertificateId`  | 
|  *(Ne peut être configuré qu'à l'aide de * AWS CLI/API)  |  `CERTIFICATE`  |  `$aws/events/presence/connected/clientId`  | 
|  *(Ne peut être configuré qu'à l'aide de * AWS CLI/API)  |  `CERTIFICATE`  |  `$aws/events/presence/disconnected/clientId`  | 
|  *(Ne peut être configuré qu'à l'aide de * AWS CLI/API)  |  `CERTIFICATE`  |  `$aws/events/subscriptions/subscribed/clientId`  | 
|  *(Ne peut être configuré qu'à l'aide de * AWS CLI/API)  |  `CERTIFICATE`  |  `$aws/events/subscriptions/unsubscribed/clientId`  | 
|  Tâche terminée, annulée  |  `JOB`  |  `$aws/events/job/jobID/canceled`  | 
|  Tâche terminée, annulée  |  `JOB`  |  `$aws/events/job/jobID/cancellation_in_progress`  | 
|  Tâche terminée, annulée  |  `JOB`  |  `$aws/events/job/jobID/completed`  | 
|  Tâche terminée, annulée  |  `JOB`  |  `$aws/events/job/jobID/deleted`  | 
|  Tâche terminée, annulée  |  `JOB`  |  `$aws/events/job/jobID/deletion_in_progress`  | 
|  Exécution de tâche : réussite, échec, rejet, annulation, suppression  |  `JOB_EXECUTION`  |  `$aws/events/jobExecution/jobID/canceled`  | 
|  Exécution de tâche : réussite, échec, rejet, annulation, suppression  |  `JOB_EXECUTION`  |  `$aws/events/jobExecution/jobID/deleted`  | 
|  Exécution de tâche : réussite, échec, rejet, annulation, suppression  |  `JOB_EXECUTION`  |  `$aws/events/jobExecution/jobID/failed`  | 
|  Exécution de tâche : réussite, échec, rejet, annulation, suppression  |  `JOB_EXECUTION`  |  `$aws/events/jobExecution/jobID/rejected`  | 
|  Exécution de tâche : réussite, échec, rejet, annulation, suppression  |  `JOB_EXECUTION`  |  `$aws/events/jobExecution/jobID/removed`  | 
|  Exécution de tâche : réussite, échec, rejet, annulation, suppression  |  `JOB_EXECUTION`  |  `$aws/events/jobExecution/jobID/succeeded`  | 
|  Exécution de tâche : réussite, échec, rejet, annulation, suppression  |  `JOB_EXECUTION`  |  `$aws/events/jobExecution/jobID/timed_out`  | 
|  Objet : créé, mis à jour, supprimé  |  `THING`  |  `$aws/events/thing/thingName/created`  | 
|  Objet : créé, mis à jour, supprimé  |  `THING`  |  `$aws/events/thing/thingName/updated`  | 
|  Objet : créé, mis à jour, supprimé  |  `THING`  |  `$aws/events/thing/thingName/deleted`  | 
|  Groupe d'objets : ajouté, supprimé  |  `THING_GROUP`  |  `$aws/events/thingGroup/thingGroupName/created`  | 
|  Groupe d'objets : ajouté, supprimé  |  `THING_GROUP`  |  `$aws/events/thingGroup/thingGroupName/updated`  | 
|  Groupe d'objets : ajouté, supprimé  |  `THING_GROUP`  |  `$aws/events/thingGroup/thingGroupName/deleted`  | 
|  Hiérarchie des groupes d'objets : ajouté, supprimé  |  `THING_GROUP_HIERARCHY`  |  `$aws/events/thingGroupHierarchy/thingGroup/parentThingGroupName/childThingGroup/childThingGroupName/added`  | 
|  Hiérarchie des groupes d'objets : ajouté, supprimé  |  `THING_GROUP_HIERARCHY`  |  `$aws/events/thingGroupHierarchy/thingGroup/parentThingGroupName/childThingGroup/childThingGroupName/removed`  | 
|  Appartenance à un groupe d'objets : ajouté, supprimé  |  `THING_GROUP_MEMBERSHIP`  |  `$aws/events/thingGroupMembership/thingGroup/thingGroupName/thing/thingName/added`  | 
|  Appartenance à un groupe d'objets : ajouté, supprimé  |  `THING_GROUP_MEMBERSHIP`  |  `$aws/events/thingGroupMembership/thingGroup/thingGroupName/thing/thingName/removed`  | 
|  Type d'objet : créé, mis à jour, supprimé  |  `THING_TYPE`  |  `$aws/events/thingType/thingTypeName/created`  | 
|  Type d'objet : créé, mis à jour, supprimé  |  `THING_TYPE`  |  `$aws/events/thingType/thingTypeName/updated`  | 
|  Type d'objet : créé, mis à jour, supprimé  |  `THING_TYPE`  |  `$aws/events/thingType/thingTypeName/deleted`  | 
|  Association de types d'objet : ajouté, supprimé  |  `THING_TYPE_ASSOCIATION`  |  `$aws/events/thingTypeAssociation/thing/thingName/thingType/thingTypeName/added` `$aws/events/thingTypeAssociation/thing/thingName/thingType/thingTypeName/removed`  | 

# Événements de registre
<a name="registry-events"></a>

Le registre peut publier des messages d'événement lorsque des objets, des types d'objets et des groupes d'objets sont créés, mis à jour ou supprimés. Ces événements ne sont cependant pas disponibles par défaut. Pour plus d'informations sur la façon d'activer ces événements, consultez [Activez les événements pour AWS IoT](iot-events.md#iot-events-enable).

**Topics**
+ [Événements de l’objet](#registry-events-thing)
+ [Événements de types d'objet](#registry-events-thingtype)
+ [Événements de groupe d'objets](#registry-events-thinggroup)

## Événements de l’objet
<a name="registry-events-thing"></a>

**Chose Created/Updated/Deleted**

Le registre publie les messages d'événement suivants lorsque des objets sont créés, mis à jour ou supprimés :
+ `$aws/events/thing/thingName/created`
+ `$aws/events/thing/thingName/updated`
+ `$aws/events/thing/thingName/deleted`

Les messages contiennent l'exemple de charge utile suivant :

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

Les charges utiles contiennent les attributs suivants :

eventType  
Défini sur « THING\$1EVENT ».

eventId  
Un ID d'événement unique (chaîne).

timestamp  
L'horodatage UNIX du moment où l'événement s'est produit.

fonctionnement  
L'opération qui a déclenché l'événement. Les valeurs valides sont :  
+ CRÉÉ
+ MIS À JOUR
+ SUPPRIMÉ

accountId  
Votre Compte AWS carte d'identité.

thingId  
L'ID de l'objet en cours de création, de mise à jour ou de suppression.

thingName  
Le nom de l'objet en cours de création, de mise à jour ou de suppression.

versionNumber  
La version de l'objet en cours de création, de mise à jour ou de suppression. Cette valeur est définie sur 1 lors de la création d'un objet. Elle augmente de 1 à chaque mise à jour de l'objet.

thingTypeName  
Le type d'objet associé à l'objet, le cas échéant. Sinon la valeur est renvoy, `null`.

attributs  
Un ensemble de paires nom-valeur associées à l'objet.

## Événements de types d'objet
<a name="registry-events-thingtype"></a>

**Topics**
+ [Type d'objet Created/Updated/Deprecated/Undeprecated/Deleted](#registry-events-thingtype-crud)
+ [Type d'objet associé à un objet/dissocié d'un objet](#registry-events-thingtype-assoc)

### Type d'objet Created/Updated/Deprecated/Undeprecated/Deleted
<a name="registry-events-thingtype-crud"></a>

Le registre publie les messages d'événement suivants lorsque des types d'objets sont créés, mis à jour, déconseillés, déconseillés ou supprimés :
+ `$aws/events/thingType/thingTypeName/created`
+ `$aws/events/thingType/thingTypeName/updated`
+ `$aws/events/thingType/thingTypeName/deleted`

Le message contient l'exemple de charge utile suivant :

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

Les charges utiles contiennent les attributs suivants :

eventType  
Défini sur « THING\$1TYPE\$1EVENT ».

eventId  
Un ID d'événement unique (chaîne).

timestamp  
L'horodatage UNIX du moment où l'événement s'est produit.

fonctionnement  
L'opération qui a déclenché l'événement. Les valeurs valides sont :  
+ CRÉÉ
+ MIS À JOUR
+ SUPPRIMÉ

accountId  
Votre Compte AWS carte d'identité.

thingTypeId  
L'ID du type d'objet en cours de création, de mise à jour, de dépréciation ou de suppression.

thingTypeName  
Le nom du type d'objet en cours de création, de mise à jour, de dépréciation ou de suppression.

isDeprecated  
`true` si le type d'objet est obsolète. Sinon la valeur est renvoy, `false`.

deprecationDate  
L'horodatage UNIX associé au moment où ce type d'objet est devenu obsolète.

searchableAttributes  
Un ensemble de paires nom-valeur associées au type d'objet qui peut être utilisé pour la recherche.

Attributs de propagation  
Liste des attributs de propagation. Un attribut de propagation peut contenir un attribut d'objet, un attribut de connexion et une clé de propriété utilisateur. Pour plus d'informations, consultez la section [Ajout d'attributs de propagation pour l'enrichissement des messages](https://docs.aws.amazon.com//iot/latest/developerguide/thing-types-propagating-attributes.html).

description  
Une description du type d'objet.

### Type d'objet associé à un objet/dissocié d'un objet
<a name="registry-events-thingtype-assoc"></a>

Le registre publie les messages d'événement suivants lorsqu'un type d'objet est associé à un objet ou dissocié d'un objet.
+ `$aws/events/thingTypeAssociation/thing/thingName/thingType/typeName/added`
+ `$aws/events/thingTypeAssociation/thing/thingName/thingType/typeName/removed`

Voici un exemple de charge utile `added`. Les charges utiles pour les messages `removed` sont similaires.

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

Les charges utiles contiennent les attributs suivants :

eventId  
Un ID d'événement unique (chaîne).

eventType  
Défini sur « THING\$1TYPE\$1ASSOCIATION\$1EVENT ».

fonctionnement  
L'opération qui a déclenché l'événement. Les valeurs valides sont :  
+ AJOUTÉ
+ SUPPRIMÉ

thingId  
ID de l'objet dont l'association du type a été modifiée.

thingName  
Nom de l'objet dont l'association du type a été modifiée.

thingTypeName  
Type d'objet associé à l'objet ou qui n'est plus associé à l'objet.

timestamp  
L'horodatage UNIX du moment où l'événement s'est produit.

## Événements de groupe d'objets
<a name="registry-events-thinggroup"></a>

**Topics**
+ [Groupe d'objets Created/Updated/Deleted](#registry-events-thinggroup-crud)
+ [Objet ajouté à un groupe d'objets/retiré d'un groupe d'objets](#registry-events-thinggroup-addremove)
+ [Groupe d'objets ajouté à un groupe d'objets/retiré d'un groupe d'objets](#registry-events-thinggroup-adddelete)

### Groupe d'objets Created/Updated/Deleted
<a name="registry-events-thinggroup-crud"></a>

Le registre publie les messages d'événement suivants lorsqu'un groupe d'objets est créé, mis à jour ou supprimé.
+ `$aws/events/thingGroup/groupName/created`
+ `$aws/events/thingGroup/groupName/updated`
+ `$aws/events/thingGroup/groupName/deleted`

Voici un exemple de charge utile `updated`. Les charges utiles pour `created` et des messages `deleted` sont similaires.

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

Les charges utiles contiennent les attributs suivants :

eventType  
Défini sur « THING\$1GROUP\$1EVENT ».

eventId  
Un ID d'événement unique (chaîne).

timestamp  
L'horodatage UNIX du moment où l'événement s'est produit.

fonctionnement  
L'opération qui a déclenché l'événement. Les valeurs valides sont :  
+ CRÉÉ
+ MIS À JOUR
+ SUPPRIMÉ

accountId  
Votre Compte AWS carte d'identité.

thingGroupId  
L'ID du groupe d'objets en cours de création, de mise à jour ou de suppression.

thingGroupName  
Le nom du groupe d'objets en cours de création, de mise à jour ou de suppression.

versionNumber  
Version du groupe d'objets. Cette valeur est définie sur 1 lors de la création d'un groupe d'objets. Elle augmente de 1 à chaque mise à jour du groupe d'objets.

parentGroupName  
Le nom du groupe d'objets parent (le cas échéant).

parentGroupId  
L'ID du groupe d'objets parent (le cas échéant).

description  
La description du groupe d'objets.

rootToParentThingGroups  
Tableau d'informations sur le groupe d'objets parent. Il existe un élément pour chaque groupe d'objets parent, en commençant par le groupe d'objets racine et en continuant jusqu'au parent du groupe d'objets. Chaque entrée contient les groupes d'objets `groupArn` et `groupId`.

attributs  
Un ensemble de paires nom-valeur associées au groupe d'objets.

### Objet ajouté à un groupe d'objets/retiré d'un groupe d'objets
<a name="registry-events-thinggroup-addremove"></a>

Le registre publie les messages d'événement suivants lorsqu'un objet est ajouté à un groupe d'objets ou retiré d'un groupe d'objets.
+ `$aws/events/thingGroupMembership/thingGroup/thingGroupName/thing/thingName/added`
+ `$aws/events/thingGroupMembership/thingGroup/thingGroupName/thing/thingName/removed`

Les messages contiennent l'exemple de charge utile suivant :

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

Les charges utiles contiennent les attributs suivants :

eventType  
Défini sur « THING\$1GROUP\$1MEMBERSHIP\$1EVENT ».

eventId  
L'ID d'événement.

timestamp  
L'horodatage UNIX du moment où l'événement s'est produit.

fonctionnement  
`ADDED` lorsqu' un objet est ajouté à un groupe d'objets. `REMOVED` lorsqu'un objet est supprimé d'un groupe d'objets.

accountId  
Votre Compte AWS carte d'identité.

groupArn  
L'ARN du groupe d'objets.

groupId  
L'ID du groupe.

thingArn  
L'ARN de l'objet qui a été ajouté au groupe d'objets ou supprimé de ce groupe.

thingId  
L'ID de l'objet qui a été ajouté au groupe d'objets ou supprimé de ce groupe.

membershipId  
Un ID qui représente la relation entre l'objet et le groupe d'objets. Cette valeur est générée lorsque vous ajoutez un objet à un groupe d'objets.

### Groupe d'objets ajouté à un groupe d'objets/retiré d'un groupe d'objets
<a name="registry-events-thinggroup-adddelete"></a>

Le registre publie les messages d'événement suivants lorsqu'un groupe d'objets est ajouté à un autre groupe d'objets ou retiré d'un autre groupe d'objets.
+ `$aws/events/thingGroupHierarchy/thingGroup/parentThingGroupName/childThingGroup/childThingGroupName/added`
+ `$aws/events/thingGroupHierarchy/thingGroup/parentThingGroupName/childThingGroup/childThingGroupName/removed`

Le message contient l'exemple de charge utile suivant :

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

Les charges utiles contiennent les attributs suivants :

eventType  
Défini sur « THING\$1GROUP\$1HIERARCHY\$1EVENT ».

eventId  
L'ID d'événement.

timestamp  
L'horodatage UNIX du moment où l'événement s'est produit.

fonctionnement  
`ADDED` lorsqu' un objet est ajouté à un groupe d'objets. `REMOVED` lorsqu'un objet est supprimé d'un groupe d'objets.

accountId  
Votre Compte AWS carte d'identité.

thingGroupId  
L'ID du groupe d'objets parent.

thingGroupName  
Le nom du groupe d'objets parent.

childGroupId  
L'ID du groupe d'objets enfant.

childGroupName  
Le nom du groupe d'objets enfant.

# Événements Jobs
<a name="events-jobs"></a>

Le service AWS IoT Jobs publie sur des rubriques réservées sur le protocole MQTT lorsque des tâches sont en attente, terminées ou annulées, et lorsqu'un appareil signale un succès ou un échec lors de l'exécution d'une tâche. Les appareils ou les applications de gestion et de surveillance peuvent suivre l'état des tâches en s'abonnant à ces rubriques.

**Comment activer les événements d'emploi**  
Les messages de réponse du service AWS IoT Jobs ne passent pas par le courtier de messages et ne peuvent pas être souscrits par d'autres clients ou règles. Pour vous abonner aux messages liés aux activités professionnelles, utilisez les rubriques `notify` et `notify-next`. Pour plus d'informations sur les rubriques des tâches, consultez [Rubriques de tâche](reserved-topics.md#reserved-topics-job).

Pour être informé des mises à jour des tâches, activez ces événements de tâches à l'aide de AWS Management Console, ou à l'aide de l'API ou de la CLI. Pour de plus amples informations, veuillez consulter [Activez les événements pour AWS IoT](iot-events.md#iot-events-enable).

**Comment fonctionnent les événements des tâches**  
Comme l'annulation ou la suppression de tâches peut prendre un certain temps, deux messages sont envoyés pour indiquer le début et la fin d'une demande. Par exemple, lorsqu'une demande d'annulation démarre, un message est envoyé à la rubrique `$aws/events/job/jobID/cancellation_in_progress`. Lorsque la demande d'annulation est terminée, un message est envoyé à la rubrique `$aws/events/job/jobID/canceled`.

Le processus est le même pour une requête de suppression de tâche. Les applications de gestion et de surveillance peuvent effectuer le suivi de l'état des tâches en s'abonnant à ces rubriques. Pour plus d'informations sur la publication et l'abonnement aux rubriques MQTT, consultez [Protocoles de communication des appareils](protocols.md).

**Types d'événements de tâche**  
Les exemples suivants montrent les différents types d'événements liés aux emplois :

**Job Completed/Canceled/Deleted**  
Le service AWS IoT Jobs publie un message sur un sujet MQTT lorsqu'une tâche est terminée, annulée, supprimée ou lorsque l'annulation ou la suppression sont en cours :  
+ `$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`
Le message `completed`contient l'exemple de charge utile suivant :  

```
{
  "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
  }
}
```
Le message `canceled` contient l'exemple de charge utile suivant.  

```
{
  "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
}
```
Le message `deleted` contient l'exemple de charge utile suivant.  

```
{
      "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"
    }
```
Le message `cancellation_in_progress`contient l'exemple de charge utile suivant :  

```
{
      "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"
    }
```
Le message `deletion_in_progress`contient l'exemple de charge utile suivant :  

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

**Statut terminal de l'exécution d'une tâche**  
Le service AWS IoT Jobs publie un message lorsqu'un appareil met à jour l'exécution d'une tâche à l'état du 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`
Le message contient l'exemple de charge utile suivant :  

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

# Événements d'exécution de commandes
<a name="command-events"></a>

AWS IoT publie des messages d'événements dans des rubriques MQTT lorsque l'état des exécutions de commandes change. Vous pouvez utiliser ces événements pour surveiller la progression de l'exécution des commandes et créer des applications qui répondent aux changements de statut.

**Rubriques relatives aux événements d'exécution de commandes**  
Les événements d'exécution de commandes sont publiés dans la rubrique MQTT suivante :

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

Où :
+ `commandId`est l'identifiant de la commande.
+ `status`est le statut de l'exécution de la commande. Les valeurs valides sont: `CREATED`, `IN_PROGRESS`, `SUCCEEDED`, `FAILED`, `REJECTED`, `TIMED_OUT`.

Pour recevoir des notifications pour toutes les commandes et tous les statuts, abonnez-vous à la rubrique suivante en utilisant des caractères génériques :

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

**Message d'événement relatif à l'exécution des commandes**  
Lorsque le statut d'exécution d'une commande change, AWS IoT publie un message d'événement dans la rubrique MQTT correspondante. Le message contient l'exemple de charge utile suivant :

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

Les charges utiles contiennent les attributs suivants :

**ID d'exécution**  
Identifiant unique pour l'exécution de la commande (chaîne).

**status**  
État de l'exécution de la commande. Les valeurs valides sont: `CREATED`, `IN_PROGRESS`, `SUCCEEDED`, `FAILED`, `REJECTED`, `TIMED_OUT`.

**Motif du statut**  
Un objet contenant des informations supplémentaires sur le statut, si elles sont disponibles. Contient `reasonCode` et `reasonDescription` champs.

**eventType**  
Réglé sur « COMMAND\$1EXECUTION ».

**Commander RN**  
Le nom de ressource Amazon (ARN) de la commande.

**TargetArn**  
L'ARN de l'équipement cible (objet ou client) pour l'exécution de la commande.

**timestamp**  
L'horodatage UNIX du moment où l'événement s'est produit.

# Événements du cycle de vie
<a name="life-cycle-events"></a>

AWS IoT peut publier des événements du cycle de vie sur les sujets MQTT. Ces événements sont disponibles par défaut et ne peuvent pas être désactivés.

**Note**  
Les messages de cycle de vie peuvent être envoyés dans le désordre. Vous pouvez recevoir des messages en double.  
`thingName`ne sera inclus que si le client se connecte à l'aide de la fonction d'[objet exclusif](exclusive-thing.md).

**Topics**
+ [Événements de connexion/déconnexion](#connect-disconnect)
+ [Événement d'échec de tentative de connexion](#connect-authfailure-event)
+ [Événements d'abonnement/désabonnement](#subscribe-unsubscribe-events)

## Événements de connexion/déconnexion
<a name="connect-disconnect"></a>

**Note**  
Grâce à AWS IoT l'indexation du parc Device Management, vous pouvez rechercher des objets, exécuter des requêtes agrégées et créer des groupes dynamiques en fonction des Connect/Disconnect événements liés aux objets. Pour plus d’informations,veuillez consulter consultez [ la rubrique Fleet indexing](https://docs.aws.amazon.com//iot/latest/developerguide/iot-indexing.html).

AWS IoT publie un message dans les rubriques MQTT suivantes lorsqu'un client se connecte ou se déconnecte :
+ `$aws/events/presence/connected/clientId` – Un client connecté à l’agent de messages.
+ `$aws/events/presence/disconnected/clientId` – un client déconnecté de l’agent de messages.

Vous trouverez ci-dessous une liste des éléments JSON contenus dans les connection/disconnection messages publiés dans le `$aws/events/presence/connected/clientId` sujet.

**clientId**  
ID du client qui se connecte ou se déconnecte.  
Les clients IDs contenant \$1 ou \$1 ne reçoivent aucun événement du cycle de vie.

**thingName**  
Le nom de votre outil IoT. `thingName`ne sera inclus que si le client se connecte à l'aide de la fonction d'[objet exclusif](exclusive-thing.md).

**clientInitiatedDisconnect**  
True si le client est à l'origine de la déconnexion. Sinon, la valeur renvoyée est Faux. Figurant uniquement dans les messages de déconnexion.

**disconnectReason**  
La raison pour laquelle le client se déconnecte. Figurant uniquement dans les messages de déconnexion. Le tableau suivant contient des valeurs valides et indique si le courtier enverra des messages [Last Will and Testament (LWT)](mqtt.md#mqtt-lwt) lorsque la déconnexion se produit.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/iot/latest/developerguide/life-cycle-events.html)
1 Si l'appareil dispose d'une connexion active avant de recevoir cette erreur.  
2 Pour empêcher les messages Last Will and Testament (LWT), configurez `preventWillMessage=true` pour remplacer le comportement d'envoi LWT par défaut de l'`DeleteConnection`API.

**eventType**  
Type d’événement. Les valeurs valides sont `connected` ou `disconnected`. 

**ipAddress**  
Adresse IP du client de connexion. Cela peut être au IPv6 format IPv4 ou au format. Figurant uniquement dans les messages de connexion. 

**principalIdentifier**  
Informations d'identification utilisées pour l'authentification. Pour les certificats d'authentification mutuelle TLS, il s'agit de l'ID du certificat. Pour les autres connexions, ce sont les informations d'identification IAM.

**sessionIdentifier**  
Un identifiant unique au monde AWS IoT qui existe pendant toute la durée de la session.

**timestamp**  
Une approximation du moment où l'événement s'est produit.

**versionNumber**  
Numéro de version de l'événement de cycle de vie. Il s'agit d'un entier qui augmente de façon monotone pour chaque connexion d'ID client. Le numéro de version peut être utilisé par un abonné afin de déduire l'ordre des événements de cycle de vie.  
Les messages de connexion et de déconnexion d'une connexion de client ont le même numéro de version.  
Le numéro de version peut ignorer des valeurs ; il n'est pas garanti qu'il augmentera uniformément de 1 à chaque événement.  
Si un client n'est pas connecté pendant une heure environ, le numéro de version est réinitialisé à 0. Pour les sessions persistantes, le numéro de version est remis à 0 après qu'un client a été déconnecté plus longtemps que le délai configuré time-to-live (TTL) pour la session persistante.

Un message de connexion présente la structure suivante.

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

Un message de déconnexion présente la structure suivante.

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

### Gestion des déconnexions du client
<a name="reconnect"></a>

Les bonnes pratiques consistent à toujours implémenter un état d'attente pour les événements du cycle de vie, notamment avec des messages LWT [(Last Will and Testament)](mqtt.md). À réception d'un message de déconnexion, votre code doit déclencher un délai d'attente et vérifier si un appareil est toujours hors ligne avant de prendre des mesures. Pour ce faire, vous pouvez utiliser des [files d'attente à retardement SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-delay-queues.html). Lorsqu'un client reçoit un message LWT ou un événement de cycle de vie, vous pouvez mettre ce message en file d'attente (pendant 5 secondes, par exemple). Lorsque ce message est disponible et traité (par Lambda ou un autre service), vous pouvez commencer par vérifier si l'appareil est toujours hors connexion avant de prendre d'autres mesures.

## Événement d'échec de tentative de connexion
<a name="connect-authfailure-event"></a>

AWS IoT publie un message dans la rubrique MQTT suivante lorsqu'un client n'est pas autorisé à se connecter ou lorsqu'un dernier testament est configuré et que le client n'est pas autorisé à publier sur cette rubrique testamentaire.

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

Vous trouverez ci-dessous une liste des éléments JSON contenus dans les messages d'autorisation de connexion publiés dans le `$aws/events/presence/connect_failed/clientId` sujet.

**clientId**  
ID client du client qui a tenté de se connecter sans succès.  
Les clients IDs contenant \$1 ou \$1 ne reçoivent aucun événement du cycle de vie.

**thingName**  
Le nom de votre outil IoT. `thingName`ne sera inclus que si le client se connecte à l'aide de la fonction d'[objet exclusif](exclusive-thing.md).

**timestamp**  
Une approximation du moment où l'événement s'est produit.

**eventType**  
Type d’événement. La valeur valide est`connect_failed`.

**connectFailureReason**  
La raison pour laquelle la connexion échoue. La valeur valide est`AUTHORIZATION_FAILED`.

**principalIdentifier**  
Informations d'identification utilisées pour l'authentification. Pour les certificats d'authentification mutuelle TLS, il s'agit de l'ID du certificat. Pour les autres connexions, ce sont les informations d'identification IAM.

**sessionIdentifier**  
Un identifiant unique au monde AWS IoT qui existe pendant toute la durée de la session.

**ipAddress**  
Adresse IP du client de connexion. Cela peut être au IPv6 format IPv4 ou au format. Figurant uniquement dans les messages de connexion.

La structure d'un message d'échec de connexion est la suivante.

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

## Événements d'abonnement/désabonnement
<a name="subscribe-unsubscribe-events"></a>

AWS IoT publie un message dans la rubrique MQTT suivante lorsqu'un client s'abonne ou se désabonne à une rubrique MQTT :

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

 or 

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

Où `clientId` est l'ID du client MQTT qui se connecte à l'agent de messages AWS IoT .

Le message publié sur cette rubrique a la structure suivante :

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

Voici une liste d'éléments JSON qui sont contenus dans les messages d'abonnement/désabonnement publiés dans les rubriques `$aws/events/subscriptions/subscribed/clientId` et `$aws/events/subscriptions/unsubscribed/clientId`.

clientId  
ID du client qui s'abonne ou se désabonne.  
Les clients IDs contenant \$1 ou \$1 ne reçoivent aucun événement du cycle de vie.

thingName  
Le nom de votre outil IoT. `thingName`ne sera inclus que si le client se connecte à l'aide de la fonction d'[objet exclusif](exclusive-thing.md).

eventType  
Type d’événement. Les valeurs valides sont `subscribed` ou `unsubscribed`. 

principalIdentifier  
Informations d'identification utilisées pour l'authentification. Pour les certificats d'authentification mutuelle TLS, il s'agit de l'ID du certificat. Pour les autres connexions, ce sont les informations d'identification IAM.

sessionIdentifier  
Un identifiant unique au monde AWS IoT qui existe pendant toute la durée de la session.

timestamp  
Une approximation du moment où l'événement s'est produit.

topics  
Tableau des sujets MQTT auquel le client s'est abonné.

**Note**  
Les messages de cycle de vie peuvent être envoyés dans le désordre. Vous pouvez recevoir des messages en double.