

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.

# Indexation de la flotte
<a name="iot-indexing"></a>

Vous pouvez utiliser l'indexation de la flotte pour indexer, rechercher et agréger les données de vos appareils à partir des sources suivantes : [AWS IoT registre](thing-registry.md), [AWS IoT Device Shadow](iot-device-shadows.md), [AWS IoT connectivité](life-cycle-events.md), [catalogue de packages logiciels de gestion des AWS IoT appareils](software-package-catalog.md) et [AWS IoT Device Defender](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/what-is-device-defender.html)violations. Vous pouvez interroger un groupe d'appareils et agréger des statistiques sur les enregistrements des appareils en fonction de différentes combinaisons d'attributs de l'appareil, notamment l'état, la connectivité et les violations. Grâce à l'indexation de la flotte, vous pouvez organiser, étudier et dépanner votre flotte d'appareils.

L'indexation de flotte offre les fonctionnalités suivantes.

## Gestion des mises à jour des index
<a name="iot-indexing-manage-index-update"></a>

Vous pouvez configurer un index de flotte pour indexer les mises à jour relatives à vos groupes d'objets, à vos registres d'objets, à la surveillance des appareils, à la connectivité des appareils et aux violations des appareils. Lorsque vous activez l'indexation de la flotte, vous AWS IoT créez un index pour vos objets ou groupes d'objets. `AWS_Things` est l'index créé pour toutes vos objets. `AWS_ThingGroups` est l'index qui contient tous vos groupes d'objets. Une fois l'indexation de la flotte activée, vous pouvez exécuter des requêtes sur votre index. Par exemple, vous pouvez trouver tous les appareils portatifs dont l'autonomie de la batterie est supérieure à 70 %. AWS IoT met à jour l'index en permanence avec vos dernières données. Pour de plus amples informations, veuillez consulter [Managing fleet indexing (Gestion de l’indexation de la flotte](managing-fleet-index.md).

## Interrogation de l'état de connectivité d'un appareil spécifique
<a name="querying-connectivity-status-for-specific-device"></a>

Cette API fournit un accès à faible latence et à haut débit aux informations de connectivité spécifiques aux appareils les plus récentes. Pour plus d'informations, consultez la section [État de la connectivité de l'appareil.](https://docs.aws.amazon.com/iot/latest/developerguide/device-connectivity-status.html)

## Recherche parmi les sources de données
<a name="iot-indexing-search-data-source"></a>

Vous pouvez créer une chaîne de requête basée sur [un langage de requête](query-syntax.md) et l'utiliser pour effectuer des recherches dans différentes sources de données. Vous devez également configurer les sources de données dans le paramètre d'indexation de la flotte afin que la configuration d'indexation contienne les sources de données à partir desquelles vous souhaitez effectuer une recherche. La chaîne de requête décrit les éléments que vous souhaitez rechercher. Vous pouvez créer des requêtes à l'aide de champs AWS gérés, de champs personnalisés et de tout attribut issu de vos sources de données indexées. Pour plus d'informations sur les sources de données qui prennent en charge l'indexation de flotte, consultez la section [Gestion de l'indexation des objets](managing-index.md).

## Interrogation des données agrégées
<a name="iot-indexing-query-aggregate-data"></a>

Vous pouvez rechercher sur vos appareils des données globales et renvoyer des statistiques, un centile, une cardinalité ou une liste d'éléments avec des requêtes de recherche sur des champs particuliers. Vous pouvez exécuter des agrégations sur des champs AWS gérés ou sur tout attribut que vous configurez en tant que champs personnalisés dans les paramètres d'indexation du parc. Pour plus d'informations sur les requêtes d'agrégation, consultez la section [Interrogation des données agrégées](index-aggregate.md).

## Surveillance des données agrégées et création d'alarmes à l'aide des indicateurs de flotte
<a name="iot-indexing-monitor-aggregate-date"></a>

Vous pouvez utiliser les métriques de flotte pour envoyer CloudWatch automatiquement des données agrégées, analyser les tendances et créer des alarmes afin de surveiller l'état global de votre flotte en fonction de seuils prédéfinis. Pour plus d'informations sur les métriques de la flotte, veuillez consulter [Métriques de la flotte](iot-fleet-metrics.md).

# Gestion de l'indexation de la flotte
<a name="managing-fleet-index"></a>

L'indexation de flotte gère deux types d'index pour vous : l'indexation des objets et l'indexation des groupes d'objets. 

## Indexation d'objets
<a name="thing-index"></a>

L'index créé pour l'ensemble de vos objets est `AWS_Things`. L'indexation d’objet prend en charge les sources de données suivantes : données de [AWS IoT registre](thing-registry.md), données [AWS IoT Device Shadow](iot-device-shadows.md), données de [AWS IoT connectivité](life-cycle-events.md) et données de [AWS IoT Device Defender](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/what-is-device-defender.html)violations. En ajoutant ces sources de données à la configuration d'indexation de votre flotte, vous pouvez rechercher des objets, demander des données agrégées et créer des groupes d'objets dynamiques et des métriques de flotte en fonction de vos requêtes de recherche.

**Registre** :AWS IoT fournit un registre qui vous aide à gérer les choses. Vous pouvez ajouter les données du registre à la configuration d'indexation de votre flotte pour rechercher des appareils en fonction des noms d'objets, des descriptions et d'autres attributs du registre. Pour plus d'informations sur le registre, consultez la section [ Comment gérer les objets avec le registre](thing-registry.md).

**Shadow** -Le [service AWS IoT Device Shadow](iot-device-shadows.md) fournit des shadows qui vous aident à stocker les données d'état de votre appareil. L'indexation des objets prend en charge à la fois les shadows anonymes classiques et nommées. Pour indexer les shadows nommées, activez vos paramètres shadows nommées et spécifiez les noms de vos shadows dans la configuration d'indexation des objets. Par défaut, vous pouvez ajouter jusqu'à 10 noms d'ombres par zone Compte AWS. Pour savoir comment augmenter la limite du nombre de noms fictifs, consultez la section [AWS IoT Device Management Quotas](https://docs.aws.amazon.com/general/latest/gr/iot_device_management.html#fleet-indexing-limits) de la *Référence AWS générale*.

Pour ajouter des shadows nommées à des fins d'indexation :
+ Si vous utilisez la [AWS IoT console](https://console.aws.amazon.com/iot/home), activez l'**indexation des objets**, choisissez **Ajouter des shadows nommées et ajoutez** les noms de vos shadows via la **sélection des shadows nommées**. 
+ Si vous utilisez le AWS Command Line Interface (AWS CLI), définissez-le `namedShadowIndexingMode` comme étant `ON` et spécifiez les noms des ombres dans [https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html](https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html). Pour voir des exemples de commandes CLI, consultez la section [Gérer l'indexation des objets.](managing-index.md#enable-index)

**Important**  
Le 20 juillet 2022 est la version en disponibilité générale (GA) de l'intégration de l'indexation de la flotte de gestion des AWS IoT appareils avec des ombres AWS IoT Core nommées et de la AWS IoT Device Defender détection des violations. Avec cette version GA, vous pouvez indexer des shadows nommées spécifiques en spécifiant les noms des shadows. Si vous avez ajouté vos shadows nommées pour l'indexation pendant la période de préversion publique de cette fonctionnalité, du 30 novembre 2021 au 19 juillet 2022, nous vous encourageons à reconfigurer les paramètres d'indexation de votre flotte et à choisir des noms shadows spécifiques pour réduire les coûts d'indexation et optimiser les performances. 

 Pour plus d'informations sur les shadows, consultez [AWS IoT Service Device Shadows](iot-device-shadows.md).

**Connectivité** - Les données de connectivité des appareils vous aident à identifier l'état de connexion de vos appareils. Ces données de connectivité sont dictées par les [événements du cycle de vie](life-cycle-events.md). Lorsqu'un client se connecte ou se déconnecte, AWS IoT publie les événements du cycle de vie avec des messages dans des rubriques MQTT. Un message de connexion ou de déconnexion peut être une liste d'éléments JSON fournissant des détails sur l'état de la connexion. Pour plus d’informations sur la connectivité des appareils, consultez [Événements du cycle de vie](life-cycle-events.md).

**Violations de Device Defender** : les données relatives aux AWS IoT Device Defender violations permettent d'identifier les comportements anormaux des appareils par rapport aux comportements normaux que vous définissez dans un profil de sécurité. Un profil de sécurité contient un ensemble de comportements attendus de l'appareil. Chaque comportement utilise une métrique qui indique le comportement normal de vos appareils. Pour plus d'informations sur les violations de Device Defender, consultez la section [AWS IoT Device Defender détecter](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/device-defender-detect.html).

Pour de plus amples informations, veuillez consulter [la section Gestion de l'indexation des objets.](managing-index.md)

## Indexation du groupe d'objets
<a name="thing-group-index"></a>

`AWS_ThingGroups` est l'index qui contient tous les groupes de votre objet. Cet index vous permet de rechercher des groupes en fonction de leur nom, de la description, des attributs et de tous les noms de groupes parents.

Pour de plus amples informations, veuillez consulter [la section Gestion de l'indexation du groupe d'objet.](thinggroup-index.md)

## Champs gérés
<a name="managed-field"></a>

Les champs gérés contiennent des données associées aux objets, aux groupes d'objets, aux ombres des appareils, à la connectivité des appareils et aux violations de Device Defender. AWS IoT définit le type de données dans les champs gérés. Vous spécifiez les valeurs de chaque champ géré lorsque vous créez un AWS IoT objet. Par exemple, les noms d'objets, les groupes d'objets et les descriptions d'objets sont tous des champs gérés. L'indexation de flotte indexe les champs gérés en fonction du mode d'indexation que vous spécifiez. Les champs gérés ne peuvent pas être modifiés ni s'afficher dans `customFields`. Pour plus d’informations, consultez [Champs personnalisés](#custom-field).

La liste suivante répertorie les champs gérés pour l'indexation des objets : 
+ Champs gérés pour le registre

  ```
  "managedFields" : [
    {name:thingId, type:String},
    {name:thingName, type:String},
    {name:registry.version, type:Number},
    {name:registry.thingTypeName, type:String},
    {name:registry.thingGroupNames, type:String},
  ]
  ```
+ Champs gérés pour les shadows classiques sans nom

  ```
  "managedFields" : [
    {name:shadow.version, type:Number},
    {name:shadow.hasDelta, type:Boolean}
  ]
  ```
+ Champs gérés pour les shadows nommées

  ```
  "managedFields" : [
    {name:shadow.name.shadowName.version, type:Number},
    {name:shadow.name.shadowName.hasDelta, type:Boolean}
  ]
  ```
+ Champs gérés pour la connectivité d'objets

  ```
  "managedFields" : [
    {name:connectivity.timestamp, type:Number},
    {name:connectivity.version, type:Number},
    {name:connectivity.connected, type:Boolean},
    {name:connectivity.disconnectReason, type:String}
  ]
  ```
+ Champs gérés pour Device Defender

  ```
  "managedFields" : [
    {name:deviceDefender.violationCount, type:Number},
    {name:deviceDefender.securityprofile.behaviorname.metricName, type:String},
    {name:deviceDefender.securityprofile.behaviorname.lastViolationTime, type:Number},
    {name:deviceDefender.securityprofile.behaviorname.lastViolationValue, type:String},
    {name:deviceDefender.securityprofile.behaviorname.inViolation, type:Boolean}
  ]
  ```
+ Champs gérés pour les groupes d'objets

  ```
  "managedFields" : [
    {name:description, type:String},
    {name:parentGroupNames, type:String},
    {name:thingGroupId, type:String},
    {name:thingGroupName, type:String},
    {name:version, type:Number},
  ]
  ```

Le tableau suivant répertorie les champs gérés qui ne sont pas consultables. 


| Source de données | Champ géré impossible à rechercher | 
| --- | --- | 
| Registre | registry.version | 
| Shadows anonymes | shadow.version | 
| Shadows nommés | shadow.name.\$1.version | 
| Device Defender | deviceDefender.version | 
| Groupes d'objets | version | 

## Champs personnalisés
<a name="custom-field"></a>

Vous pouvez agréger les attributs des objets, les données de Device Shadow et les données relatives aux violations de Device Defender en créant des champs personnalisés pour les indexer. L'attribut `customFields` est une liste de paires de noms de champs et de types de données. Vous pouvez effectuer des requêtes d'agrégation en fonction du type de données. Le mode d'indexation que vous choisissez et qui affecte les champs peut être spécifié dans `customFields`. Par exemple, si vous spécifiez le mode d'indexation `REGISTRY`, vous ne pouvez pas spécifier un champ personnalisé à partir d'une shadow d'objet. Vous pouvez utiliser la commande [update-indexing-configuration](https://docs.aws.amazon.com/cli/latest/reference/iot/update-indexing-configuration.html)CLI pour créer ou mettre à jour les champs personnalisés (voir un exemple de commande dans la section [Mise à jour des exemples de configuration d'indexation](managing-index.md#update-index-examples)). 
+ **Noms de champs personnalisés**

Les noms de champs personnalisés pour les attributs d'objets et de groupes d'objets commencent par `attributes.`, suivis du nom de l'attribut. Si l'indexation anonyme est activée, les éléments peuvent avoir des noms de champs personnalisés commençant par `shadow.desired` ou `shadow.reported`, suivis du nom de la valeur des données shadows sans nom. Si l'indexation de la shadow nommée est activée, les éléments peuvent avoir des noms de champs personnalisés commençant par `shadow.name.*.desired.` ou `shadow.name.*.reported.`, suivis de la valeur des données shadows nommées. Si l'indexation des violations de Device Defender est activée, les éléments peuvent avoir des noms de champs personnalisés commençant par `deviceDefender.`, suivi de la valeur des données relatives aux violations de Device Defender.

Le nom de l'attribut ou de la valeur de données qui suit le préfixe ne peut contenir que des caractères alphanumériques, - (trait d'union) et \$1 (trait de soulignement). Il ne peut pas y avoir d'espaces.

S'il existe une incohérence de type entre un champ personnalisé dans votre configuration et la valeur en cours d'indexation, l'indexation de flotte ignore la valeur incohérente pour les requêtes d'agrégation. CloudWatch Les journaux sont utiles pour résoudre les problèmes liés aux requêtes d'agrégation. Pour de plus amples informations, veuillez consulter [Dépannage des requêtes d'agrégation pour le service d'indexation de parc](fleet-indexing-troubleshooting.md#aggregation-troubleshooting). 
+ **Types de champs personnalisés**

Les types de champs personnalisés ont les valeurs prises en charge suivantes : `Number``String`, et `Boolean`.

# Gérer l'indexation d'objet
<a name="managing-index"></a>

`AWS_Things` est l'index créé pour l'ensemble de vos objets. Vous pouvez contrôler les éléments à indexer à partir des sources de données suivantes : données de [AWS IoT registre](thing-registry.md), données [AWS IoT Device Shadow](iot-device-shadows.md), données de [AWS IoT connectivité](life-cycle-events.md) et données de [AWS IoT Device Defender](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/what-is-device-defender.html)violations.

**Topics**
+ [Activation de l'indexation d'objet](#enable-index)
+ [Description d'un index d'objets](#describe-index)
+ [Interrogation d'un index d'objets](#search-index)
+ [Restrictions et limitations](#index-limitations)
+ [Autorisation](#query-auth)

## Activation de l'indexation d'objet
<a name="enable-index"></a>

Vous utilisez la commande [update-indexing-configuration](https://docs.aws.amazon.com/cli/latest/reference/iot/update-indexing-configuration.html)CLI ou l'opération [UpdateIndexingConfiguration](https://docs.aws.amazon.com/iot/latest/apireference/API_UpdateIndexingConfiguration.html)API pour créer l'`AWS_Things`index et contrôler sa configuration. En utilisant le paramètre `--thing-indexing-configuration` (`thingIndexingConfiguration`), vous contrôlez le type de données (par exemple, les données de registre, shadow, de connectivité des appareils et les données de violations de Device Defender) qui sont indexées. 

Le paramètre `--thing-indexing-configuration` prend une chaîne avec la structure suivante :

```
{
  "thingIndexingMode": "OFF"|"REGISTRY"|"REGISTRY_AND_SHADOW",
  "thingConnectivityIndexingMode": "OFF"|"STATUS",
  "deviceDefenderIndexingMode": "OFF"|"VIOLATIONS",
  "namedShadowIndexingMode": "OFF"|"ON",
  "managedFields": [
    {
      "name": "string",
      "type": "Number"|"String"|"Boolean"
    }, 
    ...
  ], 
  "customFields": [
    { 
      "name": "string",
      "type": "Number"|"String"|"Boolean" 
    },
    ...
  ],
  "filter": {
     "namedShadowNames": [ "string" ],
     "geoLocations": [
        {
            "name": "String",
            "order": "LonLat|LatLon"
        }
    ]
  }
}
```

### Modes d'indexation d’objets
<a name="index-mode"></a>

Vous pouvez définir différents modes d'indexation d'objets dans votre configuration d'indexation, en fonction des sources de données que vous souhaitez indexer et à partir desquelles vous souhaitez rechercher des appareils : 
+ `thingIndexingMode`: Contrôle si le registre ou shadow sont indexés. Lorsque `thingIndexingMode` est défini sur `OFF`, l'indexation des objets est désactivée.
+ `thingConnectivityIndexingMode` : Indique si les données de connectivité d'objets sont indexées.
+ `deviceDefenderIndexingMode` : Indique si les données relatives aux violations de Device Defender sont indexées.
+ `namedShadowIndexingMode` : Indique si les données fictives nommées sont indexées. Pour sélectionner des shadows nommées à ajouter à la configuration d'indexation de votre flotte, configurez `namedShadowIndexingMode` comme étant `ON` et spécifiez les noms de vos shadows nommées dans [https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html](https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html).

Le tableau ci-dessous indique les valeurs valides pour chaque mode d'indexation et la source de données indexée pour chaque valeur.


****  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/iot/latest/developerguide/managing-index.html)

### Champs gérés et champs personnalisés
<a name="managed-custom-field"></a>

**Champs gérés**

Les champs gérés contiennent des données associées aux objets, aux groupes d'objets, aux ombres des appareils, à la connectivité des appareils et aux violations de Device Defender. AWS IoT définit le type de données dans les champs gérés. Vous spécifiez les valeurs de chaque champ géré lorsque vous créez un objet AWS IoT . Par exemple, les noms d'objets, les groupes d'objets et les descriptions d'objets sont tous des champs gérés. L'indexation de flotte indexe les champs gérés en fonction du mode d'indexation que vous spécifiez. Les champs gérés ne peuvent pas être modifiés ni s'afficher dans `customFields`.

**Champs personnalisés**

Vous pouvez agréger les attributs des objets, les données de Device Shadow et les données relatives aux violations de Device Defender en créant des champs personnalisés pour les indexer. L'attribut `customFields` est une liste de paires de noms de champs et de types de données. Vous pouvez effectuer des requêtes d'agrégation en fonction du type de données. Le mode d'indexation que vous choisissez et qui affecte les champs peut être spécifié dans `customFields`. Par exemple, si vous spécifiez le mode d'indexation `REGISTRY`, vous ne pouvez pas spécifier un champ personnalisé à partir d'une shadow d'objet. Vous pouvez utiliser la commande [update-indexing-configuration](https://docs.aws.amazon.com/cli/latest/reference/iot/update-indexing-configuration.html)CLI pour créer ou mettre à jour les champs personnalisés (voir un exemple de commande dans la section [Mise à jour des exemples de configuration d'indexation](#update-index-examples)). Pour plus d’informations, consultez [Champs personnalisés](managing-fleet-index.md#custom-field).

### Filtre d'indexation
<a name="thing-indexing-filter"></a>

Le filtre d'indexation fournit des sélections supplémentaires pour les shadows nommées et les données de géolocalisation. 

**`namedShadowNames`**

Pour sélectionner des shadows nommées à ajouter à la configuration d'indexation de votre flotte, configurez `namedShadowIndexingMode` comme étant `ON` et spécifiez les noms de vos shadows nommées dans `namedShadowNames`.

**Exemple**

```
"filter": {
     "namedShadowNames": [ "namedShadow1", "namedShadow2" ]
}
```

`geoLocations`

Pour ajouter des données de géolocalisation à la configuration d'indexation de votre flotte : 
+ Si vos données de géolocalisation sont stockées dans une shadow classique (sans nom), définissez `thingIndexingMode` REGISTRY\$1AND\$1SHADOW et spécifiez vos données de géolocalisation dans le filtre `geoLocations`.

  L'exemple de filtre ci-dessous spécifie un objet GeoLocation dans une shadow classique (sans nom) :

  ```
  "filter": {
       "geoLocations": [
          {
              "name": "shadow.reported.location",
              "order": "LonLat"
          }
       ]
    }
  ```
+ Si vos données de géolocalisation sont stockées dans une shadow nommée, `namedShadowIndexingMode` réglez-la sur ON, ajoutez le nom de shadow dans le filtre `namedShadowNames` et spécifiez vos données de géolocalisation dans le filtre `geoLocations`.

  L'exemple de filtre ci-dessous spécifie un objet geoLocation dans une shadow nommée (`nameShadow1`) :

  ```
  "filter": {
       "namedShadowNames": [ "namedShadow1" ],
       "geoLocations": [
          {
              "name": "shadow.name.namedShadow1.reported.location",
              "order": "LonLat"
          }
       ]
    }
  ```

Pour plus d'informations, consultez le [ IndexingFilter](https://docs.aws.amazon.com/iot/latest/apireference/API_IndexingFilter.html)Guide de *référence des *AWS IoT*API*.

### Mise à jour des exemples de configuration d'indexation
<a name="update-index-examples"></a>

Pour mettre à jour votre configuration d'indexation, utilisez la commande AWS IoT **update-indexing-configuration** CLI. Les exemples suivants montrent comment utiliser **update-indexing-configuration**.

Syntaxe courte :

```
aws iot update-indexing-configuration --thing-indexing-configuration \
'thingIndexingMode=REGISTRY_AND_SHADOW, deviceDefenderIndexingMode=VIOLATIONS, 
namedShadowIndexingMode=ON,filter={namedShadowNames=[thing1shadow]}, thingConnectivityIndexingMode=STATUS,
customFields=[{name=attributes.version,type=Number},
{name=shadow.name.thing1shadow.desired.DefaultDesired, type=String}, {name=shadow.desired.power, type=Boolean}, 
{name=deviceDefender.securityProfile1.NUMBER_VALUE_BEHAVIOR.lastViolationValue.number, type=Number}]'
```

Syntaxe JSON :

```
aws iot update-indexing-configuration --cli-input-json \ '{
          "thingIndexingConfiguration": { "thingIndexingMode": "REGISTRY_AND_SHADOW",
          "thingConnectivityIndexingMode": "STATUS", 
          "deviceDefenderIndexingMode": "VIOLATIONS",
          "namedShadowIndexingMode": "ON",
          "filter": { "namedShadowNames": ["thing1shadow"]},
          "customFields": [ { "name": "shadow.desired.power", "type": "Boolean" }, 
          {"name": "attributes.version", "type": "Number"}, 
          {"name": "shadow.name.thing1shadow.desired.DefaultDesired", "type": "String"}, 
          {"name": "deviceDefender.securityProfile1.NUMBER_VALUE_BEHAVIOR.lastViolationValue.number", "type": Number} ] } }'
```

Cette commande ne produit aucune sortie.

Pour vérifier l'état de l'index des objets, exécutez la commande CLI `describe-index` : 

```
aws iot describe-index --index-name "AWS_Things"
```

La sortie de la commande `describe-index` ressemble à ce qui suit :

```
{
    "indexName": "AWS_Things",
    "indexStatus": "ACTIVE",
    "schema": "MULTI_INDEXING_MODE"
}
```

**Note**  
L'indexation de flotte peut prendre un certain temps pour mettre à jour l'indice de flotte. Nous vous recommandons d'attendre que le `indexStatus` affiche ACTIVE avant de l'utiliser. Le champ de schéma peut contenir différentes valeurs en fonction des sources de données que vous avez configurées. Pour plus d'informations, consultez [Description d’un index d'objet](#describe-index).

Pour obtenir les détails de configuration de l'indexation de votre appareil, exécutez la commande CLI `get-indexing-configuration` : 

```
aws iot get-indexing-configuration
```

La sortie de la commande `get-indexing-configuration` ressemble à ce qui suit :

```
{
    "thingIndexingConfiguration": {
        "thingIndexingMode": "REGISTRY_AND_SHADOW",
        "thingConnectivityIndexingMode": "STATUS",
        "deviceDefenderIndexingMode": "VIOLATIONS",
        "namedShadowIndexingMode": "ON",
        "managedFields": [
            {
                "name": "connectivity.disconnectReason",
                "type": "String"
            },
            {
                "name": "registry.version",
                "type": "Number"
            },
            {
                "name": "thingName",
                "type": "String"
            },
            {
                "name": "deviceDefender.violationCount",
                "type": "Number"
            },
            {
                "name": "shadow.hasDelta",
                "type": "Boolean"
            },
            {
                "name": "shadow.name.*.version",
                "type": "Number"
            },
            {
                "name": "shadow.version",
                "type": "Number"
            },
            {
                "name": "connectivity.version",
                "type": "Number"
            },
            {
                "name": "connectivity.timestamp",
                "type": "Number"
            },
            {
                "name": "shadow.name.*.hasDelta",
                "type": "Boolean"
            },
            {
                "name": "registry.thingTypeName",
                "type": "String"
            },
            {
                "name": "thingId",
                "type": "String"
            },
            {
                "name": "connectivity.connected",
                "type": "Boolean"
            },
            {
                "name": "registry.thingGroupNames",
                "type": "String"
            }
        ],
        "customFields": [
            {
                "name": "shadow.name.thing1shadow.desired.DefaultDesired",
                "type": "String"
            },

            {
                "name": "deviceDefender.securityProfile1.NUMBER_VALUE_BEHAVIOR.lastViolationValue.number",
                "type": "Number"
            },
            {
                "name": "shadow.desired.power",
                "type": "Boolean"
            },
            {
                "name": "attributes.version",
                "type": "Number"
            }
        ], 
        "filter": {
              "namedShadowNames": [
                  "thing1shadow"
              ]
          }
      },
    "thingGroupIndexingConfiguration": {
        "thingGroupIndexingMode": "OFF"
    }
}
```

Pour mettre à jour les champs personnalisés, vous pouvez exécuter la commande `update-indexing-configuration`. Un exemple se présente comme suit :

```
aws iot update-indexing-configuration --thing-indexing-configuration
          'thingIndexingMode=REGISTRY_AND_SHADOW,customFields=[{name=attributes.version,type=Number},{name=attributes.color,type=String},{name=shadow.desired.power,type=Boolean},{name=shadow.desired.intensity,type=Number}]'
```

Cette commande a ajouté `shadow.desired.intensity` à la configuration d'indexation.

**Note**  
La mise à jour de la configuration d'indexation des champs personnalisés remplace tous les champs personnalisés existants. Assurez-vous de spécifier tous les champs personnalisés lorsque vous appelez **update-indexing-configuration**.

Une fois l'index régénéré, vous pouvez utiliser une requête d'agrégation sur les champs nouvellement ajoutés et faire des recherches dans les données de registre, les données de shadow et les données de statut de connectivité d'objet.

Lorsque vous modifiez le mode d'indexation, assurez-vous que tous vos champs personnalisés sont valides à l'aide du nouveau mode d'indexation. Par exemple, si vous commencez par le mode `REGISTRY_AND_SHADOW` avec un champ personnalisé appelé, `shadow.desired.temperature`, vous devez supprimer le champ personnalisé `shadow.desired.temperature` avant de remplacer le mode d'indexation par `REGISTRY`. Si votre configuration d'indexation contient des champs personnalisés qui ne sont pas indexés par le mode d'indexation, la mise à jour échoue. 

## Description d'un index d'objets
<a name="describe-index"></a>

La commande suivante montre comment utiliser la commande d'interface de ligne de commande **describe-index** pour extraire l'état actuel de l'index d'objets.

```
aws iot describe-index --index-name "AWS_Things"
```

La réponse de la commande peut ressembler à ce qui suit :

```
{
    "indexName": "AWS_Things", 
    "indexStatus": "BUILDING", 
    "schema": "REGISTRY_AND_SHADOW_AND_CONNECTIVITY_STATUS"
}
```

La première fois que vous indexez une flotte, votre AWS IoT index est créé. Lorsque `indexStatus` est dans l'état `BUILDING`, vous ne pouvez pas interroger l'index. Le `schema` de l'index d'objets indique le type de données (`REGISTRY_AND_SHADOW_AND_CONNECTIVITY_STATUS`) qui est indexé.

Si vous modifiez la configuration de votre index, ce dernier est recréé. Lors de ce processus, l'`indexStatus` est `REBUILDING`. Vous pouvez exécuter des requêtes sur les données de l'index d’objets pendant sa régénération. Par exemple, si vous faites passer la configuration d'index de `REGISTRY` à `REGISTRY_AND_SHADOW`, pendant sa régénération, vous pouvez interroger les données de registre, y compris les dernières mises à jour. Toutefois, vous ne pouvez pas interroger les données des shadows tant que la reconstruction n'est pas terminée. Le temps nécessaire pour créer ou recréer l'index dépend de la quantité de données.

Vous pouvez voir différentes valeurs dans le champ de schéma en fonction des sources de données que vous avez configurées. Le tableau suivant affiche les différentes valeurs de schéma et les descriptions correspondantes :


| Schema | Description | 
| --- | --- | 
| OFF | Aucune source de données n'est configurée ou indexée. | 
| REGISTRY | Les données du registre sont indexées. | 
| REGISTRY\$1AND\$1SHADOW | Les données du registre et les données shadow sans nom (classiques) sont indexées. | 
| REGISTRY\$1ET\$1CONNECTIVITÉ\$1 | Les données de registre et les données de connectivité sont indexées. | 
| REGISTRY\$1AND\$1SHADOW\$1AND\$1CONNECTIVITY\$1STATUS REGISTRY\$1AND\$1CONNECTIVITY\$1STATUS | Les données de registre, les données shadow sans nom (classiques) et les données de connectivité sont indexées. | 
| MULTI\$1INDEXING\$1MODE | Les données relatives aux violations de Named Shadow ou Device Defender sont indexées, en plus des données de registre, shadow anonyme (classique) ou de connectivité. | 

## Interrogation d'un index d'objets
<a name="search-index"></a>

Utilisez la commande de l'interface de ligne de commande **search-index** pour interroger les données dans l'index.

```
aws iot search-index --index-name "AWS_Things" --query-string
          "thingName:mything*"
```

```
{  
    "things":[{  
         "thingName":"mything1",
         "thingGroupNames":[  
            "mygroup1"
         ],
         "thingId":"a4b9f759-b0f2-4857-8a4b-967745ed9f4e",
         "attributes":{  
            "attribute1":"abc"
         },
         "connectivity": { 
            "connected":false,
            "timestamp":1556649874716,
            "disconnectReason": "CONNECTION_LOST"
         }         
    },
    {  
        "thingName":"mything2",
        "thingTypeName":"MyThingType",
        "thingGroupNames":[  
            "mygroup1",
            "mygroup2"
        ],
        "thingId":"01014ef9-e97e-44c6-985a-d0b06924f2af",
        "attributes":{  
            "model":"1.2",
            "country":"usa"
        },
        "shadow":{  
            "desired":{  
                "location":"new york",
                "myvalues":[3, 4, 5]
            },
            "reported":{  
                "location":"new york",
                "myvalues":[1, 2, 3],
                "stats":{  
                    "battery":78
                }
            },
            "metadata":{  
                 "desired":{  
                       "location":{  
                            "timestamp":123456789
                        },
                       "myvalues":{  
                             "timestamp":123456789
                       }
                  },
                  "reported":{  
                        "location":{  
                             "timestamp":34535454
                         },
                        "myvalues":{  
                             "timestamp":34535454
                        },
                        "stats":{  
                             "battery":{  
                                   "timestamp":34535454
                             }
                        }
                 }
            },
            "version":10,
            "timestamp":34535454
        },
        "connectivity": { 
            "connected":true,
            "timestamp":1556649855046
        }        
    }],
    "nextToken":"AQFCuvk7zZ3D9pOYMbFCeHbdZ+h=G"
}
```

Dans la réponse JSON `"connectivity"` (telle qu'activée par le paramètre `thingConnectivityIndexingMode=STATUS`), fournit une valeur booléenne, un horodatage et un déconnecterReason qui indique si l'appareil est connecté à AWS IoT Core. L’appareil `"mything1"` déconnecté (`false`) à l'heure POSIX `1556649874716` à cause de `CONNECTION_LOST`. Pour plus d’informations sur les motifs de déconnexion, consultez [Événements du cycle de vie](life-cycle-events.md). 

```
"connectivity": { 
    "connected":false,
    "timestamp":1556649874716, 
    "disconnectReason": "CONNECTION_LOST"
}
```

L'appareil `"mything2"` connecté (`true`) à l'heure POSIX `1556649855046` :

```
"connectivity": { 
    "connected":true,
    "timestamp":1556649855046
}
```

Les horodatages sont indiqués en millisecondes depuis l'époque Unix, donc `1556649855046` représente 6:44:15.046 PM le mardi 30 avril 2019 (UTC).

**Important**  
Si un appareil a été déconnecté pendant environ une heure, la valeur `"timestamp"` et la valeur `"disconnectReason"` de l'état de connectivité peuvent être manquantes.

## Restrictions et limitations
<a name="index-limitations"></a>

Les restrictions et limitations pour `AWS_Things` sont les suivantes.

**Champs Shadow de types complexes**  
Un champ shadow est indexé uniquement si la valeur du champ est un type simple, tel qu’un objet JSON qui ne contient pas de tableau ou un tableau qui se compose entièrement de types simples. (Un type simple représente une chaîne, un nombre ou un des littéraux `true` ou `false`.) Par exemple, étant donné l'état du shadow suivant, la valeur du champ `"palette"` n’est pas indexée, car il s'agit d'un tableau dont les éléments ont des types complexes. La valeur du champ `"colors"` est indexée, car chaque valeur du tableau est une chaîne.   

```
{
    "state": {
        "reported": {
            "switched": "ON",
            "colors": [ "RED", "GREEN", "BLUE" ],
            "palette": [
                {
                    "name": "RED", 
                    "intensity": 124
                },
                {
                    "name": "GREEN", 
                    "intensity": 68
                },
                {
                    "name": "BLUE", 
                    "intensity": 201
                }
            ]
        }
    }
}
```

**Noms de champs shadow imbriqués**  
Les noms des champs shadow imbriqués sont stockés sous la forme d'une chaîne délimitée par un point (.). Par exemple, soit un document shadow :  

```
{
  "state": {
    "desired": {
      "one": {
        "two": {
          "three": "v2"
        }
      }
    }    
  }
}
```
Le nom du champ `three` est stocké sous la forme `desired.one.two.three`. Si vous disposez également d'un document shadow, il est stocké comme ceci :  

```
{
  "state": {
    "desired": {
      "one.two.three": "v2"
    }    
  }
}
```
Ils correspondent tous deux à une requête pour `shadow.desired.one.two.three:v2`. Conformément aux bonnes pratiques, n'utilisez pas de points dans les noms de champs shadow.

**Métadonnées de shadow**  
Un champ d'une section de métadonnées de shadow est indexé, à l'unique condition que le champ correspondant dans la section `"state"` du shadow soit indexé. (Dans l'exemple précédent, le champ `"palette"` de la section des métadonnées du shadow n’est pas indexé non plus.)

**Appareils non enregistrés**  
[L'indexation de flotte indexe l'état de connectivité d'un appareil dont la connexion `clientId` est identique à celle `thingName` d'un objet enregistré dans le registre ](https://docs.aws.amazon.com//iot/latest/developerguide/thing-registry.html).

**Shadows non enregistrés**  
Si vous créez une ombre en utilisant un nom d'objet qui n'a pas été enregistré dans votre AWS IoT compte, les champs de cette ombre ne sont pas indexés. [UpdateThingShadow](https://docs.aws.amazon.com/iot/latest/apireference/API_iotdata_UpdateThingShadow.html) Cela s'applique à la fois à la shadow classique anonyme et nommée.

**Valeur numériques**  
Si des données de registre ou de shadow sont reconnues par le service en tant que valeurs numériques, elles sont indexées en tant que telles. Vous pouvez formuler des requêtes comportant des plages et des opérateurs de comparaison sur les valeurs numériques (par exemple, `"attribute.foo<5"` ou `"shadow.reported.foo:[75 TO 80]"`). Pour être reconnue comme numérique, la valeur des données doit être un numéro JSON valide et littéral. La valeur peut être un entier compris entre -2 ^ 53...2 ^ 53-1, une virgule flottante double précision avec une notation exponentielle facultative ou une partie d'un tableau contenant uniquement ces valeurs. 

**Valeurs nulles**  
Les valeurs nulles ne sont pas indexées.

**Valeurs maximales**  
Le nombre maximal de champs personnalisés pour les requêtes d'agrégation est 5.  
Le nombre maximal de centiles demandés pour les requêtes d'agrégation est 100.

## Autorisation
<a name="query-auth"></a>

Vous pouvez spécifier l'index des objets sous la forme d'un Amazon Resource Name (ARN) dans le cadre d'une action AWS IoT politique, comme suit.


****  

| Action | Ressource | 
| --- | --- | 
|  `iot:SearchIndex`  |  Un ARN d'index (par exemple, `arn:aws:iot:your-aws-regionyour-aws-account:index/AWS_Things`).  | 
|  `iot:DescribeIndex`  |  Un ARN d'index (par exemple, `arn:aws:iot:your-aws-region:index/AWS_Things`).  | 

**Note**  
Si vous disposez d'autorisations pour interroger l'index de la flotte, vous pouvez accéder aux données d'objets dans la totalité de la flotte.

# Gérer l'indexation du groupe d'objet
<a name="thinggroup-index"></a>

`AWS_ThingGroups` est l'index qui contient tous les groupes de votre objet. Cet index vous permet de rechercher des groupes en fonction de leur nom, de la description, des attributs et de tous les noms de groupes parents.

## Activation de l'indexation de groupes d'objets
<a name="enable-group-index"></a>

Vous pouvez utiliser le `thing-group-indexing-configuration` paramètre de l'[UpdateIndexingConfiguration](https://docs.aws.amazon.com/iot/latest/apireference/API_UpdateIndexingConfiguration.html)API pour créer l'`AWS_ThingGroups`index et contrôler sa configuration. Vous pouvez utiliser l'[GetIndexingConfiguration](https://docs.aws.amazon.com/iot/latest/apireference/API_GetIndexingConfiguration.html)API pour récupérer la configuration d'indexation actuelle. 

Pour mettre à jour les configurations d'indexation des groupes d'objets, exécutez la commande CLI **update-indexing-configuration** :

```
aws iot update-indexing-configuration --thing-group-indexing-configuration thingGroupIndexingMode=ON
```

Vous pouvez également mettre à jour les configurations d'indexation d'objets et de groupes d'objets avec une seule commande, comme indiqué ci-dessous  :

```
aws iot update-indexing-configuration --thing-indexing-configuration thingIndexingMode=REGISTRY --thing-group-indexing-configuration thingGroupIndexingMode=ON
```

Les valeurs suivantes sont valides pour `thingGroupIndexingMode`.

OFF  
Pas d' indexing/delete index.

ON  
Créez ou configurez l'index `AWS_ThingGroups`.

Pour récupérer les configurations actuelles d'indexation des objets et des groupes d'objets, exécutez la commande CLI **get-indexing-configuration** :

```
aws iot get-indexing-configuration
```

La réponse de la commande ressemble à ce qui suit :

```
{
   "thingGroupIndexingConfiguration": {
        "thingGroupIndexingMode": "ON"
    }
}
```

## Description des index de groupes
<a name="describe-group-index"></a>

Pour récupérer l'état actuel de l'index `AWS_ThingGroups`, utilisez la commande CLI **describe-index** :

```
aws iot describe-index --index-name "AWS_ThingGroups"
```

La réponse de la commande ressemble à ce qui suit :

```
{
   "indexStatus": "ACTIVE", 
   "indexName": "AWS_ThingGroups", 
   "schema": "THING_GROUPS"
}
```

 AWS IoT crée votre index la première fois que vous indexez. Vous ne pouvez pas interroger l'index si le `indexStatus` est `BUILDING`.

## Interrogation d'un index de groupes d'objets
<a name="search-group-index"></a>

Pour interroger les données de l'index, utilisez la commande CLI **search-index** :

```
aws iot search-index --index-name "AWS_ThingGroups" --query-string "thingGroupName:mythinggroup*"
```

## Autorisation
<a name="query-thinggroup-auth"></a>

Vous pouvez spécifier l'index des groupes d'objets en tant qu'ARN de ressource dans le cadre d'une action de AWS IoT politique, comme suit.


****  

| Action | Ressource | 
| --- | --- | 
|  `iot:SearchIndex`  |  Un ARN d'index (par exemple, `arn:aws:iot:your-aws-region:index/AWS_ThingGroups`).  | 
|  `iot:DescribeIndex`  |  Un ARN d'index (par exemple, `arn:aws:iot:your-aws-region:index/AWS_ThingGroups`).  | 

# Demandes d'état de connectivité de l'appareil
<a name="device-connectivity-status"></a>

AWS IoT Fleet Indexing prend en charge les requêtes de connectivité individuelles des appareils, ce qui vous permet de récupérer efficacement l'état de connectivité et les métadonnées associées pour des appareils spécifiques. Cette fonctionnalité complète les fonctionnalités d'indexation et d'interrogation existantes à l'échelle du parc.

## Comment ça marche
<a name="w2aac37c21b5"></a>

La prise en charge des requêtes de connectivité des appareils peut être utilisée pour une récupération optimisée de l'état de connectivité d'un seul appareil. Cette API fournit un accès à faible latence et à haut débit aux informations de connectivité spécifiques aux appareils les plus récentes. Une fois que vous aurez activé l'indexation de connectivité, vous aurez accès à cette API de requête qui sera facturée en tant que requêtes standard. Pour plus d'informations, consultez la section [Tarification de la gestion des AWS IoT appareils](https://aws.amazon.com/iot-device-management/pricing/#:~:text=Search%20queries%20(per%2010%2C000%20queries))

## Caractéristiques
<a name="w2aac37c21b7"></a>

Grâce à la prise en charge des requêtes relatives à la connectivité des appareils, vous pouvez :

1. Recherchez l'état de connectivité actuel (connecté ou déconnecté) d'un appareil donné à l'aide de son`thingName`.

1. Récupérez des métadonnées de connectivité supplémentaires, notamment :

   1. Raison de la déconnexion

   1. Horodatage de l'événement de connexion ou de déconnexion le plus récent.

**Note**  
[L'indexation de flotte indexe l'état de connectivité d'un appareil dont la connexion `clientId` est identique à celle `thingName` d'un objet enregistré dans le registre ](https://docs.aws.amazon.com/iot/latest/developerguide/thing-registry.html).

## Avantages
<a name="w2aac37c21b9"></a>

1. **Faible latence :** reflète l'état de connectivité le plus récent de l'appareil et offre une faible latence pour refléter les changements d'état de connexion depuis IoT Core. IoT Core détermine qu'un appareil est déconnecté soit dès qu'il reçoit une demande de déconnexion de la part de l'appareil, soit dans le cas où un appareil se déconnecte sans envoyer de demande de déconnexion. Le cœur de l'IoT attendra 1,5 fois le temps de maintien en vie configuré avant qu'il soit déterminé que le client est déconnecté. L'API d'état de connectivité reflétera ces changements généralement moins d'une seconde après que IoT Core ait déterminé le changement d'état de connexion d'un appareil.

1. **Haut débit :** prend en charge 350 transactions par seconde (TPS) par défaut et peut être ajusté à un niveau supérieur sur demande.

1. **Conservation des données :** stocke les données des événements indéfiniment lorsque le ConnectivityIndexing mode Fleet Indexing (FI) est activé et que l'objet n'est pas supprimé. Si vous désactivez l'indexation de connectivité, les enregistrements ne seront pas conservés.

**Note**  
Si l'indexation de l'état de connectivité a été activée avant le lancement de cette API, Fleet Indexing commence à suivre les modifications de l'état de connectivité après le lancement de l'API et reflète le statut mis à jour en fonction de ces modifications.

## Conditions préalables
<a name="w2aac37c21c11"></a>

Pour utiliser la prise en charge des requêtes de connectivité de l'appareil :

1. [Configurez un AWS compte](https://docs.aws.amazon.com/iot/latest/developerguide/setting-up.html)

1. Intégrez et enregistrez les appareils AWS IoT Core dans votre région préférée

1. [Activez l'indexation de la flotte grâce à l'indexation](https://docs.aws.amazon.com/iot/latest/developerguide/managing-index.html) de la connectivité

**Note**  
Aucune configuration supplémentaire n'est requise si l'indexation de connectivité est déjà activée

Pour des instructions de configuration détaillées, reportez-vous au [guide du AWS IoT développeur](https://docs.aws.amazon.com/iot/latest/developerguide/setting-up.html)

## Exemples
<a name="w2aac37c21c13"></a>

```
aws iot get-thing-connectivity-data --thing-name myThingName
```

```
{
   "connected": true,
   "disconnectReason": "NONE",
   "thingName": "myThingName",
   "timestamp": "2024-12-19T10:00:00.000000-08:00"
}
```
+ `thingName`: nom de l'appareil tel qu'indiqué dans la demande. Cela correspond également au ClientiD utilisé pour se connecter à. AWS IoT Core
+ `disconnectReason`: Motif de la déconnexion. Ce sera AUCUN pour un appareil connecté.
+ `connected`: valeur booléenne vraie indiquant que cet appareil est actuellement connecté.
+ `timestamp`: horodatage représentant la dernière déconnexion de l'appareil en millisecondes.

```
aws iot get-thing-connectivity-data --thing-name myThingName
```

```
{
   "connected": false,
   "disconnectReason": "CLIENT_INITIATED_DISCONNECT",
   "thingName": "myThingName",
   "timestamp": "2024-12-19T10:30:00.000000-08:00"
}
```
+ `thingName`: nom de l'appareil tel qu'indiqué dans la demande. Cela correspond également au ClientiD utilisé pour se connecter à. AWS IoT Core
+ `disconnectReason`: La raison de la déconnexion est CLIENT\$1INITIATED\$1DISCONNECT, qui indique que le client a indiqué qu'il allait se AWS IoT Core déconnecter. 
+ `connected`: valeur booléenne fausse indiquant que cet appareil est actuellement déconnecté.
+ `timestamp`: horodatage représentant la dernière déconnexion de l'appareil en millisecondes.

```
aws iot get-thing-connectivity-data --thing-name neverConnectedThing
```

```
{
   "connected": false,
   "disconnectReason": "UNKNOWN",
   "thingName": "neverConnectedThing"
}
```
+ `thingName`: nom de l'appareil tel qu'indiqué dans la demande. Cela correspond également au ClientiD utilisé pour se connecter à. AWS IoT Core
+ `disconnectReason`: Motif de la déconnexion. Sera « INCONNU » pour un appareil qui n'a jamais été connecté ou pour lequel Fleet Indexing n'a pas enregistré la dernière raison de déconnexion. 
+ `connected`: valeur booléenne fausse indiquant que cet appareil est actuellement déconnecté. 
+ `timestamp`: L'horodatage n'est pas renvoyé pour un appareil qui n'a jamais été connecté ou pour lequel le dernier horodatage n'est pas enregistré dans Fleet Indexing. 

# Interrogation des données agrégées
<a name="index-aggregate"></a>

AWS IoT en fournit quatre APIs (`GetStatistics`, `GetCardinality``GetPercentiles`, et`GetBucketsAggregation`) qui vous permettent de rechercher des données agrégées dans votre parc d'appareils. 

**Note**  
 Pour les problèmes liés à des valeurs manquantes ou inattendues pour l'agrégation APIs, consultez le [guide de résolution des problèmes liés à l'indexation de la flotte](fleet-indexing-troubleshooting.md). 

## GetStatistics
<a name="get-statistics"></a>

L'[GetStatistics](https://docs.aws.amazon.com/iot/latest/apireference/API_GetStatistics.html)API et la commande **get-statistics** CLI renvoient le nombre, la moyenne, la somme, le minimum, le maximum, la somme des carrés, la variance et l'écart type pour le champ agrégé spécifié.

La commande **get-statistics** de l'interface de ligne de commande (CLI) utilise les paramètres suivants :

`index-name`  
Nom de l'index dans lequel effectuer la recherche. La valeur par défaut est `AWS_Things`.

`query-string`  
Nom de la requête utilisée pour recherche dans l'index. Vous pouvez spécifier `"*"` d'obtenir le nombre de tous les éléments indexés dans votre Compte AWS.

`aggregationField`  
(Facultatif) Le champ à agréger. Ce champ doit être un champ géré ou personnalisé défini lorsque vous appelez **update-indexing-configuration**. Si vous ne spécifiez pas de champ d'agrégation, `registry.version` est utilisé comme le champ d'agrégation.

`query-version`  
Version de la requête à utiliser. La valeur par défaut est `2017-09-30`.

Le type de champ d'agrégation peut affecter les statistiques renvoyées. 

### GetStatistics avec des valeurs de chaîne
<a name="string-aggregation"></a>

Si vous regroupez les données en fonction d'un champ de chaîne, l'appel à `GetStatistics` renvoie un nombre d'appareils dont les attributs correspondent à la requête. Par exemple :

```
aws iot get-statistics --aggregation-field 'attributes.stringAttribute'
            --query-string '*'
```

Cette commande renvoie le nombre d'appareils qui contiennent un attribut nommé `stringAttribute` :

```
{
  "statistics": {
    "count": 3
  }
}
```

### GetStatistics avec des valeurs booléennes
<a name="boolean-aggregation"></a>

Lorsque vous appelez `GetStatistics` avec un champ d'agrégation Booléen :
+ AVERAGE est le pourcentage d'appareils qui correspondent à la requête.
+ MINIMUM est 0 ou 1, d'après les règles suivantes :
  + Si toutes les valeurs du champ d'agrégation sont `false`, MINIMUM est 0.
  + Si toutes les valeurs du champ d'agrégation sont `true`, MINIMUM est 1.
  + Si des valeurs du champ d'agrégation sont `false` et d'autres `true`, MINIMUM est 0.
+ MAXIMUM est 0 ou 1, d'après les règles suivantes :
  + Si toutes les valeurs du champ d'agrégation sont `false`, MAXIMUM est 0.
  + Si toutes les valeurs du champ d'agrégation sont `true`, MAXIMUM est 1.
  + Si des valeurs du champ d'agrégation sont `false` et d'autres `true`, MAXIMUM est 1.
+ SUM est la somme de l'équivalent entier des valeurs Booléennes.
+ COUNT est le nombre d'éléments qui correspondent aux critères de chaîne de requête et contiennent une valeur de champ d'agrégation valide.

### GetStatistics avec des valeurs numériques
<a name="numerical-aggregation"></a>

Lorsque vous appelez `GetStatistics` et spécifiez un champ d'agrégation de type `Number`, `GetStatistics` renvoie les valeurs suivantes :

count  
Nombre d'éléments qui correspondent aux critères de la chaîne de requête et contiennent une valeur de champ d'agrégation valide.

average  
Moyenne des valeurs numériques qui correspondent à la requête.

sum  
Somme des valeurs numériques qui correspondent à la requête.

minimum  
La plus petite des valeurs numériques qui correspondent à la requête.

maximum  
La plus grande des valeurs numériques qui correspondent à la requête.

sumOfSquares  
Somme des carrés des valeurs numériques qui correspondent à la requête.

variance  
Variance des valeurs numériques qui correspondent à la requête. La variance d'un ensemble de valeurs est la moyenne des carrés des différences de chaque valeur par rapport à la valeur moyenne de l'ensemble.

stdDeviation  
Écart type des valeurs numériques qui correspondent à la requête. L'écart type d'un ensemble de valeurs est une mesure de la répartition des valeurs.

L'exemple suivant montre comment appeler **get-statistics** avec un champ numérique personnalisé.

```
aws iot get-statistics --aggregation-field 'attributes.numericAttribute2'
            --query-string '*'
```

```
{
  "statistics": {
    "count": 3,
    "average": 33.333333333333336,
    "sum": 100.0,
    "minimum": -125.0,
    "maximum": 150.0,
    "sumOfSquares": 43750.0,
    "variance": 13472.22222222222,
    "stdDeviation": 116.06990230986766
  }
}
```

 crée votre index la première fois que vous indexez.​

## GetCardinality
<a name="get-cardinality"></a>

L'[GetCardinality](https://docs.aws.amazon.com/iot/latest/apireference/API_GetCardinality.html)API et la commande **get-cardinality** CLI renvoient le nombre approximatif de valeurs uniques correspondant à la requête. Par exemple, vous pouvez trouver le nombre d'appareils dont le niveau de batterie est inférieur à 50 % :

```
aws iot get-cardinality --index-name AWS_Things --query-string "batterylevel
          > 50" --aggregation-field "shadow.reported.batterylevel"
```

Cette commande renvoie le nombre d'objets dont le niveau de batterie est supérieur à 50 % :

```
{
    "cardinality": 100
}
```

`cardinality` est toujours renvoyé par **get-cardinality**, même s'il n'y a pas de champs correspondants. Par exemple :

```
aws iot get-cardinality --query-string "thingName:Non-existent*"
          --aggregation-field "attributes.customField_STR"
```

```
{
    "cardinality": 0
}
```

La commande **get-cardinality** de l'interface de ligne de commande (CLI) utilise les paramètres suivants :

`index-name`  
Nom de l'index dans lequel effectuer la recherche. La valeur par défaut est `AWS_Things`.

`query-string`  
Nom de la requête utilisée pour recherche dans l'index. Vous pouvez spécifier `"*"` d'obtenir le nombre de tous les éléments indexés dans votre Compte AWS.

`aggregationField`  
Champ à agréger.

`query-version`  
Version de la requête à utiliser. La valeur par défaut est `2017-09-30`.

## GetPercentiles
<a name="get-percentiles"></a>

L'[GetPercentiles](https://docs.aws.amazon.com/iot/latest/apireference/API_GetPercentiles.html)API et la commande **get-percentiles** CLI regroupent les valeurs agrégées correspondant à la requête en groupes percentiles. Les groupes de centiles par défaut sont : 1,5,25,50,75,95,99, bien que vous puissiez spécifier les vôtres lorsque vous appelez `GetPercentiles`. Cette fonction renvoie une valeur pour chaque groupe de centiles spécifié (ou les groupes de centiles par défaut). Le groupe de centiles « 1 » contient la valeur de champ agrégée qui se produit dans environ 1 % des valeurs qui correspondent à la requête. Le groupe de centiles « 5 » contient la valeur de champ agrégée qui se produit dans environ 5 % des valeurs qui correspondent à la requête, etc. Le résultat est une approximation. Plus les valeurs correspondent à la requête, plus les valeurs de centile sont précises.

L'exemple suivant montre comment appeler la commande de l'interface de ligne de commande **get-percentiles**.

```
aws iot get-percentiles --query-string "thingName:*" --aggregation-field
          "attributes.customField_NUM" --percents 10 20 30 40 50 60 70 80 90 99
```

```
{
    "percentiles": [
        {
            "value": 3.0,
            "percent": 80.0
        },
        {
            "value": 2.5999999999999996,
            "percent": 70.0
        },
        {
            "value": 3.0,
            "percent": 90.0
        },
        {
            "value": 2.0,
            "percent": 50.0
        },
        {
            "value": 2.0,
            "percent": 60.0
        },
        {
            "value": 1.0,
            "percent": 10.0
        },
        {
            "value": 2.0,
            "percent": 40.0
        },
        {
            "value": 1.0,
            "percent": 20.0
        },
        {
            "value": 1.4,
            "percent": 30.0
        },
        {
            "value": 3.0,
            "percent": 99.0
        }
    ]
}
```

La commande suivante affiche la sortie renvoyée par **get-percentiles** lorsqu'il n'y a pas de documents correspondants.

```
aws iot get-percentiles --query-string "thingName:Non-existent*"
          --aggregation-field "attributes.customField_NUM"
```

```
{
    "percentiles": []
}
```

La commande **get-percentile** de l'interface de ligne de commande (CLI) utilise les paramètres suivants :

`index-name`  
Nom de l'index dans lequel effectuer la recherche. La valeur par défaut est `AWS_Things`.

`query-string`  
Nom de la requête utilisée pour recherche dans l'index. Vous pouvez spécifier `"*"` d'obtenir le nombre de tous les éléments indexés dans votre Compte AWS.

`aggregationField`  
Champ à agréger, dont le type doit être `Number`.

`query-version`  
Version de la requête à utiliser. La valeur par défaut est `2017-09-30`.

`percents`  
(Facultatif) Vous pouvez utiliser ce paramètre pour spécifier des regroupements de centiles personnalisés.

## GetBucketsAggregation
<a name="get-buckets"></a>

L'[GetBucketsAggregation](https://docs.aws.amazon.com/iot/latest/apireference/API_GetBucketsAggregation.html)API et la commande **get-buckets-aggregation** CLI renvoient une liste de compartiments et le nombre total d'éléments correspondant aux critères de chaîne de requête.

L'exemple suivant montre comment appeler la commande de l'interface de ligne de commande get-buckets-aggregation.

```
aws iot get-buckets-aggregation --query-string '*' --index-name AWS_Things --aggregation-field 'shadow.reported.batterylevelpercent' --buckets-aggregation-type 'termsAggregation={maxBuckets=5}'
```

Cette commande renvoie ce qui suit :

```
{
    "totalCount": 20,
    "buckets": [
        {
            "keyValue": "100",
            "count": 12
        },
        {
            "keyValue": "90",
            "count": 5
        },
        {
            "keyValue": "75",
            "count": 3
        }
    ]
}
```

La commande get-buckets-aggregation de l'interface de ligne de commande (CLI) utilise les paramètres suivants :

`index-name`  
Nom de l'index dans lequel effectuer la recherche. La valeur par défaut est `AWS_Things`.

`query-string`  
Nom de la requête utilisée pour recherche dans l'index. Vous pouvez spécifier `"*"` d'obtenir le nombre de tous les éléments indexés dans votre Compte AWS.

`aggregation-field`  
Champ à agréger.

`buckets-aggregation-type`  
Contrôle de base de la forme de réponse et du type d'agrégation de compartiments à effectuer.

## Autorisation
<a name="index-aggregate-authorization"></a>

Vous pouvez spécifier l'index des groupes d'objets en tant qu'ARN de ressource dans le cadre d'une action de AWS IoT politique, comme suit.


| Action | Ressource | 
| --- | --- | 
|  `iot:GetStatistics`  |  Un ARN d'index (par exemple, `arn:aws:iot:your-aws-region:index/AWS_Things` ou `arn:aws:iot:your-aws-region:index/AWS_ThingGroups`).  | 

# Syntaxe de requête
<a name="query-syntax"></a>

Dans le cadre de l'indexation de flotte, vous utilisez une syntaxe de requête pour spécifier les requêtes.

## Fonctionnalités prises en charge
<a name="supported-query-syntax"></a>

Cette syntaxe de requête prend en charge les fonctions ci-dessous :
+ Termes et expressions
+ Champs de recherche
+ Recherche de préfixe
+ Recherche de plage
+ Opérateurs booléennes `AND`, `OR`, `NOT` et `–`. Le trait d'union est utilisé pour exclure quelque chose des résultats de recherche (par exemple, `thingName:(tv* AND -plasma)`).
+ Regroupement
+ Regroupement de champs
+ Échappement de caractères spéciaux (comme avec *\$1*)
+ L'utilisation des principaux caractères génériques est limitée à un terme de requête par requête. Par exemple, vous ne pouvez pas rechercher `thingName:*my` et `thingGroupNames:*echo` dans la même requête. Les requêtes qui incluent un caractère générique de début ont une longueur maximale de 100 caractères.
**Note**  
 Les comptes dont la limite d'API de requête Fleet Indexing est supérieure à 30 requêtes par seconde sont soumis à une limitation lors de l'utilisation de termes de requête comportant des caractères génériques principaux. Cette requests-per-second limite de 30 % s'applique au niveau du compte pour toutes les requêtes APIs d'indexation de flotte. 

## Fonctions non prises en charge
<a name="unsupported-query-syntax"></a>

Cette syntaxe de requête ne prend pas en charge les fonctions suivantes :
+ Expressions régulières
+ Promotion
+ Classement
+ Recherches approximatives
+ Recherche de proximité
+ Tri
+ Agrégation
+ Caractères spéciaux : ````@`,`#`,`%`,`\`,`/`,`'`,`;`, et `,`. Notez que `,` n'est pris en charge que dans les géorequêtes.

## Remarques
<a name="query-syntax-limitations"></a>

Quelques remarques concernant le langage de requête :
+ L'opérateur par défaut est AND. Une requête pour `"thingName:abc thingType:xyz"` équivaut à `"thingName:abc AND thingType:xyz"`.
+ Si aucun champ n'est spécifié, AWS IoT recherche le terme dans tous les champs Registry, Device Shadow et Device Defender.
+ Tous les noms de champs sont sensibles à la casse.
+ La recherche est insensible à la casse. Les mots sont séparés par des caractères d'espace vide, comme défini par l'élément Java `Character.isWhitespace(int)`.
+ L'indexation des données Device Shadow (shadows sans nom et nommées) comprend les sections rapportées, souhaitées, delta et de métadonnées.
+ Il n'est pas possible d'effectuer une recherche sur les versions du registre et des shadows d'appareil, mais elle sont présentes dans la réponse.
+ Le nombre maximum de termes dans une requête est de douze.
+ Le caractère spécial `,` n'est pris en charge que dans les géorequêtes.

# Exemples de requêtes sur des objets
<a name="example-queries"></a>

Spécifiez les requêtes dans une chaîne de requête à l'aide d'une syntaxe de requête. Les requêtes sont transmises à l'API [https://docs.aws.amazon.com/iot/latest/apireference/API_SearchIndex.html](https://docs.aws.amazon.com/iot/latest/apireference/API_SearchIndex.html). Le tableau ci-après répertorie quelques exemples de chaînes de requête.


| Chaîne de requête | Résultat | 
| --- | --- | 
|  abc  |  Requêtes pour « abc » dans n'importe quel registre, dans n'importe quel champ shadow (shadow anonyme classique et nommée) ou dans n'importe quel champ de violations de Device Defender.  | 
|  thingName:myThingName  |  Requêtes pour un objet portant le nom « myThingName ».  | 
|  thingName:my\$1  |  Requêtes concernant les objets dont le nom commence par « my ».  | 
|  thingName:\$1my  |  Requêtes portant sur des objets dont le nom se termine par « mon ». L'utilisation des principaux caractères génériques est limitée à un terme de requête par requête. Les requêtes qui incluent un caractère générique de début ont une longueur maximale de 100 caractères.  | 
|  thingName:\$1my\$1  |  Requêtes pour les éléments contenant la sous-chaîne « my ». L'utilisation des principaux caractères génériques est limitée à un terme de requête par requête. Les requêtes qui incluent un caractère générique de début ont une longueur maximale de 100 caractères.  | 
|  thingName:ab?  |  Requêtes concernant les objets dont le nom contient la chaîne « ab » suivie d'un caractère supplémentaire, par exemple : « aba », « abb », « abc », etc.  | 
|  thingTypeName:aa  |  Requêtes pour les objets qui sont associés au type « aa ».  | 
|  thingGroupNames:a  | Requêtes portant sur des objets dont le nom de groupe d'objets parent ou de groupe de facturation est « a ». | 
|  thingGroupNames:a\$1  | Requêtes portant sur des objets dont le nom du groupe d'objets parent ou du groupe de facturation correspond au modèle « a\$1 ». | 
|  attributes.myAttribute:75  |  Requêtes concernant les objets qui comportent un attribut nommé « myAttribute » ayant pour valeur 75.  | 
|  attributes.myAttribute:[75 TO 80]  |  Requêtes pour des éléments avec un attribut nommé « myAttribute » dont la valeur se situe dans une plage numérique (75 à 80 inclus).  | 
|  attributes.myAttribute:\$175 TO 80]  |  Requêtes pour les éléments avec un attribut nommé « myAttribute » dont la valeur se situe dans la plage numérique (>75 et <=80).  | 
|  attributes.serialNumber:["abcd" TO "abcf"]  |  Requêtes pour des éléments avec un attribut nommé « serialNumber » dont la valeur se trouve dans une plage de chaînes alphanumériques. Cette requête renvoie les objets dont l'attribut « serialNumber » a la valeur « abcd », « abce » ou « abcf ».  | 
|  attributes.myAttribute:i\$1t |  Requêtes pour des éléments avec un attribut nommé « myAttribute » où la valeur est « i », suivi d'un nombre quelconque de caractères, suivi de « t ».  | 
|  attributes.attr1:abc AND attributes.attr2<5 NOT attributes.attr3>10  |  Requêtes concernant les objets qui combinent des termes en utilisant des expressions booléennes. Cette requête renvoie les objets qui comportent un attribut nommé « attr1 » de valeur « abc », un attribut nommé « attr2 » qui est inférieur à 5 et un attribut nommé « attr3 » qui n'est pas supérieur à 10.  | 
|  shadow.hasDelta:true  |  Requêtes pour des éléments avec une shadow sans nom comportant un élément delta.  | 
|  NOT attributes.model:legacy  |  Requêtes concernant les objets dont l'attribut nommé « model » n'est pas défini sur « legacy ».  | 
|  shadow.reported.stats.battery:\$170 TO 100\$1 (v2 OR v3) NOT attributes.model:legacy  |  Requêtes concernant les objets possédant les caractéristiques suivantes : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/iot/latest/developerguide/example-queries.html)  | 
|  shadow.reported.myvalues:2  |  Requêtes concernant les objets dont la plage `myvalues` dans la section reported du shadow contient une valeur 2.  | 
|  shadow.reported.location:\$1 NOT shadow.desired.stats.battery:\$1  |  Requêtes concernant les objets possédant les caractéristiques suivantes : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/iot/latest/developerguide/example-queries.html)  | 
|  shadow.name.<shadowName>.hasDelta:true  |  Requêtes pour les objets qui ont une shadow avec le nom donné et également un élément delta.   | 
|  shadow.name.<shadowName>.desired.filament:\$1  |  Requêtes pour les éléments qui ont une shadow avec le nom donné et également une propriété de filament souhaitée.   | 
|  shadow.name.<shadowName>.reported.location:\$1  |  Requête les objets dotés d'une shadow portant le nom donné et dont l'attribut `location` existe dans la section signalée de la shadow nommée.  | 
|  connectivity.connected:true  |  Requêtes pour tous les appareils connectés.  | 
|  connectivity.connected:false  | Requêtes pour tous les appareils déconnectés. | 
|  connectivity.connected:true AND connectivity.timestamp : [1557651600000 TO 1557867600000]  | Requêtes pour tous les appareils connectés avec un horodatage de connexion >= 1557651600000 and <= 1557867600000. Les horodatages sont indiqués en millisecondes depuis l’époque Unix. | 
|  connectivity.connected:false AND connectivity.timestamp : [1557651600000 TO 1557867600000]  | Requêtes pour tous les appareils déconnectés avec un horodatage de déconnexion >= 1557651600000 and <= 1557867600000. Les horodatages sont indiqués en millisecondes depuis l’époque Unix. | 
|  connectivity.connected:true AND connectivity.timestamp > 1557651600000  | Requêtes pour tous les appareils connectés avec un horodatage de connexion > 1557651600000. Les horodatages sont indiqués en millisecondes depuis l’époque Unix. | 
|  connectivity.connected:\$1  | Requêtes pour tous les appareils comportant des informations de connectivité. | 
|  connectivity.disconnectReason:\$1  | Requêtes pour tous les appareils avec connectivité DisconnectReason présente. | 
|  connectivity.disconnectReason:CLIENT\$1INITIATED\$1DISCONNECT  | Requêtes pour tous les appareils déconnectés en raison de CLIENT\$1INITIATED\$1DISCONNECT. | 
|  deviceDefender.violationCount:[0 TO 100]  | Les requêtes portant sur des objets présentant une valeur de nombre de violations de Device Defender comprise dans la plage numérique (0 à 100, inclus).  | 
|  deviceDefender.<device-SecurityProfile>.disconnectBehavior.inViolation:true  | Requêtes concernant des éléments contraires au comportement disconnectBehavior défini dans le profil de sécurité device-SecurityProfile. Notez que Inviolation:false n'est pas une requête valide.  | 
|  deviceDefender.<device-SecurityProfile>.disconnectBehavior.lastViolationValue.number>2  | Requêtes concernant les éléments qui constituent une violation du comportement disconnectBehavior tel que défini dans le périphérique doté du profil de sécurité, SecurityProfile avec une valeur d'événement de dernière violation supérieure à 2.  | 
|  deviceDefender.<device-SecurityProfile>.disconnectBehavior.lastViolationTime>1634227200000  |  Requêtes concernant les éléments qui constituent une violation du comportement `disconnectBehavior` tel que défini dans le périphérique doté du profil de sécurité, SecurityProfile avec un dernier événement de violation après une période spécifiée.   | 
|  shadow.name.gps-tracker.reported.coordinates:geo\$1distance,47.6204,-122.3491,15.5km | Requêtes concernant des objets situés à une distance radiale de 15,5 km des coordonnées 47.6204, -122.3491. Cette chaîne de requête s'applique lorsque vos données de localisation sont stockées dans une shadow nommée. | 
|  shadow.reported.coordinates:geo\$1distance,47.6204,-122.3491,15.5km | Requêtes concernant des objets situés à une distance radiale de 15,5 km des coordonnées 47.6204, -122.3491. Cette chaîne de requête s'applique lorsque vos données de localisation sont stockées dans un shadow classique. | 

# Exemples de requêtes sur des groupes d'objets
<a name="example-thinggroup-queries"></a>

Les requêtes sont spécifiées dans une chaîne de requête à l'aide d'une syntaxe de requête, puis transmises à l'API [https://docs.aws.amazon.com/iot/latest/apireference/API_SearchIndex.html](https://docs.aws.amazon.com/iot/latest/apireference/API_SearchIndex.html). Le tableau ci-après répertorie quelques exemples de chaînes de requête.


| Chaîne de requête | Résultat | 
| --- | --- | 
|  abc  |  Requêtes pour « abc » dans n'importe quel champ.  | 
|  thingGroupName:myGroupThingName  |  Requêtes pour un groupe d'objets nommé « myGroupThing Nom ».  | 
|  thingGroupName:my\$1  |  Requêtes concernant les groupes d'objets dont le nom commence par « my ».  | 
|  thingGroupName:ab?  |  Requêtes pour les groupes d'objets dont les noms comportent « ab » plus un caractère supplémentaire (par exemple : « aba », « abb », « abc », etc.).  | 
|  attributes.myAttribute:75  |  Requêtes concernant les groupes d'objets qui comportent un attribut nommé « myAttribute » ayant pour valeur 75.  | 
|  attributes.myAttribute:[75 TO 80]  |  Requêtes pour les groupes d'objets avec un attribut nommé « myAttribute » dont la valeur se situe dans une plage numérique (75 à 80 inclus).  | 
|  attributes.myAttribute:[75 TO 80]  |  Requêtes concernant les groupes d'objets qui comportent un attribut nommé « myAttribute », dont la valeur est comprise dans la plage numérique >75 et <=80.  | 
|  attributes.myAttribute:["abcd" TO "abcf"]  |  Requêtes concernant les groupes d'objets qui comportent un attribut nommé « myAttribute », dont la valeur est comprise dans une plage de chaînes alphanumériques. Cette requête renvoie les groupes d'objets dont l'attribut « serialNumber » a la valeur « abcd », « abce » ou « abcf ».  | 
|  attributes.myAttribute:i\$1t  |  Requêtes concernant les groupes d'objets qui comportent un attribut nommé « myAttribute » dont la valeur est « i », suivi de n'importe quel nombre de caractères, puis du caractère « t ».  | 
|  attributes.attr1:abc AND attributes.attr2<5 NOT attributes.attr3>10  |  Requêtes concernant les groupes d'objets qui combinent des termes en utilisant des expressions booléennes. Cette requête renvoie les groupes d'objets qui comportent un attribut nommé « attr1 » de valeur « abc », un attribut nommé « attr2 » qui est inférieur à 5 et un attribut nommé « attr3 » qui n'est pas supérieur à 10.  | 
|  NOT attributes.myAttribute:cde  |  Requêtes concernant les groupes d'objets dont l'attribut nommé « myAttribute » n'est pas « cde ».  | 
|  parentGroupNames:(myParentThingGroupName)  |   Requêtes pour les groupes d'objets dont le nom du groupe parent correspond à « myParentThing GroupName ».  | 
|  parentGroupNames:(myParentThingGroupName OR myRootThingGroupName)  |  Requêtes pour les groupes d'objets dont le nom du groupe parent correspond à myParentThing GroupName « » ou « myRootThing GroupName ».  | 
|  parentGroupNames:(myParentThingGroupNa\$1)  |  Requêtes pour les groupes d'objets dont le nom du groupe parent commence par « myParentThing GroupNa ».  | 

# Indexation des données de localisation
<a name="location-indexing-geoquery"></a>

Vous pouvez utiliser l'indexation de flotte [AWS IoT pour indexer](https://docs.aws.amazon.com//iot/latest/developerguide/iot-indexing.html) les dernières données de localisation envoyées par vos appareils et rechercher des appareils à l'aide de géorequêtes. Cette fonctionnalité résout les cas d’utilisation de surveillance et de gestion des appareils tels que le suivi de localisation et la recherche de proximité. L'indexation des emplacements fonctionne de la même manière que les autres fonctionnalités d'indexation de flotte, avec des configurations supplémentaires à spécifier dans [l'indexation de vos objets](managing-fleet-index.md). 

Les cas d'utilisation courants incluent : rechercher et regrouper des appareils situés dans les limites géographiques souhaitées, obtenir des informations spécifiques à l'emplacement à l'aide de termes de requête liés aux métadonnées et à l'état de l'appareil à partir de sources de données indexées, fournir une vue granulaire telle que le filtrage des résultats sur une zone géographique spécifique pour réduire les délais de rendu dans les cartes de surveillance de votre flotte, suivre l'emplacement du dernier appareil signalé, identifier les appareils qui se trouvent en dehors des limites souhaitées et générer des alarmes à l'aide des [métriques de la flotte](iot-fleet-metrics.md). Pour commencer à utiliser l'indexation des emplacements et les géorequêtes, consultez [Didacticiel de démarrage](location-indexing-tutorial.md).

## Formats de données pris en charge
<a name="location-indexing-format"></a>

AWS IoT l'indexation de flotte prend en charge les formats de données de localisation suivants :

1. 

**Représentation textuelle bien connue de systèmes de coordonnées de référence**

   Une chaîne qui suit le format [Informations géographiques - Représentation textuelle connue des systèmes de référence de coordonnées](https://docs.ogc.org/is/12-063r5/12-063r5.html). Un exemple peut être `"POINT(long lat)"`.

1. 

**Une chaîne qui représente les coordonnées**

   Une chaîne au format `"latitude, longitude"` ou `"longitude, latitude"`. Si vous utilisez `"longitude, latitude"`, vous devez également spécifier `order` dans `geoLocations`. Un exemple peut être `"41.12,-71.34"`.

1. 

**Un objet des clés lat(latitude), lon(longitude)**

   Ce format est applicable à la shadow classique et nommée. Clés prises en charge : `lat`, `latitude`, `lon`, `long`, `longitude`. Un exemple peut être `{"lat": 41.12, "lon": -71.34}`.

1. 

**Un tableau qui représente les coordonnées**

   Un tableau au format `[lat,lon]` ou`[lon,lat]`. Si vous utilisez le format `[lon,lat]`, qui est identique aux coordonnées dans [GeoJSON](https://geojson.org/) (applicable à la shadow classique et nommée), vous devez également spécifier `order` dans `geoLocations`.

   Un exemple peut être :

   ```
   {
     "location": {
       "coordinates": [
         **Longitude**,
         **Latitude**
       ],
       "type": "Point",
       "properties": {
         "country": "United States",
         "city": "New York",
         "postalCode": "*****",
         "horizontalAccuracy": 20,
         "horizontalConfidenceLevel": 0.67,
         "state": "New York",
         "timestamp": "2023-01-04T20:59:13.024Z"
       }
     }
   }
   ```

## Comment indexer les données de localisation
<a name="location-indexing-steps"></a>

Les étapes suivantes montrent comment mettre à jour la configuration d'indexation pour vos données de localisation et utiliser des géorequêtes pour rechercher des appareils.

1. 

**Sachez où sont stockées vos données de localisation**

   L'indexation des flottes prend actuellement en charge l'indexation des données de localisation stockées dans des shadows classiques ou nommées.

1. 

**Utiliser les formats de données de localisation pris en charge**

   Assurez-vous que le format de vos données de localisation suit l'un des [formats de données pris en charge](#location-indexing-format).

1. 

**Mettre à jour la configuration de l'indexation**

   Au minimum, activez la configuration d'indexation des objets (registre). Vous devez également activer l'indexation sur les shadows classiques ou nommées contenant vos données de localisation. Lorsque vous mettez à jour l'indexation de vos objets, vous devez inclure vos données de localisation dans la configuration d'indexation.

1. 

**Créer et exécuter des géorequêtes**

   En fonction de vos cas d'utilisation, créez des géorequêtes et exécutez-les pour rechercher des appareils. La géorequête que vous composez doit suivre la [Syntaxe de requête](https://docs.aws.amazon.com//iot/latest/developerguide/query-syntax.html). Vous trouverez quelques exemples dans [Exemples de géorequêtes](#location-indexing-geoqueries).

## Mettre à jour la configuration de l'indexation des objets
<a name="location-indexing-configuration"></a>

Pour indexer les données de localisation, vous devez mettre à jour la configuration d'indexation et inclure vos données de localisation. En fonction de l'endroit où vos données de localisation sont stockées, suivez les étapes pour mettre à jour votre configuration d'indexation :

### Données de localisation stockées dans des shadows classiques
<a name="location-indexing-shadow-configuration"></a>

Si vos données de localisation sont stockées dans une shadow classique, vous devez définir `thingIndexingMode` comme tel `REGISTRY_AND_SHADOW` et spécifier vos données de localisation dans les champs `geoLocations` (`name`et `order`) de [https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html](https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html).

Dans l'exemple de configuration d'indexation d'objets suivant, vous spécifiez le chemin des données de localisation `shadow.reported.coordinates` comme `name` et `LonLat` comme `order`.

```
{
	"thingIndexingMode": "REGISTRY_AND_SHADOW",
	"filter": {
		"geoLocations": [
			{
				"name": "shadow.reported.coordinates",
				"order": "LonLat"
			}
		]
	}
}
```
+ `thingIndexingMode`

  Le mode d'indexation contrôle si le registre ou le shadow est indexé. Lorsque `thingIndexingMode` est défini sur `OFF`, l'indexation des objets est désactivée. 

  Pour indexer les données de localisation stockées dans un shadow classique, vous devez définir `thingIndexingMode` sur `REGISTRY_AND_SHADOW`. Pour de plus amples informations, veuillez consulter [Modes d'indexation d’objets](managing-index.md#index-mode).
+ `filter`

  Le filtre d'indexation fournit des sélections supplémentaires pour les shadows nommées et les données de géolocalisation. Pour de plus amples informations, veuillez consulter [Filtre d'indexation](managing-index.md#thing-indexing-filter).
+ `geoLocations`

  Liste des cibles de géolocalisation que vous sélectionnez pour indexer. Par défaut, le nombre maximal de cibles de géolocalisation pour l'indexation est `1`. Pour augmenter la limite, consultez [AWS IoT Device Management Quotas](https://docs.aws.amazon.com//general/latest/gr/iot_device_management.html#fleet-indexing-limits).
+ `name`

  Nom du champ cible de géolocalisation. Un exemple de valeur de `name` peut être le chemin des données de localisation de votre shadow : `shadow.reported.coordinates`.
+ `order`

  L'ordre du champ cible de géolocalisation. Valeurs valides : `LatLon` et `LonLat`. `LatLon` signifie latitude et longitude. `LonLat`signifie longitude et latitude. Ce champ est facultatif. La valeur par défaut est `LatLon`.

### Données de localisation stockées dans des shadows nommées
<a name="location-indexing-named-shadow-configuration"></a>

Si vos données de localisation sont stockées dans une shadow nommée, définissez `namedShadowIndexingMode` comme étant `ON`, ajoutez le ou les noms de votre shadow nommée au champ `namedShadowNames` dans [https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html](https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html) et spécifiez le chemin de vos données de position dans le champ `geoLocations` dans [https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html](https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html).

Dans l'exemple de configuration d'indexation d'objets suivant, vous spécifiez le chemin des données de localisation `shadow.name.namedShadow1.reported.coordinates` comme `name` et `LonLat` comme `order`.

```
{
	"thingIndexingMode": "REGISTRY",
	"namedShadowIndexingMode": "ON",
	"filter": {
		"namedShadowNames": [
			"namedShadow1"
		],
		"geoLocations": [
			{
				"name": "shadow.name.namedShadow1.reported.coordinates",
				"order": "LonLat"
			}
		]
	}
}
```
+ `thingIndexingMode`

  Le mode d'indexation contrôle si le registre ou le shadow est indexé. Lorsque `thingIndexingMode` est défini sur `OFF`, l'indexation des objets est désactivée. 

  Pour indexer les données de localisation stockées dans une shadow nommée, vous devez définir `thingIndexingMode` comme étant `REGISTRY` (ou`REGISTRY_AND_SHADOW`). Pour de plus amples informations, veuillez consulter [Modes d'indexation d’objets](managing-index.md#index-mode).
+ `filter`

  Le filtre d'indexation fournit des sélections supplémentaires pour les shadows nommées et les données de géolocalisation. Pour de plus amples informations, veuillez consulter [Filtre d'indexation](managing-index.md#thing-indexing-filter).
+ `geoLocations`

  Liste des cibles de géolocalisation que vous sélectionnez pour indexer. Par défaut, le nombre maximal de cibles de géolocalisation pour l'indexation est `1`. Pour augmenter la limite, consultez [AWS IoT Device Management Quotas](https://docs.aws.amazon.com//general/latest/gr/iot_device_management.html#fleet-indexing-limits).
+ `name`

  Nom du champ cible de géolocalisation. Un exemple de valeur de `name` peut être le chemin des données de localisation de votre shadow : `shadow.name.namedShadow1.reported.coordinates`.
+ `order`

  L'ordre du champ cible de géolocalisation. Valeurs valides : `LatLon` et `LonLat`. `LatLon` signifie latitude et longitude. `LonLat`signifie longitude et latitude. Ce champ est facultatif. La valeur par défaut est `LatLon`.

## Exemples de géorequêtes
<a name="location-indexing-geoqueries"></a>

Une fois que vous avez terminé la configuration d'indexation de vos données de localisation, exécutez des géorequêtes pour rechercher des appareils. Vous pouvez également combiner vos géorequêtes avec d'autres chaînes de requête. Pour plus d’informations, consultez [Syntaxe de requête](query-syntax.md) et [Exemples de requêtes sur des objets](example-queries.md).

**Exemple de requête 1**

Cet exemple suppose que les données de localisation sont stockées dans une shadow nommée `gps-tracker`. Le résultat de cette commande est la liste des périphériques situés à une distance radiale de 15,5 km du point central avec des coordonnées (47.6204, -122.3491).

```
aws iot search-index --query-string \
"shadow.name.gps-tracker.reported.coordinates:geo_distance,47.6204,-122.3491,15.5km"
```

**Exemple de requête 2**

Cet exemple suppose que les données de localisation sont stockées dans un shadow classique. Le résultat de cette commande est la liste des périphériques situés à une distance radiale de 15,5 km du point central avec des coordonnées (47.6204, -122.3491).

```
aws iot search-index --query-string \
"shadow.reported.coordinates:geo_distance,47.6204,-122.3491,15.5km"
```

**Exemple de requête 3**

Cet exemple suppose que les données de localisation sont stockées dans un shadow classique. Le résultat de cette commande est la liste des appareils qui ne sont pas connectés et situés en dehors de la distance radiale de 15,5 km du point central avec des coordonnées (47.6204, -122.3491).

```
aws iot search-index --query-string \
"connectivity.connected:false AND (NOT shadow.reported.coordinates:geo_distance,47.6204,-122.3491,15.5km)"
```

# Didacticiel de démarrage
<a name="location-indexing-tutorial"></a>

Ce didacticiel explique comment utiliser [l'indexation de flotte](iot-indexing.md) pour indexer [vos données de localisation](location-indexing-geoquery.md). Pour simplifier, vous créez un objet pour représenter votre appareil et vous stockez les données de localisation dans une shadow nommée, vous mettez à jour la configuration d'indexation des objets pour l'indexation des emplacements et vous exécutez des exemples de géorequêtes pour rechercher des appareils dans une limite radiale.

Ce didacticiel vous prendra environ 15 minutes.

**Topics**
+ [Conditions préalables](#location-indexing-tutorial-prerequisites)
+ [Créez des objets et shadow](#location-indexing-create-resources)
+ [Mettre à jour la configuration de l'indexation des objets](#location-indexing-update-configuration)
+ [Exécuter une géorequête](#location-indexing-run-geoquery)

## Conditions préalables
<a name="location-indexing-tutorial-prerequisites"></a>
+ Installez la dernière version de [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html).
+ Familiarisez-vous avec [l'indexation des emplacements et les géorequêtes](https://docs.aws.amazon.com/iot/latest/developerguide/location-indexing-geoquery.html), la [gestion de l'indexation des objets](https://docs.aws.amazon.com/iot/latest/developerguide/managing-index.html) et la [syntaxe des requêtes](https://docs.aws.amazon.com/iot/latest/developerguide/query-syntax.html).

## Créez des objets et shadow
<a name="location-indexing-create-resources"></a>

Vous créez un objet pour représenter votre appareil et une shadow nommée pour stocker ses données de localisation (coordonnées 47.61564, -122.33584).

1. Exécutez la commande suivante pour créer votre objet qui représente votre vélo nommé Bike-1. *Pour plus d'informations sur la façon de créer un objet en utilisant AWS CLI, voir [create-thing from *AWS CLI*Reference](https://docs.aws.amazon.com//cli/latest/reference/iot/create-thing.html).*

   ```
   aws iot create-thing --thing-name "Bike-1" \
   --attribute-payload '{"attributes": {"model":"OEM-2302-12", "battery":"35", "acqDate":"06/09/23"}}'
   ```

   Le résultat de cette commande peut ressembler à ce qui suit :

   ```
   {
       "thingName": "Bike-1",
       "thingArn": "arn:aws:iot:us-east-1:123456789012:thing/Bike-1",
       "thingId": "df9cf01d-b0c8-48fe-a2e2-e16cff6b23df"
   }
   ```

1. Exécutez la commande suivante pour créer une shadow nommée afin de stocker les données de localisation du Bike-1 (coordonnées 47.61564, -122.33584). Pour plus d'informations sur la façon de créer une ombre nommée à l'aide de AWS CLI, reportez-vous [update-thing-shadow](https://docs.aws.amazon.com//cli/latest/reference/iot-data/update-thing-shadow.html)à la section *AWS CLI**Référence*.

   ```
   aws iot-data update-thing-shadow \
   --thing-name Bike-1 \
   --shadow-name Bike1-shadow \
   --cli-binary-format raw-in-base64-out \
   --payload '{"state":{"reported":{"coordinates":{"lat": 47.6153, "lon": -122.3333}}}}' \
   "output.txt" \
   ```

   Cette commande ne produit aucune sortie. Pour afficher l'ombre nommée que vous avez créée, vous pouvez exécuter la commande CLI [list-named-shadows-for-thing](https://docs.aws.amazon.com//cli/latest/reference/iot-data/list-named-shadows-for-thing.html).

   ```
   aws iot-data list-named-shadows-for-thing --thing-name Bike-1
   ```

   Le résultat de cette commande peut ressembler à ce qui suit :

   ```
   {
       "results": [
           "Bike1-shadow"
       ],
       "timestamp": 1699574309
   }
   ```

## Mettre à jour la configuration de l'indexation des objets
<a name="location-indexing-update-configuration"></a>

Pour indexer vos données de localisation, vous devez mettre à jour la configuration d'indexation de votre objet afin d'inclure les données de localisation. Dans la mesure où vos données de localisation sont stockées dans une shadow nommée dans ce didacticiel, définissez `thingIndexingMode` sur `REGISTRY` (au minimum), définissez `namedShadowIndexingMode` sur `ON` et ajoutez vos données de localisation à la configuration. Dans cet exemple, vous devez ajouter le nom de la shadow que vous avez nommée et le chemin des données de localisation de la shadow vers `filter`.

1. Exécutez la commande pour mettre à jour votre configuration d'indexation pour l'indexation des emplacements.

   ```
   aws iot update-indexing-configuration --cli-input-json '{
   "thingIndexingConfiguration": { "thingIndexingMode": "REGISTRY",
   "thingConnectivityIndexingMode": "OFF",
   "deviceDefenderIndexingMode": "OFF",
   "namedShadowIndexingMode": "ON",
   "filter": {
       "namedShadowNames": ["Bike1-shadow"],
       "geoLocations":[{
           "name":"shadow.name.Bike1-shadow.reported.coordinates"
       }]
   },
   "customFields": [
   { "name":"attributes.battery",
   "type":"Number"}] } }'
   ```

   La commande ne génère pas de sortie. Vous devrez peut-être attendre un moment jusqu'à ce que la mise à jour soit terminée. Pour vérifier l’état, exécutez la commande CLI [describe-index](https://docs.aws.amazon.com//cli/latest/reference/iot/describe-index.html). Si le message `indexStatus` indique :`ACTIVE`, la mise à jour de l'indexation de votre objet est terminée.

1. Exécutez la commande pour vérifier votre configuration d'indexation. Cette étape est facultative.

   ```
   aws iot get-indexing-configuration
   ```

   Le résultat se présentera comme suit :

   ```
   {
       "thingIndexingConfiguration": {
           "thingIndexingMode": "REGISTRY",
           "thingConnectivityIndexingMode": "OFF",
           "deviceDefenderIndexingMode": "OFF",
           "namedShadowIndexingMode": "ON",
           "managedFields": [
               {
                   "name": "shadow.name.*.hasDelta",
                   "type": "Boolean"
               },
               {
                   "name": "registry.version",
                   "type": "Number"
               },
               {
                   "name": "registry.thingTypeName",
                   "type": "String"
               },
               {
                   "name": "registry.thingGroupNames",
                   "type": "String"
               },
               {
                   "name": "shadow.name.*.version",
                   "type": "Number"
               },
               {
                   "name": "thingName",
                   "type": "String"
               },
               {
                   "name": "thingId",
                   "type": "String"
               }
           ],
           "customFields": [
               {
                   "name": "attributes.battery",
                   "type": "Number"
               }
           ],
           "filter": {
               "namedShadowNames": [
                   "Bike1-shadow"
               ],
               "geoLocations": [
                   {
                       "name": "shadow.name.Bike1-shadow.reported.coordinates",
                       "order": "LatLon"
                   }
               ]
           }
       },
       "thingGroupIndexingConfiguration": {
           "thingGroupIndexingMode": "OFF"
       }
   }
   ```

## Exécuter une géorequête
<a name="location-indexing-run-geoquery"></a>

Vous avez maintenant mis à jour la configuration d'indexation de vos objets pour inclure les données de localisation. Essayez de créer des géorequêtes et de les exécuter pour voir si vous pouvez obtenir les résultats de recherche souhaités. Une doit respecter la [Syntaxe de requête](query-syntax.md). Vous trouverez des exemples de géorequêtes utiles dans [Exemples de géorequêtes](location-indexing-geoquery.md#location-indexing-geoqueries).

Dans l'exemple de commande suivant, vous utilisez la géorequête `shadow.name.Bike1-shadow.reported.coordinates:geo_distance,47.6204,-122.3491,15.5km` pour rechercher des appareils situés à une distance radiale de 15,5 km du point central avec des coordonnées (47.6204, -122.3491). 

```
aws iot search-index --query-string "shadow.name.Bike1-shadow.reported.coordinates:geo_distance,47.6204,-122.3491,15.5km"
```

Étant donné que vous disposez d'un appareil situé aux coordonnées « lat »: 47.6153, « lon »: -122.3333, qui se situe à une distance de 15,5 km du point central, vous devriez pouvoir voir cet appareil (Bike-1) dans la sortie. Le résultat se présentera comme suit :

```
{
    "things": [
        {
            "thingName": "Bike-1",
            "thingId": "df9cf01d-b0c8-48fe-a2e2-e16cff6b23df",
            "attributes": {
                "acqDate": "06/09/23",
                "battery": "35",
                "model": "OEM-2302-12"
            },
            "shadow": "{\"reported\":{\"coordinates\":{\"lat\":47.6153,\"lon\":-122.3333}},\"metadata\":{\"reported\":{\"coordinates\":{\"lat\":{\"timestamp\":1699572906},\"lon\":{\"timestamp\":1699572906}}}},\"hasDelta\":false,\"version\":1}"
        }
    ]
}
```

Pour de plus amples informations, veuillez consulter [Indexation des données de localisation](location-indexing-geoquery.md).

# Métriques de la flotte
<a name="iot-fleet-metrics"></a>

Les métriques de flotte sont une fonctionnalité de l'[indexation des flottes](iot-indexing.md), un service géré qui vous permet d'indexer, de rechercher et d'agréger les données de vos appareils. AWS IoT Vous pouvez utiliser les indicateurs de parc pour surveiller l'état global des appareils de votre parc [CloudWatch](https://console.aws.amazon.com/cloudwatch/)au fil du temps, notamment en examinant le taux de déconnexion des appareils de votre parc ou l'évolution moyenne du niveau de batterie sur une période donnée.

À l'aide des métriques de flotte, vous pouvez créer des [requêtes d'agrégation](index-aggregate.md) dont les résultats sont transmis en continu [CloudWatch](https://console.aws.amazon.com/cloudwatch/)sous forme de métriques pour analyser les tendances et créer des alarmes. Pour vos tâches de surveillance, vous pouvez spécifier les requêtes d'agrégation de différents types d'agrégation (**statistiques**, **cardinalité** et **percentile**). Vous pouvez enregistrer toutes vos requêtes d'agrégation afin de créer des métriques de flotte à réutiliser à l'avenir. 

# Didacticiel de démarrage
<a name="fleet-metrics-get-started"></a>

Dans ce didacticiel, vous allez créer une [métrique de flotte](iot-fleet-metrics.md) pour surveiller les températures de vos capteurs afin de détecter d'éventuelles anomalies. Lors de la création de la métrique de flotte, vous définissez une [requête d'agrégation](index-aggregate.md) qui détecte le nombre de capteurs dont les températures dépassent 80 degrés Fahrenheit. Vous spécifiez la requête à exécuter toutes les 60 secondes et les résultats de la requête sont envoyés CloudWatch, où vous pouvez voir le nombre de capteurs présentant des risques potentiels de température élevée et définir des alarmes. Pour suivre ce tutoriel, vous utilisez [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html). 

Dans ce didacticiel, vous allez découvrir comment :
+ [Configuration](#fleet-metrics-tutorial-setup)
+ [Créer des métriques de flotte](#fleet-metrics-tutorial-create)
+ [Afficher les métriques dans CloudWatch](#fleet-metrics-tutorial-view-data)
+ [Nettoyage des ressources](#fleet-metrics-tutorial-delete-fleet-metrics)

Ce didacticiel vous prendra environ 15 minutes.

## Conditions préalables
<a name="fleet-metrics-tutorial-prerequisites"></a>
+ Installez la dernière version de [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html)
+ Familiarisez-vous avec [l'interrogation de données agrégées](https://docs.aws.amazon.com/iot/latest/developerguide/index-aggregate.html)
+ Familiarisez-vous avec [l'utilisation CloudWatch des métriques Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html) 

## Configuration
<a name="fleet-metrics-tutorial-setup"></a>

Pour utiliser les métriques de flotte, activez l'indexation de la flotte. Pour activer l'indexation de la flotte pour vos objets ou groupes d'objets avec des sources de données spécifiées et des configurations associées, suivez les instructions des sections [Gestion de l'indexation des objets](managing-index.md#enable-index) et [Gestion de l'indexation des groupes d'objets](thinggroup-index.md#enable-group-index).

**Pour configurer**

1. Exécutez la commande suivante pour activer l'indexation de la flotte et spécifier les sources de données à partir desquelles effectuer la recherche. 

   ```
   aws iot update-indexing-configuration \
   --thing-indexing-configuration "thingIndexingMode=REGISTRY_AND_SHADOW,customFields=[{name=attributes.temperature,type=Number},{name=attributes.rackId,type=String},{name=attributes.stateNormal,type=Boolean}],thingConnectivityIndexingMode=STATUS" \
   ```

   L'exemple de commande CLI précédent permet à l'indexation de flotte de prendre en charge la recherche de données de registre, de données shadow et de l'état de connectivité des objets à l'aide de l'index `AWS_Things`. 

   La modification de configuration peut prendre quelques minutes. Vérifiez que l'indexation de votre flotte est activée avant de créer des indicateurs de flotte. 

   Pour vérifier si l'indexation de votre flotte a été activée, exécutez la commande CLI suivante : 

   ```
   aws --region us-east-1 iot describe-index --index-name "AWS_Things"
   ```

   Pour de plus amples informations, veuillez consulter [Activer l'indexation d’objet](managing-index.md#enable-index).

1. Exécutez le script bash suivant pour créer dix objets et les décrire. 

   ```
   # Bash script. Type `bash` before running in other shells.
   
   Temperatures=(70 71 72 73 74 75 47 97 98 99)
   Racks=(Rack1 Rack1 Rack2 Rack2 Rack3 Rack4 Rack5 Rack6 Rack6 Rack6)
   IsNormal=(true true true true true true false false false false)
   
   for ((i=0; i < 10; i++))
   do
     thing=$(aws iot create-thing --thing-name "TempSensor$i" --attribute-payload attributes="{temperature=${Temperatures[@]:$i:1},rackId=${Racks[@]:$i:1},stateNormal=${IsNormal[@]:$i:1}}")
     aws iot describe-thing --thing-name "TempSensor$i"
   done
   ```

   Ce script crée dix éléments pour représenter dix capteurs. Chaque élément possède les attributs de `temperature``rackId`, et `stateNormal` comme décrit dans le tableau suivant :    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/iot/latest/developerguide/fleet-metrics-get-started.html)

   La sortie de ce script contient dix fichiers JSON. Un des fichiers JSON ressemble au suivant :

   ```
   {
       "version": 1, 
       "thingName": "TempSensor0", 
       "defaultClientId": "TempSensor0", 
       "attributes": {
           "rackId": "Rack1", 
           "stateNormal": "true", 
           "temperature": "70"
       }, 
       "thingArn": "arn:aws:iot:region:account:thing/TempSensor0", 
       "thingId": "example-thing-id"
   }
   ```

   Pour plus d'informations, consultez [Créer un objet](https://docs.aws.amazon.com/iot/latest/developerguide/thing-registry.html#create-thing).

## Créer des métriques de flotte
<a name="fleet-metrics-tutorial-create"></a>

**Crée une métrique de flotte**

1. Exécutez la commande suivante pour créer une métrique de flotte nommée*high\$1temp\$1FM*. Vous créez la métrique du parc pour surveiller le nombre de capteurs dont les températures dépassent 80 degrés Fahrenheit. CloudWatch 

   ```
   aws iot create-fleet-metric --metric-name "high_temp_FM" --query-string "thingName:TempSensor* AND attributes.temperature >80" --period 60 --aggregation-field "attributes.temperature" --aggregation-type name=Statistics,values=count
   ```

   --métrique-nom 

   Types de données : Chaîne. Le paramètre `--metric-name` spécifie le nom d'une métrique de flotte. Dans cet exemple, vous créez une métrique de flotte nommée *high\$1temp\$1FM*.

   -- requête-chaîne

   Types de données : Chaîne. Le paramètre `--query-string` spécifie la chaîne de requête. Dans cet exemple, la chaîne de requête signifie interroger tous les éléments dont les noms commencent par *TempSensor*et avec des températures supérieures à 80 degrés Fahrenheit. Pour plus d'informations, consultez [Syntaxe de requête](query-syntax.md).

   --période 

   Type de données – Entier. Le paramètre `--period` indique le temps nécessaire pour récupérer les données agrégées en secondes. Dans cet exemple, vous spécifiez que la métrique de flotte que vous créez récupère les données agrégées toutes les 60 secondes.

   --agrégation-champ

   Types de données : Chaîne. Le paramètre `--aggregation-field` indique l'attribut à évaluer. Dans cet exemple, l'attribut de température doit être évalué.

   --agrégation-type

   Le paramètre `--aggregation-type` spécifie le résumé statistique à afficher dans la métrique de flotte. Pour vos tâches de surveillance, vous pouvez personnaliser les propriétés de requête d'agrégation pour les différents types d'agrégation (**statistiques**, **cardinalité** et **percentile**). Dans cet exemple, vous spécifiez le **nombre** pour le type d'agrégation et les **statistiques** pour renvoyer le nombre d'appareils dont les attributs correspondent à la requête, en d'autres termes, pour renvoyer le nombre d'appareils dont le nom commence par *TempSensor*et dont les températures sont supérieures à 80 degrés Fahrenheit. Pour plus d'informations, consultez la section [Interrogation des données agrégées](index-aggregate.md).

   La sortie de cette commande ressemble à ce qui suit :

   ```
   {
       "metricArn": "arn:aws:iot:region:111122223333:fleetmetric/high_temp_FM", 
       "metricName": "high_temp_FM"
   }
   ```
**Note**  
L'affichage des points de données peut prendre un certain temps CloudWatch.

   Pour en savoir plus sur la création d'une métrique de flotte, consultez [Gérer les métriques de flotte](managing-fleet-metrics.md).

   Si vous ne parvenez pas à créer une métrique de flotte, consultez la section [Résolution des problèmes liés aux métriques de flotte](fleet-indexing-troubleshooting.md#fleet-metrics-troubleshooting). 

1. (Facultatif) Exécutez la commande suivante pour décrire la métrique de votre flotte nommée *high\$1temp\$1FM*:

   ```
   aws iot describe-fleet-metric --metric-name "high_temp_FM"
   ```

   La sortie de cette commande ressemble à ce qui suit :

   ```
   {
       "queryVersion": "2017-09-30", 
       "lastModifiedDate": 1625249775.834, 
       "queryString": "*", 
       "period": 60, 
       "metricArn": "arn:aws:iot:region:111122223333:fleetmetric/high_temp_FM", 
       "aggregationField": "registry.version", 
       "version": 1, 
       "aggregationType": {
           "values": [
               "count"
           ], 
           "name": "Statistics"
       }, 
       "indexName": "AWS_Things", 
       "creationDate": 1625249775.834, 
       "metricName": "high_temp_FM"
   }
   ```

## Afficher les statistiques de la flotte dans CloudWatch
<a name="fleet-metrics-tutorial-view-data"></a>

Après avoir créé la métrique de flotte, vous pouvez consulter les données de la métrique dans CloudWatch. Dans ce didacticiel, vous verrez la métrique qui indique le nombre de capteurs dont le nom commence par *TempSensor*et dont les températures sont supérieures à 80 degrés Fahrenheit.

**Pour afficher les points de données dans CloudWatch**

1. Ouvrez la CloudWatch console à l'adresse [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/). 

1.  CloudWatch Dans le menu du panneau de gauche, choisissez **Mesures** pour développer le sous-menu, puis sélectionnez **Toutes les mesures**. Cela ouvre la page dont la moitié supérieure affiche le graphique et la moitié inférieure contient quatre sections à onglets.

1. La première section à onglets **Toutes les métriques** répertorie toutes les métriques que vous pouvez consulter par groupes, choisissez **Io TFleet Metrics**. Il contient tous les indicateurs de votre flotte.

1. Dans la section **Type d'agrégation** de l'onglet **Toutes les métriques**, choisissez **Type d'agrégation** pour afficher toutes les métriques de flotte que vous avez créées. 

1. Choisissez la métrique de flotte pour afficher le graphique à gauche de la section **Type d'agrégation**. Vous verrez la valeur *count* à gauche du **nom de votre métrique**. Il s'agit de la valeur du type d'agrégation que vous avez spécifié dans la section [Créer des métriques de flotte](#fleet-metrics-tutorial-create) de ce didacticiel.

1. Choisissez le deuxième onglet intitulé **Métriques graphiques** à droite de l'onglet **Toutes les métriques** pour afficher la métrique de flotte que vous avez choisie à l'étape précédente.

   Vous devriez pouvoir voir un graphique qui affiche le nombre de capteurs dont la température est supérieure à 80 degrés Fahrenheit, comme suit :  
![\[AWS IoT indicateurs de flotte\]](http://docs.aws.amazon.com/fr_fr/iot/latest/developerguide/images/fm-metric-in-cloudwatch.png)
**Note**  
L'attribut **Period** est CloudWatch défini par défaut sur 5 minutes. Il s'agit de l'intervalle de temps entre les points de données affichés CloudWatch. Vous pouvez modifier le paramètre **Période** en fonction de vos besoins.

1. (Facultatif) Vous pouvez définir une alarme métrique. 

   1.  CloudWatch Dans le menu du panneau de gauche, choisissez **Alarmes** pour développer le sous-menu, puis sélectionnez **Toutes les alarmes**.

   1. Sur la page **Alertes**, choisissez **Créer une alerte** dans le coin supérieur droit. Suivez les instructions de **création d'alerte** dans la console pour créer une alerte selon vos besoins. Pour plus d'informations, consultez la section [Utilisation des CloudWatch alarmes Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html).

Pour en savoir plus, consultez [l'article Utiliser CloudWatch les métriques Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html). 

Si vous ne pouvez pas voir les points de données CloudWatch, consultez la section [Résolution des problèmes liés aux indicateurs de flotte](fleet-indexing-troubleshooting.md#fleet-metrics-troubleshooting).

## Nettoyage
<a name="fleet-metrics-tutorial-delete-fleet-metrics"></a>

**Pour supprimer les métriques de flotte**

Vous utilisez la commande CLI **delete-fleet-metric** pour supprimer les métriques de flotte.

Pour supprimer la métrique de flotte nommée *high\$1temp\$1FM*, exécutez la commande suivante.

```
aws iot delete-fleet-metric --metric-name "high_temp_FM"
```

**Pour nettoyer les objets**

Vous pouvez utiliser la commande CLI **delete-thing** pour supprimer les objets.

Pour supprimer les dix éléments que vous avez créés, exécutez le script suivant :

```
# Bash script. Type `bash` before running in other shells.

for ((i=0; i < 10; i++))
do
  thing=$(aws iot delete-thing --thing-name "TempSensor$i")
done
```

**Pour nettoyer les métriques dans CloudWatch**

CloudWatch ne prend pas en charge la suppression des métriques. Les métriques expirent en fonction de leur calendrier de conservation. Pour en savoir plus, consultez la [section Utilisation CloudWatch des métriques Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html).

# Gestion des métriques de flotte
<a name="managing-fleet-metrics"></a>

Cette rubrique explique comment utiliser la AWS IoT console et gérer AWS CLI les indicateurs de votre flotte.

**Topics**
+ [Gestion des indicateurs de flotte (console)](#managing-fleet-metrics-console)
+ [Gestion des indicateurs de flotte (CLI)](#managing-fleet-metrics-cli)
+ [Autoriser le balisage des ressources IoT](#managing-fleet-metrics-policy)

## Gestion des indicateurs de flotte (console)
<a name="managing-fleet-metrics-console"></a>

Les sections suivantes montrent comment utiliser la AWS IoT console pour gérer les indicateurs de votre flotte. Assurez-vous d'avoir activé l'indexation de la flotte avec les sources de données et les configurations associées avant de créer des métriques de flotte.

### Activez l'indexation de la flotte
<a name="setup-steps-console"></a>

Si vous avez déjà activé l'indexation de la flotte, ignorez cette section.

Si vous n'avez pas activé l'indexation de la flotte, suivez ces instructions.

1. Ouvrez votre AWS IoT console à l'adresse [https://console.aws.amazon.com/iot/](https://console.aws.amazon.com/iot/).

1.  AWS IoT Dans le menu, choisissez **Réglages**. 

1. Pour afficher les paramètres détaillés, sur la page **Paramètres**, faites défiler la page vers le bas jusqu'à la section **indexation de la flotte**.

1. Pour mettre à jour les paramètres d'indexation de votre flotte, à droite de la section **Indexation de la flotte**, sélectionnez **Gérer l'indexation**. 

1. Sur la page **Gérer l'indexation de la flotte**, mettez à jour les paramètres d'indexation de votre flotte en fonction de vos besoins. 
   + **Configuration**

     Pour activer l'indexation des objets, activez l'**indexation des objets**, puis sélectionnez les sources de données à partir desquelles vous souhaitez indexer. 

     Pour activer l'indexation des groupes d'objets, activez l'indexation des **groupes d'objets**.
   + **Champs personnalisés pour l'agrégation - *facultatif***

     Les champs personnalisés sont une liste de paires de noms et de types de champs. 

     Pour ajouter une paire de champs personnalisée, choisissez **Ajouter un nouveau champ**. Entrez un nom de champ personnalisé tel que`attributes.temperature`, puis sélectionnez un type de champ dans le menu **Type de champ**. Notez que le nom d'un champ personnalisé commence par `attributes.` et sera enregistré en tant qu'attribut pour exécuter des [requêtes d'agrégation d'objets](https://docs.aws.amazon.com/iot/latest/developerguide/index-aggregate.html).

     Pour mettre à jour et enregistrer le paramètre, choisissez **Mettre à jour**.

### Créer une métrique de flotte
<a name="create-fleet-metrics-console"></a>

1. Ouvrez votre AWS IoT console à l'adresse [https://console.aws.amazon.com/iot/](https://console.aws.amazon.com/iot/). 

1.  AWS IoT Dans le menu, choisissez **Gérer**, puis choisissez **Fleet metrics**.

1. Sur la page **Métriques de la flotte**, choisissez **Créer une métrique de flotte** et suivre les étapes de création.

1. À l'étape 1, **configurez les métriques de la flotte**
   + Dans la section **Requête**, entrez une chaîne de requête pour spécifier les objets ou les groupes d'objets pour lesquels vous souhaitez effectuer la recherche agrégée. La chaîne de requête est composée d'un attribut et d'une valeur. Dans **Propriétés**, choisissez l'attribut souhaité ou, s'il n'apparaît pas dans la liste, saisissez-le dans le champ. Saisissez la valeur après `:`. Un exemple de chaîne de requête peut être `thingName:TempSensor*`. Pour chaque chaîne de requête que vous saisissez, appuyez sur la touche **Entrée** de votre clavier. Si vous entrez plusieurs chaînes de requête, spécifiez leur relation en sélectionnant **et**, **ou**, **et non**, **ou pas** entre elles. 
   + Dans **Propriétés du rapport**, sélectionnez le **nom de l'index**, le **type d'agrégation** **et le champ d'agrégation** dans leurs listes respectives. Sélectionnez ensuite les données que vous souhaitez agréger dans **Sélectionner les données**, où vous pouvez sélectionner plusieurs valeurs de données.
   + Choisissez **Suivant**.

1. À l'étape 2, **spécifiez les propriétés métriques de la flotte**
   + Dans le champ **Nom de la métrique de flotte**, entrez le nom de la métrique de flotte que vous créez.
   + Dans le champ **Description - *facultatif***, entrez une description de la métrique de flotte que vous créez. Ce champ est facultatif. 
   + Dans les champs **Heures** et **Minutes**, entrez l'heure (fréquence) à laquelle vous souhaitez que la métrique du parc émette des données CloudWatch.
   + Choisissez **Suivant**.

1. À l'étape 3 : **Examen et création**
   + Vérifiez les paramètres des étapes 1 et 2. Pour modifier les paramètres, choisissez **Modifier**.
   + Choisissez **Créer une métrique de flotte**.

Une fois la création réussie, la métrique de flotte est répertoriée sur la page **Métrique de flotte**.

### Met à jour une métrique de flotte
<a name="update-fleet-metrics-console"></a>

1. Sur la page **Métrique de flotte**, choisissez la métrique de flotte que vous souhaitez mettre à jour.

1. Sur la page métrique de la flotte, choisissez **Détails**, puis **Modifier**. Cela ouvre les étapes de création où vous pouvez mettre à jour les indicateurs de votre flotte dans l'une des trois étapes. 

1. Une fois que vous avez terminé de mettre à jour la métrique de flotte, choisissez **Mettre à jour la métrique de flotte**.

### Supprimer une métrique de flotte
<a name="delete-fleet-metrics-console"></a>

1. Sur la page **Métrique de flotte**, choisissez la métrique de flotte que vous souhaitez mettre à jour.

1. Sur la page suivante qui affiche les détails de l'indicateur de votre flotte, choisissez **Supprimer**.

1. Dans la boîte de dialogue, entrez le nom de la métrique de flotte pour confirmer la suppression.

1. Sélectionnez **Delete (Supprimer)**. Cette étape supprime définitivement la métrique de votre flotte.

## Gestion des indicateurs de flotte (CLI)
<a name="managing-fleet-metrics-cli"></a>

Les sections suivantes montrent comment utiliser le AWS CLI pour gérer les indicateurs de votre flotte. Assurez-vous d'avoir activé l'indexation de la flotte avec les sources de données et les configurations associées avant de créer des métriques de flotte. Pour activer l'indexation de flotte pour vos objets ou groupes d'objets, suivez les instructions dans [Gestion de l'indexation des objets](managing-index.md#enable-index) ou [Gestion de l'indexation des groupes d'objets](thinggroup-index.md#enable-group-index).

### Créer une métrique de flotte
<a name="create-fleet-metrics"></a>

Vous pouvez utiliser la commande create-fleet-metric CLI pour créer une métrique de flotte. 

```
aws iot create-fleet-metric --metric-name "YourFleetMetricName" --query-string "*" --period 60 --aggregation-field "registry.version" --aggregation-type name=Statistics,values=sum
```

La sortie de cette commande contient le nom et l'Amazon Resource Name (ARN) de la métrique de votre flotte. Le résultat se présente comme suit :

```
{
    "metricArn": "arn:aws:iot:us-east-1:111122223333:fleetmetric/YourFleetMetricName", 
    "metricName": "YourFleetMetricName"
}
```

### Liste des métriques de flotte
<a name="list-fleet-metrics"></a>

Vous pouvez utiliser la commande list-fleet-metric CLI pour répertorier tous les indicateurs de flotte de votre compte. 

```
aws iot list-fleet-metrics
```

Le résultat de cette commande contient tous les indicateurs de votre flotte. Le résultat se présente comme suit :

```
{
    "fleetMetrics": [
        {
            "metricArn": "arn:aws:iot:us-east-1:111122223333:fleetmetric/YourFleetMetric1", 
            "metricName": "YourFleetMetric1"
        }, 
        {
            "metricArn": "arn:aws:iot:us-east-1:111122223333:fleetmetric/YourFleetMetric2", 
            "metricName": "YourFleetMetric2"
        }
    ]
}
```

### Décrire une métrique de flotte
<a name="describe-fleet-metrics"></a>

Vous pouvez utiliser la commande describe-fleet-metric CLI pour afficher des informations plus détaillées sur une métrique de flotte. 

```
aws iot describe-fleet-metric --metric-name "YourFleetMetricName"
```

La sortie de la commande contient les informations détaillées sur la métrique de flotte spécifiée. Le résultat se présente comme suit :

```
{
    "queryVersion": "2017-09-30", 
    "lastModifiedDate": 1625790642.355, 
    "queryString": "*", 
    "period": 60, 
    "metricArn": "arn:aws:iot:us-east-1:111122223333:fleetmetric/YourFleetMetricName", 
    "aggregationField": "registry.version", 
    "version": 1, 
    "aggregationType": {
        "values": [
            "sum"
        ], 
        "name": "Statistics"
    }, 
    "indexName": "AWS_Things", 
    "creationDate": 1625790642.355, 
    "metricName": "YourFleetMetricName"
}
```

### Met à jour une métrique de flotte
<a name="update-fleet-metrics"></a>

Vous pouvez utiliser la commande update-fleet-metric CLI pour mettre à jour une métrique de flotte. 

```
aws iot update-fleet-metric --metric-name "YourFleetMetricName" --query-string "*" --period 120 --aggregation-field "registry.version" --aggregation-type name=Statistics,values=sum,count --index-name AWS_Things
```

La update-fleet-metric commande ne génère pas de sortie. Vous pouvez utiliser la commande describe-fleet-metric CLI pour voir le résultat.

```
{
    "queryVersion": "2017-09-30", 
    "lastModifiedDate": 1625792300.881, 
    "queryString": "*", 
    "period": 120, 
    "metricArn": "arn:aws:iot:us-east-1:111122223333:fleetmetric/YourFleetMetricName", 
    "aggregationField": "registry.version", 
    "version": 2, 
    "aggregationType": {
        "values": [
            "sum", 
            "count"
        ], 
        "name": "Statistics"
    }, 
    "indexName": "AWS_Things", 
    "creationDate": 1625792300.881, 
    "metricName": "YourFleetMetricName"
}
```

### Supprimez une métrique de flotte
<a name="delete-fleet-metrics"></a>

Utilisez la commande delete-fleet-metric CLI pour supprimer une métrique de flotte. 

```
aws iot delete-fleet-metric --metric-name "YourFleetMetricName"
```

Cette commande ne produit aucune sortie si la suppression est réussie ou si vous spécifiez une métrique de flotte qui n'existe pas.

Pour plus d’informations, consultez [Dépannage des métriques de flotte](fleet-indexing-troubleshooting.md#fleet-metrics-troubleshooting).

## Autoriser le balisage des ressources IoT
<a name="managing-fleet-metrics-policy"></a>

Pour mieux contrôler les indicateurs de flotte que vous pouvez créer, modifier ou utiliser, vous pouvez associer des balises aux indicateurs de flotte.

Pour étiqueter les métriques de flotte que vous créez à l'aide de AWS Management Console ou AWS CLI, vous devez inclure l'`iot:TagResource`action dans votre politique IAM afin d'accorder des autorisations aux utilisateurs. Si votre politique IAM ne l'inclut pas `iot:TagResource`, toute action visant à créer une métrique de flotte avec une balise renverra une erreur `AccessDeniedException`.

Pour obtenir des informations générales sur le balisage de vos ressources, consultez [Balisage de vos AWS IoT ressources](https://docs.aws.amazon.com//iot/latest/developerguide/tagging-iot.html).

### Exemple de politique IAM
<a name="managing-fleet-metrics-policy-example"></a>

Reportez-vous à l'exemple de politique IAM suivant accordant des autorisations de balisage lorsque vous créez une métrique de flotte :

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Action": [
				"iot:TagResource"
			],
			"Effect": "Allow",
			"Resource": [
				"arn:aws:iot:*:*:fleetmetric/*"
			]
		},
		{
			"Action": [
				"iot:CreateFleetMetric"
			],
			"Effect": "Allow",
			"Resource": [
				"arn:aws:iot:*:*:index/*",
				"arn:aws:iot:*:*:fleetmetric/*"
			]
		}
	]
}
```

Pour de plus amples informations, consultez [Actions, ressources et clés de condition pour AWS IoT](https://docs.aws.amazon.com//service-authorization/latest/reference/list_awsiot.html)