

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Indicizzazione del parco istanze
<a name="iot-indexing"></a>

Puoi utilizzare l'indicizzazione del parco istanze per indicizzare, cercare e aggregare i dati dei dispositivi dalle seguenti origini: [registro di AWS IoT](thing-registry.md), [AWS IoT Device Shadow](iot-device-shadows.md), [connettività di AWS IoT](life-cycle-events.md), [Software Package Catalog gestione dispositivi AWS IoT](software-package-catalog.md) e violazioni di [AWS IoT Device Defender](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/what-is-device-defender.html). È possibile eseguire query su un gruppo di dispositivi e aggregare statistiche sui record dei dispositivi basati su diverse combinazioni di attributi del dispositivo, tra cui stato, connettività e violazioni del dispositivo. Con l'indicizzazione del parco istanze puoi organizzare, indagare e risolvere i problemi del tuo parco istanze di dispositivi.

L'indicizzazione del parco istanze offre le caratteristiche elencate di seguito.

## Gestione degli aggiornamenti degli indici
<a name="iot-indexing-manage-index-update"></a>

È possibile impostare un indice del parco istanze per indicizzare gli aggiornamenti dei gruppi di oggetti, dei registri di oggetti, le shadow dei dispositivi, della connettività dei dispositivi e delle violazioni del dispositivo. Quando attivi l'indicizzazione del parco istanze, AWS IoT crea un indice per gli oggetti o i gruppi di oggetti. `AWS_Things` è l'indice creato per tutti i tuoi oggetti. `AWS_ThingGroups` è l'indice che contiene tutti i tuoi gruppi di oggetti. Quando l'indicizzazione del parco istanze è attiva, puoi eseguire query sull'indice. Ad esempio, puoi trovare tutti i dispositivi portatili con una durata della batteria superiore al 70%. AWS IoT aggiorna continuamente l'indice con i dati più recenti. Per ulteriori informazioni, consulta Servizio [Managing fleet indexing (Gestione dell'indicizzazione del parco istanze)](managing-fleet-index.md).

## Interrogazione dello stato della connettività per un dispositivo specifico
<a name="querying-connectivity-status-for-specific-device"></a>

Questa API fornisce un accesso a bassa latenza e ad alta velocità alle informazioni di connettività specifiche del dispositivo più recenti. [Per ulteriori informazioni, consulta Stato della connettività del dispositivo.](https://docs.aws.amazon.com/iot/latest/developerguide/device-connectivity-status.html)

## Ricerca tra origini dei dati
<a name="iot-indexing-search-data-source"></a>

Puoi creare una stringa di query basata su [un linguaggio di query](query-syntax.md) e utilizzarla per cercare tra le origini dati. È inoltre necessario configurare le fonti di dati nell'impostazione di indicizzazione del parco veicoli in modo che la configurazione di indicizzazione contenga le fonti di dati da cui effettuare la ricerca. La stringa di query descrive gli oggetti che desideri trovare. Puoi creare query utilizzando campi AWS gestiti, campi personalizzati e qualsiasi attributo delle tue fonti di dati indicizzate. Per ulteriori informazioni sulle origini dati che supportano l'indicizzazione del parco istanze, consulta [Managing thing indexing (Gestione dell'indicizzazione degli oggetti)](managing-index.md).

## Interrogazione di dati aggregati
<a name="iot-indexing-query-aggregate-data"></a>

Puoi cercare i tuoi dispositivi per trovare dati aggregati e restituire statistiche, percentile, cardinalità o un elenco di oggetti con query di ricerca relative a campi specifici. Puoi eseguire aggregazioni su campi AWS gestiti o su qualsiasi attributo configurato come campi personalizzati all'interno delle impostazioni di indicizzazione del parco veicoli. Per ulteriori informazioni sull'esecuzione di query, consulta [Interrogazione di dati aggregati](index-aggregate.md).

## Monitoraggio dei dati di aggregazione e creazione di allarmi utilizzando parametri del parco istanze
<a name="iot-indexing-monitor-aggregate-date"></a>

Puoi utilizzare le metriche della flotta per inviare CloudWatch automaticamente dati aggregati, analizzare le tendenze e creare allarmi per monitorare lo stato aggregato della tua flotta in base a soglie predefinite. Per ulteriori informazioni sui parametri del parco istanze, consulta [Fleet metrics (Parametri del parco istanze)](iot-fleet-metrics.md).

# Gestione dell'indicizzazione del parco istanze
<a name="managing-fleet-index"></a>

L'indicizzazione del parco istanze consente di gestire automaticamente due tipi di indici: l'indicizzazione di oggetti e l'indicizzazione di gruppi di oggetti. 

## Indicizzazione degli oggetti
<a name="thing-index"></a>

L'indice creato per tutti i tuoi oggetti è chiamato `AWS_Things`. L'indicizzazione degli oggetti supporta le seguenti origini dati: dati di [registro di AWS IoT](thing-registry.md), [dati di AWS IoT Device Shadow ](iot-device-shadows.md), dati di [connettività di AWS IoT](life-cycle-events.md) e dati di violazioni di [AWS IoT Device Defender](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/what-is-device-defender.html). Aggiungendo queste origini dei dati alla configurazione di indicizzazione del parco istanze, puoi cercare oggetti, eseguire query su dati aggregati e creare gruppi di oggetti dinamici e parametri del parco istanze in base alle tue query di ricerca.

**Registro:AWS IoT fornisce un registro** che ti aiuta a gestire le cose. È possibile aggiungere i dati di registro alla configurazione di indicizzazione del parco istanze per cercare i dispositivi in base ai nomi degli oggetti, alle descrizioni e ad altri attributi del registro. Per ulteriori informazioni sul registro, consulta [Come gestire gli oggetti con il registro](thing-registry.md).

**Shadow**: il [servizio Device Shadow AWS IoT](iot-device-shadows.md) fornisce copie shadow che facilitano l'archiviazione dei dati sullo stato del dispositivo. L'indicizzazione degli oggetti supporta sia le classiche copie shadow senza nome che le copie shadow con nome. Per indicizzare le copie shadow denominate, attiva le impostazioni delle tue copie shadow denominate e specificane i nomi nella configurazione di indicizzazione oggetti. Per impostazione predefinita, è possibile aggiungere fino a 10 nomi shadow per persona Account AWS. Per informazioni su come aumentare il limite del numero di nomi delle copie shadow, consulta [AWS IoT Device Management Quotas](https://docs.aws.amazon.com/general/latest/gr/iot_device_management.html#fleet-indexing-limits) nella *Guida di riferimento di AWS *.

Per aggiungere copie shadow specifiche per l'indicizzazione:
+ Se utilizzi la [console AWS IoT](https://console.aws.amazon.com/iot/home), attiva l'**indicizzazione di oggetti**, scegli **Add named shadows** (Aggiungi copie shadow denominate), quindi aggiungi i nomi delle copie shadow tramite **Named shadow selection** (Selezione della copia shadow denominata). 
+ Se usate il AWS Command Line Interface (AWS CLI), impostate su `namedShadowIndexingMode` be e `ON` specificate i nomi delle ombre in [https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html](https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html). Per gli esempi di comandi della CLI, consulta [Manage thing indexing](managing-index.md#enable-index) (Gestione dell'indicizzazione di oggetti).

**Importante**  
Il 20 luglio 2022 è disponibile la versione General Availability (GA) dell'integrazione dell'indicizzazione della flotta di AWS IoT Device Management con shadow AWS IoT Core denominati e AWS IoT Device Defender rilevamento delle violazioni. Con questo rilascio pubblico, potrai indicizzare copie shadow denominate specificando i nomi delle copie shadow. Se hai aggiunto le tue copie shadow denominate per l'indicizzazione durante il periodo di anteprima pubblica di questa funzione, ovvero dal 30 novembre 2021 al 19 luglio 2022, ti invitiamo a riconfigurare le impostazioni di indicizzazione del parco istanze e scegliere nomi di copie shadow specifici per ridurre i costi di indicizzazione e ottimizzare le prestazioni. 

 Per ulteriori informazioni sulle shadow, consulta [Servizio Device Shadow AWS IoT](iot-device-shadows.md).

**Connettività**: i dati di connettività del dispositivo consentono di identificare lo stato di connessione dei dispositivi. Questi dati di connettività sono guidati da [eventi del ciclo di vita](life-cycle-events.md). Quando un client si connette o si disconnette, AWS IoT pubblica eventi del ciclo di vita con messaggi su argomenti MQTT. Un messaggio di connessione o disconnessione può essere un elenco di elementi JSON che forniscono dettagli sullo stato della connessione. Per ulteriori informazioni sulla connettività del dispositivo, consulta [Eventi del ciclo di vita](life-cycle-events.md).

**Violazioni di Device Defender**: i dati AWS IoT Device Defender sulle violazioni aiutano a identificare i comportamenti anomali dei dispositivi rispetto ai comportamenti normali definiti in un profilo di sicurezza. Un profilo di sicurezza contiene un set di comportamenti previsti del dispositivo. Ogni comportamento utilizza un parametro che specifica il comportamento normale dei dispositivi. [Per ulteriori informazioni sulle violazioni di Device Defender, consulta detect.AWS IoT Device Defender](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/device-defender-detect.html)

Per ulteriori informazioni, consulta [Gestione dell'indicizzazione degli oggetti](managing-index.md).

## Indicizzazione di gruppi di oggetti
<a name="thing-group-index"></a>

`AWS_ThingGroups` è l'indice che contiene tutti i tuoi gruppi di oggetti. Questo indice consente di cercare gruppi in base al nome del gruppo, alla descrizione, agli attributi e a tutti i nomi del gruppo padre.

Per ulteriori informazioni, consulta [Gestione dell'indicizzazione di gruppi di oggetti](thinggroup-index.md).

## Campi gestiti
<a name="managed-field"></a>

I campi gestiti contengono dati associati a oggetti, gruppi di oggetti, ombre dei dispositivi, connettività dei dispositivi e violazioni di Device Defender. AWS IoT definisce il tipo di dati nei campi gestiti. Si specificano i valori di ogni campo gestito quando si crea un AWS IoT oggetto. Ad esempio i nomi degli oggetti, i gruppi di oggetti e le descrizioni degli oggetti sono tutti campi gestiti. L'indicizzazione del parco istanze indica i campi gestiti in base alla modalità di indicizzazione che specifici. I campi gestiti non possono essere modificati o visualizzati in `customFields`. Per ulteriori informazioni, consulta [Custom fields (Personalizza campi)](#custom-field).

Di seguito sono elencati i campi gestiti per l'indicizzazione delle cose: 
+ Campi gestiti per il Registro di sistema

  ```
  "managedFields" : [
    {name:thingId, type:String},
    {name:thingName, type:String},
    {name:registry.version, type:Number},
    {name:registry.thingTypeName, type:String},
    {name:registry.thingGroupNames, type:String},
  ]
  ```
+ Campi gestiti per shadow classiche senza nome

  ```
  "managedFields" : [
    {name:shadow.version, type:Number},
    {name:shadow.hasDelta, type:Boolean}
  ]
  ```
+ Campi gestiti per shadow con nome

  ```
  "managedFields" : [
    {name:shadow.name.shadowName.version, type:Number},
    {name:shadow.name.shadowName.hasDelta, type:Boolean}
  ]
  ```
+ Campi gestiti per la connettività degli oggetti

  ```
  "managedFields" : [
    {name:connectivity.timestamp, type:Number},
    {name:connectivity.version, type:Number},
    {name:connectivity.connected, type:Boolean},
    {name:connectivity.disconnectReason, type:String}
  ]
  ```
+ Campi gestiti per 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}
  ]
  ```
+ Campi gestiti per i gruppi di oggetti

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

Nella tabella seguente sono elencati i campi gestiti che non sono ricercabili. 


| Origine dati | Il campo gestito non è ricercabile | 
| --- | --- | 
| Registro | registry.version | 
| Copie shadow senza nome | shadow.version | 
| Copie shadow con nome | shadow.name.\$1.version | 
| Device Defender | deviceDefender.version | 
| Gruppi di oggetti | version | 

## Campi personalizzati
<a name="custom-field"></a>

È possibile aggregare gli attributi degli oggetti, i dati di Device Shadow e i dati delle violazioni di Device Defender creando campi personalizzati per indicizzarli. L'attributo `customFields` è un elenco di coppie di nomi di campi e tipi di dati. È possibile eseguire query di aggregazione in base al tipo di dati. La modalità di indicizzazione che scegli influenza i campi che è possibile specificare in `customFields`. Ad esempio, se si specifica la modalità di indicizzazione `REGISTRY`, non è possibile specificare un campo personalizzato da una copia shadow dell'oggetto. È possibile utilizzare il comando [update-indexing-configuration](https://docs.aws.amazon.com/cli/latest/reference/iot/update-indexing-configuration.html)CLI per creare o aggiornare i campi personalizzati (vedere un comando di esempio in [Aggiornamento degli esempi di configurazione dell'indicizzazione](managing-index.md#update-index-examples)). 
+ **Nomi di campo personalizzati**

I nomi dei campi personalizzati per gli attributi di oggetti e gruppi di oggetti iniziano con `attributes.`, seguito dal nome dell'attributo. Se l'indicizzazione delle copie shadow senza nome è attiva, gli oggetti possono avere nomi di campo personalizzati che iniziano con `shadow.desired` o `shadow.reported`, seguito dal nome del valore dei dati delle copie shadow senza nome. Se l'indicizzazione delle copie shadow con nome è attiva, gli oggetti possono avere nomi di campo personalizzati che iniziano con `shadow.name.*.desired.` o `shadow.name.*.reported.`, seguito dal valore dei dati delle copie shadow con nome. Se l'indicizzazione delle violazioni di Device Defender è attiva, gli oggetti possono avere nomi di campo personalizzati che iniziano con `deviceDefender.`, seguito dal valore dei dati delle violazioni di Device Defender.

Il nome dell'attributo o del valore dei dati che segue il prefisso può contenere solo caratteri alfanumerici, - (trattino) e \$1 (carattere di sottolineatura). Non può avere spazi.

Se è presente un'incongruenza di tipo tra un campo personalizzato nella configurazione e il valore indicizzato, il servizio di indicizzazione del parco istanze ignora il valore incoerente per le query di aggregazione. CloudWatch I log sono utili per la risoluzione dei problemi relativi alle query di aggregazione. Per ulteriori informazioni, consulta [Risoluzione dei problemi delle query di aggregazione per il servizio di indicizzazione del parco istanze](fleet-indexing-troubleshooting.md#aggregation-troubleshooting). 
+ **Tipi di campo personalizzati**

I tipi di campo personalizzati hanno i seguenti valori supportati: `Number`, `String`, e `Boolean`.

# Gestione dell'indicizzazione degli oggetti
<a name="managing-index"></a>

L'indice creato per tutti i tuoi oggetti è `AWS_Things`. È possibile controllare cosa indicizzare dalle seguenti origini dati: dati di [registro di AWS IoT](thing-registry.md), dati di [AWS IoT Device Shadow ](iot-device-shadows.md), dati di [connettività di AWS IoT](life-cycle-events.md), e dati di violazioni di [AWS IoT Device Defender](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/what-is-device-defender.html).

**Topics**
+ [

## Abilitazione dell'indicizzazione degli oggetti
](#enable-index)
+ [

## Descrizione di un indice dell'oggetto
](#describe-index)
+ [

## Esecuzione di query su un indice di oggetti
](#search-index)
+ [

## Restrizioni e limitazioni
](#index-limitations)
+ [

## Autorizzazione
](#query-auth)

## Abilitazione dell'indicizzazione degli oggetti
<a name="enable-index"></a>

Si utilizza il comando [update-indexing-configuration](https://docs.aws.amazon.com/cli/latest/reference/iot/update-indexing-configuration.html)CLI o l'operazione [UpdateIndexingConfiguration](https://docs.aws.amazon.com/iot/latest/apireference/API_UpdateIndexingConfiguration.html)API per creare l'`AWS_Things`indice e controllarne la configurazione. Il parametro `--thing-indexing-configuration` (`thingIndexingConfiguration`) consente di controllare il tipo di dati indicizzati (ad esempio, registro, copia shadow, dati di connettività del dispositivo e dati di violazioni di Device Defender). 

Il parametro `--thing-indexing-configuration` accetta una stringa con la seguente struttura:

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

### Modalità di indicizzazione delle cose
<a name="index-mode"></a>

È possibile specificare diverse modalità di indicizzazione degli oggetti nella configurazione di indicizzazione, a seconda delle fonti di dati da cui si desidera indicizzare e cercare i dispositivi: 
+ `thingIndexingMode`: controlla se il registro o l'ombra sono indicizzati. Quando `thingIndexingMode` è impostato su be`OFF`, l'indicizzazione degli oggetti è disabilitata.
+ `thingConnectivityIndexingMode`: specifica se i dati di connettività dell'oggetto sono indicizzati.
+ `deviceDefenderIndexingMode`: specifica se i dati delle violazioni di Device Defender sono indicizzati.
+ `namedShadowIndexingMode`: specifica se i dati shadow denominati sono indicizzati. Per selezionare le copie shadow denominate da aggiungere alla configurazione di indicizzazione del parco istanze, imposta `namedShadowIndexingMode` in modo che sia `ON` e specifica i nomi delle copie shadow denominate in [https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html](https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html).

La tabella seguente mostra i valori validi per ogni modalità di indicizzazione e l'origine dati indicizzata per ogni valore.


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

### Campi gestiti e campi personalizzati
<a name="managed-custom-field"></a>

**Campi gestiti**

I campi gestiti contengono dati associati a oggetti, gruppi di oggetti, ombre dei dispositivi, connettività dei dispositivi e violazioni di Device Defender. AWS IoT definisce il tipo di dati nei campi gestiti. Specifica i valori di ogni campo gestito quando crei un oggetto  AWS IoT . Ad esempio i nomi degli oggetti, i gruppi di oggetti e le descrizioni degli oggetti sono tutti campi gestiti. L'indicizzazione del parco istanze indica i campi gestiti in base alla modalità di indicizzazione che specifici. I campi gestiti non possono essere modificati o visualizzati in `customFields`.

**Campi personalizzati**

È possibile aggregare gli attributi, i dati di Device Shadow e i dati delle violazioni di Device Defender creando campi personalizzati per indicizzarli. L'attributo `customFields` è un elenco di coppie di nomi di campi e tipi di dati. È possibile eseguire query di aggregazione in base al tipo di dati. La modalità di indicizzazione che scegli influenza i campi che è possibile specificare in `customFields`. Ad esempio, se si specifica la modalità di indicizzazione `REGISTRY`, non è possibile specificare un campo personalizzato da una copia shadow dell'oggetto. È possibile utilizzare il comando [update-indexing-configuration](https://docs.aws.amazon.com/cli/latest/reference/iot/update-indexing-configuration.html)CLI per creare o aggiornare i campi personalizzati (vedere un comando di esempio in [Aggiornamento degli esempi di configurazione dell'indicizzazione](#update-index-examples)). Per ulteriori informazioni, consulta [Custom fields (Personalizza campi)](managing-fleet-index.md#custom-field).

### Filtro di indicizzazione
<a name="thing-indexing-filter"></a>

Il filtro di indicizzazione fornisce selezioni aggiuntive per ombre denominate e dati di geolocalizzazione. 

**`namedShadowNames`**

Per aggiungere ombre denominate alla configurazione di indicizzazione della flotta, impostate be e specificate i nomi delle ombre denominate `namedShadowIndexingMode` `ON` nel filtro. `namedShadowNames`

**Esempio**

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

`geoLocations`

Per aggiungere dati di geolocalizzazione alla configurazione di indicizzazione della flotta: 
+ Se i dati di geolocalizzazione sono archiviati in un'ombra classica (senza nome), impostala su REGISTRY\$1AND\$1SHADOW e specifica `thingIndexingMode` i dati di geolocalizzazione nel filtro. `geoLocations`

  Il filtro di esempio seguente specifica un oggetto GeoLocation in un'ombra classica (senza nome):

  ```
  "filter": {
       "geoLocations": [
          {
              "name": "shadow.reported.location",
              "order": "LonLat"
          }
       ]
    }
  ```
+ Se i dati di geolocalizzazione sono archiviati in un'ombra denominata, `namedShadowIndexingMode` impostatela su ON, aggiungete il nome dell'ombra nel filtro e specificate i dati di geolocalizzazione nel `namedShadowNames` filtro. `geoLocations`

  Il filtro di esempio riportato di seguito specifica un oggetto GeoLocation in un'ombra denominata (): `nameShadow1`

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

*Per ulteriori informazioni, consulta API [ IndexingFilter](https://docs.aws.amazon.com/iot/latest/apireference/API_IndexingFilter.html)Reference *AWS IoT*.*

### Aggiornamento degli esempi di configurazione di indicizzazione
<a name="update-index-examples"></a>

Per aggiornare la configurazione di indicizzazione, usa il comando CLI AWS IoT **update-indexing-configuration**. Gli esempi seguenti mostrano come utilizzare **update-indexing-configuration**.

Sintassi breve:

```
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}]'
```

Sintassi 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} ] } }'
```

Il comando non produce output.

Per controllare lo stato dell'indice degli oggetti, esegui il comando CLI `describe-index`: 

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

L'output del comando `describe-index` è simile al seguente:

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

**Nota**  
L'indicizzazione del parco istanze può richiedere un momento per aggiornare l'indice del parco istanze. Consigliamo di attendere fino al momento in cui `indexStatus` mostra ACTIVE prima di utilizzarlo. È possibile avere valori diversi nel campo dello schema a seconda delle origini dati configurate. Per ulteriori informazioni, consulta [Describing a thing index (Descrizione di un indice dell'oggetto)](#describe-index).

Per ottenere i dettagli di configurazione dell'indicizzazione delle cose, esegui il comando CLI `get-indexing-configuration`: 

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

L'output del comando `get-indexing-configuration` è simile al seguente:

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

Per aggiornare i campi personalizzati, esegui il comando `update-indexing-configuration`. Di seguito è riportato l'esempio:

```
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}]'
```

Questo comando ha aggiunto `shadow.desired.intensity` alla configurazione di indicizzazione.

**Nota**  
L'aggiornamento della configurazione di indicizzazione dei campi personalizzati sovrascrive tutti i campi personalizzati esistenti. Assicurarsi di specificare tutti i campi personalizzati durante la chiamata a **update-indexing-configuration**.

Dopo che l'indice è stato ricostruito è possibile utilizzare query di aggregazione sui campi appena aggiunti, ricercare dati del registro, dati shadow e dati di stato connettività dell'oggetto.

Quando si modifica la modalità di indicizzazione, assicurarsi che tutti i campi personalizzati siano validi utilizzando la nuova modalità di indicizzazione. Ad esempio, se si inizia con la modalità `REGISTRY_AND_SHADOW` con un campo personalizzato chiamato `shadow.desired.temperature`, è necessario eliminare il campo personalizzato `shadow.desired.temperature` prima di cambiare la modalità di indicizzazione in `REGISTRY`. Se la configurazione di indicizzazione contiene campi personalizzati che non sono indicizzati dalla modalità di indicizzazione, l'aggiornamento non riesce. 

## Descrizione di un indice dell'oggetto
<a name="describe-index"></a>

Il comando seguente mostra come usare il comando dell'interfaccia a riga di comando **describe-index** per recuperare lo stato corrente dell'indice degli oggetti.

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

L'output del comando è simile al seguente:

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

La prima volta che esegui l'indicizzazione della flotta, crea il tuo indice. AWS IoT Non puoi eseguire query sull'indice se `indexStatus` è nello stato `BUILDING`. `schema` per l'indice degli oggetti indica quale tipo di dati (`REGISTRY_AND_SHADOW_AND_CONNECTIVITY_STATUS`) sarà indicizzato.

La modifica della configurazione dell'indice comporta la ricostruzione dell'indice. Durante questo processo, `indexStatus` è `REBUILDING`. È possibile eseguire query sui dati nell'indice degli oggetti, mentre è in fase di ricostruzione. Ad esempio, se modifichi la configurazione dell'indice da `REGISTRY` a `REGISTRY_AND_SHADOW` mentre l'indice è in fase di ricompilazione, puoi eseguire query sui dati del registro, inclusi gli aggiornamenti più recenti. Tuttavia, non puoi eseguire query sui dati shadow fino al completamento della ricompilazione. L'intervallo di tempo necessario per creare o ricostruire l'indice dipende dalla quantità di dati.

È possibile visualizzare valori diversi nel campo dello schema a seconda delle origini dati che hai configurato. La tabella seguente mostra i diversi valori dello schema e le descrizioni corrispondenti:


| Schema | Description | 
| --- | --- | 
| OFF | Nessuna origine dati è configurata o indicizzata. | 
| REGISTRY | I dati di registro sono indicizzati. | 
| REGISTRY\$1AND\$1SHADOW | I dati di registro e i dati shadow (classici) con nome sono indicizzati. | 
| REGISTRY\$1AND\$1CONNETTIVITY | I dati di registro e i dati di connettività sono indicizzati. | 
| REGISTRY\$1AND\$1SHADOW\$1AND\$1CONNECTIVITY\$1STATUS | I dati del registro, i dati shadow senza nome (classici) e i dati di connettività sono indicizzati. | 
| MULTI\$1INDEXING\$1MODE | I dati delle copie shadow con nome o delle violazioni di Device Defender vengono indicizzati, oltre ai dati del registro, delle copie shadow (classiche) senza nome o della connettività. | 

## Esecuzione di query su un indice di oggetti
<a name="search-index"></a>

Utilizzare il comando dell'interfaccia a riga di comando **search-index** per eseguire query dei dati nell'indice.

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

Nella risposta JSON, `"connectivity"`, abilitata dall'impostazione `thingConnectivityIndexingMode=STATUS`, fornisce un valore booleano, un timestamp e un disconnectReason che indica se il dispositivo è collegato ad AWS IoT Core. Il dispositivo `"mything1"` scollegato (`false`) a POSIX time `1556649874716` a causa di `CONNECTION_LOST`. Per ulteriori informazioni sui motivi di disconnessione, consulta [Eventi del ciclo di vita](life-cycle-events.md). 

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

Il dispositivo `"mything2"` connesso (`true`) a POSIX time `1556649855046`:

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

I timestamp vengono forniti in millisecondi dall'epoca, perciò `1556649855046` rappresenta 6:44:15.046 PM di martedì 30 aprile 2019 (GMT).

**Importante**  
Se un dispositivo è stato disconnesso per circa un'ora, il valore `"timestamp"` e il valore `"disconnectReason"` dello stato di connettività potrebbe mancare.

## Restrizioni e limitazioni
<a name="index-limitations"></a>

Queste sono le limitazioni e le restrizioni per `AWS_Things`.

**Campi della copia shadow con valori di tipo complesso**  
Un campo della copia shadow viene indicizzato solo se il relativo valore è un tipo semplice, come un oggetto JSON che non contiene una matrice o una matrice composta interamente da tipi semplici. Per tipo semplice si intende una stringa, un numero o un valore letterale `true` o `false`. Ad esempio, per il seguente stato shadow, il valore del campo `"palette"` non viene indicizzato perché è una matrice che contiene elementi di tipo complesso. Il valore del campo `"colors"` viene indicizzato perché ogni valore della matrice è una stringa.   

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

**Nomi di campi della copia shadow nidificati**  
I nomi dei campi della copia shadow nidificati vengono archiviati come stringa delimitata da punto (.). Ad esempio, dato un documento shadow:  

```
{
  "state": {
    "desired": {
      "one": {
        "two": {
          "three": "v2"
        }
      }
    }    
  }
}
```
Il nome del campo `three` viene archiviato come `desired.one.two.three`. Se sei in possesso di un documento shadow, è archiviato in questo modo:  

```
{
  "state": {
    "desired": {
      "one.two.three": "v2"
    }    
  }
}
```
Entrambi corrispondono a una query per `shadow.desired.one.two.three:v2`. Come best practice, non utilizzare punti nei nomi dei campi shadow.

**Metadati delle copie shadow**  
Un campo nella sezione metadati delle copie shadow viene indicizzato, ma solo se lo è anche il campo corrispondente nella sezione `"state"` della copia shadow. (Nell'esempio precedente, neanche il campo `"palette"` nella sezione dei metadati delle copie shadow verrà indicizzato.)

**Dispositivi non registrati**  
L'indicizzazione del parco istanze consente di indicizzare lo stato di connettività di un dispositivo la cui connessione `clientId` è identica al `thingName` di un oggetto registrato nel [Registro](https://docs.aws.amazon.com//iot/latest/developerguide/thing-registry.html).

**Copie shadow non registrate**  
Se [UpdateThingShadow](https://docs.aws.amazon.com/iot/latest/apireference/API_iotdata_UpdateThingShadow.html)crei un'ombra utilizzando il nome di un oggetto che non è stato registrato nel tuo AWS IoT account, i campi in questa ombra non vengono indicizzati. Questo vale sia per la classica shadow senza nome che per shadow con nome.

**Valori numerici**  
Se eventuali dati del registro o dati shadow vengono riconosciuti dal servizio come valori numerici, verranno indicizzati come tali. Puoi formulare delle query che includono intervalli e operatori di confronto in merito ai valori numerici, ad esempio `"attribute.foo<5"` o `"shadow.reported.foo:[75 TO 80]"`. Per essere riconosciuto come numerico, il valore dei dati deve essere un numero JSON di tipo letterale valido. Il valore può essere un numero intero compreso nell'intervallo -2^53...2^53-1 o in virgola mobile a precisione doppia con notazione esponenziale opzionale, oppure una parte di una serie contenente solo questi valori. 

**Valori nulli**  
I valori nulli non sono indicizzati.

**Valori massimi**  
Il numero massimo di campi personalizzati per le query di aggregazione è 5.  
Il numero massimo di percentili richiesti per le query di aggregazione è 100.

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

Puoi specificare l'indice degli oggetti come Amazon Resource Name (ARN) in un'azione AWS IoT politica, come segue.


****  

| Azione | Risorsa | 
| --- | --- | 
|  `iot:SearchIndex`  |  Un indice ARN (ad esempio, `arn:aws:iot:your-aws-regionyour-aws-account:index/AWS_Things`).  | 
|  `iot:DescribeIndex`  |  Un indice ARN (ad esempio, `arn:aws:iot:your-aws-region:index/AWS_Things`).  | 

**Nota**  
Se si dispone di autorizzazioni per eseguire query all'indice del parco istanze, è possibile accedere ai dati degli oggetti sull'intero parco istanze.

# Gestione dell'indicizzazione di gruppi di oggetti
<a name="thinggroup-index"></a>

`AWS_ThingGroups` è l'indice che contiene tutti i tuoi gruppi di oggetti. Questo indice consente di cercare gruppi in base al nome del gruppo, alla descrizione, agli attributi e a tutti i nomi del gruppo padre.

## Abilitazione dell'indicizzazione di gruppi di oggetti
<a name="enable-group-index"></a>

Puoi utilizzare l'`thing-group-indexing-configuration`impostazione nell'[UpdateIndexingConfiguration](https://docs.aws.amazon.com/iot/latest/apireference/API_UpdateIndexingConfiguration.html)API per creare l'`AWS_ThingGroups`indice e controllarne la configurazione. È possibile utilizzare l'[GetIndexingConfiguration](https://docs.aws.amazon.com/iot/latest/apireference/API_GetIndexingConfiguration.html)API per recuperare la configurazione di indicizzazione corrente. 

Per aggiornare le configurazioni dell'indicizzazione dei gruppi di oggetti, esegui il comando CLI **update-indexing-configuration**:

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

Puoi inoltre aggiornare le configurazioni per l'indicizzazione sia degli oggetti che dei gruppi di oggetti con un unico comando, come descritto di seguito:

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

Di seguito sono riportati i valori validi per `thingGroupIndexingMode`.

OFF  
Nessun indice. indexing/delete 

ATTIVATO  
Creazione o configurazione dell'indice `AWS_ThingGroups`.

Utilizzare il comando CLI **get-indexing-configuration** per recuperare l'attuale oggetto e le configurazioni di indicizzazione del gruppo di oggetti:

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

La risposta del comando è simile alla seguente:

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

## Descrizione degli indici di gruppi
<a name="describe-group-index"></a>

Per recuperare lo stato corrente dell'indice `AWS_ThingGroups`, utilizzare il comando CLI **describe-index**:

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

La risposta del comando è simile alla seguente:

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

 AWS IoT crea l'indice la prima volta che esegui l'indicizzazione. Non è possibile eseguire query dell'indice se `indexStatus` è `BUILDING`.

## Esecuzione di query su un indice di gruppi di oggetti
<a name="search-group-index"></a>

Utilizzare il comando CLI **search-index** per eseguire query dei dati nell'indice:

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

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

È possibile specificare l'indice dei gruppi di oggetti come ARN di risorse in un'azione AWS IoT politica, come segue.


****  

| Azione | Risorsa | 
| --- | --- | 
|  `iot:SearchIndex`  |  Un indice ARN (ad esempio, `arn:aws:iot:your-aws-region:index/AWS_ThingGroups`).  | 
|  `iot:DescribeIndex`  |  Un indice ARN (ad esempio, `arn:aws:iot:your-aws-region:index/AWS_ThingGroups`).  | 

# Interrogazioni sullo stato della connettività dei dispositivi
<a name="device-connectivity-status"></a>

AWS IoT Fleet Indexing supporta l'interrogazione della connettività dei singoli dispositivi, consentendoti di recuperare in modo efficiente lo stato della connettività e i relativi metadati per dispositivi specifici. Questa funzionalità integra le funzionalità di indicizzazione e interrogazione esistenti a livello di flotta.

## Come funziona
<a name="w2aac37c21b5"></a>

Il supporto per le query di connettività dei dispositivi può essere utilizzato per il recupero ottimizzato dello stato di connettività di un singolo dispositivo. Questa API fornisce un accesso a bassa latenza e ad alta velocità effettiva alle informazioni di connettività specifiche del dispositivo più recenti. Una volta abilitata l'indicizzazione della connettività, avrai accesso a questa API di query che verrà addebitata come query standard. [Per ulteriori informazioni, consulta AWS IoT i prezzi di Device Management](https://aws.amazon.com/iot-device-management/pricing/#:~:text=Search%20queries%20(per%2010%2C000%20queries))

## Funzionalità
<a name="w2aac37c21b7"></a>

Con il supporto per le richieste di connettività dei dispositivi, puoi:

1. Interroga lo stato di connettività corrente (connesso o disconnesso) per un determinato dispositivo utilizzando il suo`thingName`.

1. Recupera metadati di connettività aggiuntivi, tra cui:

   1. Motivo di disconnessione

   1. Timestamp per l'evento di connessione o disconnessione più recente.

**Nota**  
L'indicizzazione del parco istanze consente di indicizzare lo stato di connettività di un dispositivo la cui connessione `clientId` è identica al `thingName` di un oggetto registrato nel [Registro](https://docs.aws.amazon.com/iot/latest/developerguide/thing-registry.html).

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

1. **Bassa latenza:** riflette lo stato di connettività del dispositivo più recente e offre una bassa latenza per riflettere le modifiche dello stato di connessione rispetto a IoT Core. IoT Core determina che un dispositivo è disconnesso non appena riceve una richiesta di disconnessione dal dispositivo o nel caso in cui un dispositivo si disconnetta senza inviare una richiesta di disconnessione. Il core IoT attenderà 1,5 volte il tempo di keep-alive configurato prima che il client venga determinato come disconnesso. L'API Connectivity status rifletterà queste modifiche in genere entro un secondo dopo che IoT Core determina la modifica dello stato di connessione di un dispositivo.

1. **Throughput elevato:** supporta 350 transazioni al secondo (TPS) per impostazione predefinita e può essere impostato su un valore superiore su richiesta.

1. **Conservazione dei dati:** memorizza i dati degli eventi a tempo indeterminato quando la ConnectivityIndexing modalità Fleet Indexing (FI) è abilitata e l'oggetto non viene eliminato. Se disabiliti l'indicizzazione della connettività, i record non verranno conservati.

**Nota**  
Se l'indicizzazione dello stato di connettività era abilitata prima del lancio di questa API, Fleet Indexing inizia a tenere traccia delle modifiche allo stato della connettività dopo il lancio dell'API e riflette lo stato aggiornato in base a tali modifiche.

## Prerequisiti
<a name="w2aac37c21c11"></a>

Per utilizzare il supporto per le query di connettività del dispositivo:

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

1. Effettua l'onboarding e registra i dispositivi AWS IoT Core nella tua regione preferita

1. [Abilita l'indicizzazione del parco veicoli con l'indicizzazione della connettività](https://docs.aws.amazon.com/iot/latest/developerguide/managing-index.html)

**Nota**  
Non è richiesta alcuna configurazione aggiuntiva se l'indicizzazione della connettività è già abilitata

[Per istruzioni dettagliate sulla configurazione, consulta la Guida per gli sviluppatori AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/setting-up.html)

## Esempi
<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`: il nome del dispositivo indicato nella richiesta. Corrisponde anche al ClientID utilizzato per la connessione. AWS IoT Core
+ `disconnectReason`: Motivo della disconnessione. Sarà NONE per un dispositivo connesso.
+ `connected`: Il valore booleano true che indica che questo dispositivo è attualmente connesso.
+ `timestamp`: Il timestamp che rappresenta la disconnessione più recente del dispositivo in millisecondi.

```
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`: il nome del dispositivo indicato nella richiesta. Corrisponde anche al ClientID utilizzato per la connessione. AWS IoT Core
+ `disconnectReason`: Il motivo della disconnessione è CLIENT\$1INITIATED\$1DISCONNECT che indica il client indicato che si sarebbe disconnesso. AWS IoT Core 
+ `connected`: Il valore booleano false che indica che questo dispositivo è attualmente disconnesso.
+ `timestamp`: Il timestamp che rappresenta la disconnessione più recente del dispositivo in millisecondi.

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

```
{
   "connected": false,
   "disconnectReason": "UNKNOWN",
   "thingName": "neverConnectedThing"
}
```
+ `thingName`: il nome del dispositivo indicato nella richiesta. Corrisponde anche al ClientID utilizzato per la connessione. AWS IoT Core
+ `disconnectReason`: Motivo della disconnessione. Sarà «SCONOSCIUTO» per un dispositivo che non è mai stato connesso o per il quale Fleet Indexing non ha memorizzato l'ultimo motivo di disconnessione. 
+ `connected`: Il valore booleano false che indica che questo dispositivo è attualmente disconnesso. 
+ `timestamp`: Il timestamp non viene restituito per un dispositivo che non è mai stato connesso o per il quale Fleet Indexing non ha l'ultimo timestamp memorizzato. 

# Interrogazione di dati aggregati
<a name="index-aggregate"></a>

AWS IoT fornisce quattro APIs (`GetStatistics`, `GetCardinality``GetPercentiles`, e`GetBucketsAggregation`) che consentono di cercare dati aggregati nel parco dispositivi. 

**Nota**  
 Per problemi relativi ai valori mancanti o imprevisti per l'aggregazione APIs, leggi la guida alla risoluzione dei problemi di [indicizzazione del parco veicoli](fleet-indexing-troubleshooting.md). 

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

L'[GetStatistics](https://docs.aws.amazon.com/iot/latest/apireference/API_GetStatistics.html)API e il comando **get-statistics** CLI restituiscono il conteggio, la media, la somma, il minimo, il massimo, la somma dei quadrati, la varianza e la deviazione standard per il campo aggregato specificato.

Il comando CLI **get-statistics** accetta i parametri seguenti:

`index-name`  
Nome dell'indice su cui eseguire una ricerca. Il valore predefinito è `AWS_Things`.

`query-string`  
La query usata per eseguire la ricerca nell'indice. Puoi specificare di ottenere il conteggio `"*"` di tutte le cose indicizzate nel tuo. Account AWS

`aggregationField`  
(Facoltativo) Il campo da aggregare. Questo campo deve essere un campo gestito o personalizzato definito quando si chiama **update-indexing-configuration**. Se non specifichi un campo di aggregazione, viene utilizzato `registry.version` come campo di aggregazione.

`query-version`  
La versione della query da usare. Il valore predefinito è `2017-09-30`.

Il tipo di campo di aggregazione può influenzare le statistiche restituite. 

### GetStatistics con valori di stringa
<a name="string-aggregation"></a>

Se si aggrega in un campo stringa, la chiamata `GetStatistics` restituisce un conteggio di dispositivi con attributi che corrispondono alla query. Ad esempio:

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

Questo comando restituisce il numero di dispositivi che contengono un attributo denominato `stringAttribute`:

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

### GetStatistics con valori booleani
<a name="boolean-aggregation"></a>

Quando chiami `GetStatistics` con un campo di aggregazione booleano:
+ AVERAGE è la percentuale di dispositivi che corrispondono alla query.
+ MINIMUM è 0 o 1 secondo le seguenti regole:
  + Se tutti i valori per il campo di aggregazione sono `false`, MINIMUM è 0.
  + Se tutti i valori per il campo di aggregazione sono `true`, MINIMUM è 1.
  + Se i valori per il campo di aggregazione sono una miscela di `false` e `true`, MINIMUM è 0.
+ MAXIMUM è 0 o 1 secondo le seguenti regole:
  + Se tutti i valori per il campo di aggregazione sono `false`, MAXIMUM è 0.
  + Se tutti i valori per il campo di aggregazione sono `true`, MAXIMUM è 1.
  + Se i valori per il campo di aggregazione sono una miscela di `false` e `true`, MAXIMUM è 1.
+ SUM è la somma dell'equivalente intero dei valori booleani.
+ COUNT è il numero di oggetti che corrispondono ai criteri della stringa di query e contengono un valore di campo di aggregazione valido.

### GetStatistics con valori numerici
<a name="numerical-aggregation"></a>

Quando si chiama `GetStatistics` e si specifica un campo di aggregazione di tipo `Number`, `GetStatistics` restituisce i seguenti valori:

count  
Numero di oggetti che corrispondono ai criteri della stringa di query e contengono un valore di campo di aggregazione valido.

average  
La media dei valori numerici che corrispondono alla query.

sum  
La somma dei valori numerici che corrispondono alla query.

minimum  
Il più piccolo dei valori numerici che corrisponde alla query.

maximum  
Il più grande dei valori numerici che corrisponde alla query.

sumOfSquares  
La somma dei quadrati dei valori numerici che corrispondono alla query.

variance  
La varianza dei valori numerici che corrispondono alla query. La varianza di un insieme di valori è la media dei quadrati delle differenze di ciascun valore rispetto al valore medio del set.

stdDeviation  
La deviazione standard dei valori numerici che corrispondono alla query. La deviazione standard di un insieme di valori è una misura di quanto sono distribuiti i valori.

Nell'esempio seguente viene illustrato come chiamare **get-statistics** con un campo personalizzato numerico.

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

Per i campi di aggregazione numerica, se i valori dei campi superano il valore doppio massimo, i valori delle statistiche sono vuoti.

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

L'[GetCardinality](https://docs.aws.amazon.com/iot/latest/apireference/API_GetCardinality.html)API e il comando **get-cardinality** CLI restituiscono il conteggio approssimativo di valori univoci che corrispondono alla query. Ad esempio, potresti cercare il numero di dispositivi con livelli di batteria inferiori al 50%:

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

Questo comando restituisce il numero di elementi con livelli di batteria oltre il 50%:

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

`cardinality` viene sempre restituito da **get-cardinality** anche se non ci sono campi corrispondenti. Ad esempio:

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

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

Il comando CLI **get-cardinality** accetta i parametri seguenti:

`index-name`  
Nome dell'indice su cui eseguire una ricerca. Il valore predefinito è `AWS_Things`.

`query-string`  
La query usata per eseguire la ricerca nell'indice. Puoi specificare di `"*"` ottenere il conteggio di tutte le cose indicizzate nel tuo. Account AWS

`aggregationField`  
Il campo da aggregare.

`query-version`  
La versione della query da usare. Il valore predefinito è `2017-09-30`.

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

L'[GetPercentiles](https://docs.aws.amazon.com/iot/latest/apireference/API_GetPercentiles.html)API e il comando **get-percentiles** CLI raggruppano i valori aggregati che corrispondono alla query in raggruppamenti percentili. I raggruppamenti percentili predefiniti sono: 1, 5, 25, 50, 75, 95, 99, anche se è possibile specificare il proprio quando si chiama `GetPercentiles`. Questa funzione restituisce un valore per ogni gruppo percentile specificato (o i raggruppamenti percentili predefiniti). Il gruppo percentile "1" contiene il valore del campo aggregato che si verifica in circa l'1% dei valori corrispondenti alla query. Il gruppo percentile "5" contiene il valore del campo aggregato che si verifica in circa il cinque percento dei valori corrispondenti alla query e così via. Il risultato è un'approssimazione, più valori corrispondono alla query, più precisi sono i valori percentili.

Nell'esempio seguente viene illustrato come chiamare il comando CLI **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
        }
    ]
}
```

Il comando seguente mostra l'output restituito da **get-percentiles** quando non ci sono documenti corrispondenti.

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

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

Il comando CLI **get-percentile** accetta i parametri seguenti:

`index-name`  
Nome dell'indice su cui eseguire una ricerca. Il valore predefinito è `AWS_Things`.

`query-string`  
La query usata per eseguire la ricerca nell'indice. Puoi specificare di `"*"` ottenere il conteggio di tutte le cose indicizzate nel tuo. Account AWS

`aggregationField`  
Il campo da aggregare, che deve essere di tipo `Number`.

`query-version`  
La versione della query da usare. Il valore predefinito è `2017-09-30`.

`percents`  
(Facoltativo) È possibile utilizzare questo parametro per specificare raggruppamenti percentili personalizzati.

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

L'[GetBucketsAggregation](https://docs.aws.amazon.com/iot/latest/apireference/API_GetBucketsAggregation.html)API e il comando **get-buckets-aggregation** CLI restituiscono un elenco di bucket e il numero totale di elementi che soddisfano i criteri della stringa di query.

Nell'esempio seguente viene illustrato come chiamare il comando CLI 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}'
```

Questo comando restituisce quanto segue:

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

Il comando CLI get-buckets-aggregation accetta i parametri seguenti:

`index-name`  
Nome dell'indice su cui eseguire una ricerca. Il valore predefinito è `AWS_Things`.

`query-string`  
La query usata per eseguire la ricerca nell'indice. Puoi specificare di `"*"` ottenere il conteggio di tutte le cose indicizzate nel tuo. Account AWS

`aggregation-field`  
Il campo da aggregare.

`buckets-aggregation-type`  
Il controllo di base della forma di risposta e il tipo di aggregazione del bucket da eseguire.

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

È possibile specificare l'indice dei gruppi di oggetti come ARN di risorse in un'azione AWS IoT politica, come segue.


| Azione | Risorsa | 
| --- | --- | 
|  `iot:GetStatistics`  |  Un indice ARN (ad esempio `arn:aws:iot:your-aws-region:index/AWS_Things` o `arn:aws:iot:your-aws-region:index/AWS_ThingGroups`).  | 

# Sintassi delle query
<a name="query-syntax"></a>

Nell'indicizzazione del parco istanze, si utilizza una sintassi di query per specificare le query.

## Funzionalità supportate
<a name="supported-query-syntax"></a>

La sintassi di query supporta le seguenti caratteristiche:
+ Termini e frasi
+ Ricerca nei campi
+ Ricerca di prefissi
+ Ricerca di intervalli
+ Operatori booleani `AND`, `OR`, `NOT` e `–`. Il trattino viene utilizzato per escludere qualcosa dai risultati di ricerca (ad esempio, `thingName:(tv* AND -plasma)`).
+ Raggruppamento
+ Raggruppamento di campi
+ Caratteri di escape speciali (come con *\$1*)
+ L'uso principale dei caratteri jolly è limitato a 1 termine di query per query. Ad esempio, non è possibile cercare «`thingName:*my`e» `thingGroupNames:*echo` nella stessa query. Le interrogazioni che includono un carattere jolly iniziale hanno una lunghezza massima di 100 caratteri.
**Nota**  
 Gli account con un limite API di query Fleet Indexing superiore a 30 richieste al secondo sono soggetti a limitazioni quando utilizzano i termini di query principali con wildcard. Questo requests-per-second limite di 30 si applica a livello di account per tutte le query di Fleet Indexing. APIs 

## Caratteristiche non supportate
<a name="unsupported-query-syntax"></a>

La sintassi di query non supporta le seguenti caratteristiche:
+ Espressioni regolari
+ Aumento priorità
+ Classificazione
+ Ricerche fuzzy
+ Ricerca per prossimità
+ Ordinamento
+ Aggregazione
+ Caratteri speciali: ```, `@`, `#`, `%`, `\`, `/`, `'`, `;` e `,`. Tieni presente che `,` è supportato solo nelle geoquery.

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

Alcune note relative al linguaggio di query:
+ L'operatore predefinito è AND. Una query per `"thingName:abc thingType:xyz"` equivale a `"thingName:abc AND thingType:xyz"`.
+ Se non viene specificato un campo, AWS IoT cerca il termine in tutti i campi del Registro di sistema, Device Shadow e Device Defender.
+ Tutti i nomi di campo fanno distinzione tra maiuscole e minuscole.
+ La ricerca non fa distinzione tra maiuscole e minuscole. Le parole sono separate da spazi come definito dal metodo di Java `Character.isWhitespace(int)`.
+ L'indicizzazione di dati Device Shadow (shadow senza nome e shadow con nome) include le sezioni reported, desired, delta e metadata.
+ Non è possibile eseguire ricerche nelle versioni Device Shadow e del registro dei dispositivi, ma queste sono presenti nella risposta.
+ Il numero massimo di termini in una query è 12.
+ Il carattere speciale `,` è supportato solo nelle geoquery.

# Esempio di query per oggetti
<a name="example-queries"></a>

Specificare query in una stringa di query utilizzando una sintassi di query. Le query vengono passate all'API [https://docs.aws.amazon.com/iot/latest/apireference/API_SearchIndex.html](https://docs.aws.amazon.com/iot/latest/apireference/API_SearchIndex.html). La tabella seguente elenca alcune stringhe di query di esempio.


| Stringa di query | Risultato | 
| --- | --- | 
|  abc  |  Esegue una query per il valore "abc" in qualsiasi campo di registro, copia shadow (copia shadow classica senza nome e copia shadow con nome) o violazioni Device Defender.  | 
|  thingName:myThingName  |  Interrogazioni per un oggetto con nome "». myThingName  | 
|  thingName:my\$1  |  Query per oggetti con nomi che iniziano per "mio".  | 
|  thingName:\$1my  |  Interrogazioni relative a elementi con nomi che terminano con «my». L'uso principale dei caratteri jolly è limitato a 1 termine di query per query. Le interrogazioni che includono un carattere jolly iniziale hanno una lunghezza massima di 100 caratteri.  | 
|  thingName:\$1my\$1  |  Interrogazioni per elementi che contengono la sottostringa «my». L'uso principale dei caratteri jolly è limitato a 1 termine di query per query. Le interrogazioni che includono un carattere jolly iniziale hanno una lunghezza massima di 100 caratteri.  | 
|  thingName:ab?  |  Query per oggetti con nomi che contengono "ab" più un altro carattere (ad esempio "aba", "abb", "abc" e così via).  | 
|  thingTypeName:aa  |  Query per oggetti associati al tipo "aa".  | 
|  thingGroupNames:a  | Interrogazioni relative a elementi il cui nome del gruppo di oggetti principale o del gruppo di fatturazione è «a». | 
|  thingGroupNames:a\$1  | Interrogazioni relative a elementi il cui nome del gruppo di oggetti principale o del gruppo di fatturazione corrisponde allo schema «a\$1». | 
|  attributes.myAttribute:75  |  Query per oggetti con un attributo denominato "myAttribute" il cui valore è 75.  | 
|  attributes.myAttribute:[75 TO 80]  |  Query per oggetti con un attributo denominato "myAttribute" il cui valore è compreso in un intervallo numerico (75-80, inclusi).  | 
|  attributes.myAttribute:\$175 TO 80]  |  Query per oggetti con un attributo denominato "myAttribute" il cui valore è compreso in un intervallo numerico (>75 e <=80).  | 
|  attributes.serialNumber:["abcd" TO "abcf"]  |  Query per oggetti con un attributo denominato "serialNumber" il cui valore è compreso in un intervallo di stringhe alfanumeriche. Questa query restituisce gli oggetti con un attributo "serialNumber" con i valori "abcd", "abce" o "abcf".  | 
|  attributes.myAttribute:i\$1t |  Query per oggetti con un attributo denominato "myAttribute" il cui valore è "i", seguito da un numero qualsiasi di caratteri, seguito da 't'.  | 
|  attributes.attr1:abc AND attributes.attr2<5 NOT attributes.attr3>10  |  Query per oggetti che combinano termini usando espressioni booleane. Questa query restituisce gli oggetti che hanno un attributo denominato "attr1" con un valore "abc", un attributo denominato "attr2" il cui valore è minore di 5 e un attributo denominato "attr3" che non è maggiore di 10.  | 
|  shadow.hasDelta:true  |  Query per oggetti con una copia shadow senza nome che ha un elemento delta.  | 
|  NOT attributes.model:legacy  |  Query per oggetti in cui l'attributo denominato "model" non è "legacy".  | 
|  shadow.reported.stats.battery:\$170 TO 100\$1 (v2 OR v3) NOT attributes.model:legacy  |  Query per oggetti con le caratteristiche seguenti: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/example-queries.html)  | 
|  shadow.reported.myvalues:2  |  Query per oggetti in cui la serie `myvalues` nella sezione reported della copia shadow contiene un valore pari a 2.  | 
|  shadow.reported.location:\$1 NOT shadow.desired.stats.battery:\$1  |  Query per oggetti con le caratteristiche seguenti: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/example-queries.html)  | 
|  shadow.name.<shadowName>.hasDelta:true  |  Query per oggetti che hanno una copia shadow con nome specificato e anche un elemento delta.   | 
|  shadow.name.<shadowName>.desired.filament:\$1  |  Query per oggetti che hanno una copia shadow con nome specificato e anche una proprietà del filamento desiderata.   | 
|  shadow.name.<shadowName>.reported.location:\$1  |  Query per oggetti che hanno una copia shadow con nome specificato e dove l'attributo `location` è presente nella sezione segnalata di shadow con nome.  | 
|  connectivity.connected:true  |  Interroga tutti i dispositivi connessi.  | 
|  connectivity.connected:false  | Interroga tutti i dispositivi disconnessi. | 
|  connectivity.connected:true AND connectivity.timestamp : [1557651600000 TO 1557867600000]  | Interroga tutti i dispositivi connessi con un timestamp di connessione >= 1557651600000 e <= 1557867600000. I timestamp vengono forniti in millisecondi dall'epoch. | 
|  connectivity.connected:false AND connectivity.timestamp : [1557651600000 TO 1557867600000]  | Interroga tutti i dispositivi disconnessi con un timestamp di disconnessione >= 1557651600000 e <= 1557867600000. I timestamp vengono forniti in millisecondi dall'epoch. | 
|  connectivity.connected:true AND connectivity.timestamp > 1557651600000  | Interroga tutti i dispositivi connessi con un timestamp di connessione > 557651600000. I timestamp vengono forniti in millisecondi dall'epoch. | 
|  connectivity.connected:\$1  | Ricerche di tutti i dispositivi con informazioni sulla connettività. | 
|  connectivity.disconnectReason:\$1  | Query per tutti i dispositivi con connettività disconnectReason presente. | 
|  connectivity.disconnectReason:CLIENT\$1INITIATED\$1DISCONNECT  | Query per tutti i dispositivi disconnessi a causa di CLIENT\$1INITIATED\$1DISCONNECT. | 
|  deviceDefender.violationCount:[0 TO 100]  | Le query per oggetti con violazioni di Device Defender contano valori che rientrano nell'intervallo numerico (0-100, incluso).  | 
|  deviceDefender.<device-SecurityProfile>.disconnectBehavior.inViolation:true  | Query per oggetti che sono in violazione del comportamento disconnectBehavior come definito nel profilo di sicurezza device-SecurityProfile. Nota che InViolation:false non è una query valida.  | 
|  deviceDefender.<device-SecurityProfile>.disconnectBehavior.lastViolationValue.number>2  | Interrogazioni relative a elementi che violano il comportamento disconnectBehavior definito nel dispositivo del profilo di sicurezza, SecurityProfile con un valore dell'evento dell'ultima violazione maggiore di 2.  | 
|  deviceDefender.<device-SecurityProfile>.disconnectBehavior.lastViolationTime>1634227200000  |  Interrogazioni relative a elementi che violano il comportamento `disconnectBehavior` definito nel dispositivo del profilo di sicurezza, SecurityProfile con un ultimo evento di violazione dopo un periodo di tempo specificato.   | 
|  shadow.name.gps-tracker.reported.coordinates:geo\$1distance,47.6204,-122.3491,15.5km | Interrogazioni per oggetti che si trovano entro la distanza radiale di 15,5 km dalle coordinate di 47.6204, -122.3491. Questa stringa di query si applica a quando i dati sulla posizione vengono archiviati in un'ombra denominata. | 
|  shadow.reported.coordinates:geo\$1distance,47.6204,-122.3491,15.5km | Interrogazioni per oggetti che si trovano entro la distanza radiale di 15,5 km dalle coordinate di 47.6204, -122.3491. Questa stringa di query si applica a quando i dati sulla posizione vengono archiviati in un'ombra classica. | 

# Esempio di query per gruppi di oggetti
<a name="example-thinggroup-queries"></a>

Le query vengono specificate in una stringa di query usando una sintassi di query, quindi vengono passate all'API [https://docs.aws.amazon.com/iot/latest/apireference/API_SearchIndex.html](https://docs.aws.amazon.com/iot/latest/apireference/API_SearchIndex.html). La tabella seguente elenca alcune stringhe di query di esempio.


| Stringa di query | Risultato | 
| --- | --- | 
|  abc  |  Query per "abc" in qualsiasi campo.  | 
|  thingGroupName:myGroupThingName  |  Interrogazioni per un gruppo di oggetti con nome "myGroupThingNome».  | 
|  thingGroupName:my\$1  |  Query per gruppi di oggetti con nomi che iniziano per "my".  | 
|  thingGroupName:ab?  |  Query per gruppi di oggetti con nomi che contengono "ab" più un altro carattere, ad esempio "aba", "abb", "abc" e così via.  | 
|  attributes.myAttribute:75  |  Query per gruppi di oggetti con un attributo denominato "myAttribute" il cui valore è 75.  | 
|  attributes.myAttribute:[75 TO 80]  |  Query per gruppi di oggetti con un attributo denominato "myAttribute" il cui valore è compreso in un intervallo numerico (75-80, inclusi).  | 
|  attributes.myAttribute:[75 TO 80]  |  Query per gruppi di oggetti con un attributo denominato "myAttribute" il cui valore è compreso in un intervallo numerico (tra >75 e <=80).  | 
|  attributes.myAttribute:["abcd" TO "abcf"]  |  Query per gruppi di oggetti con un attributo denominato "myAttribute" il cui valore è compreso in un intervallo di stringhe alfanumeriche. Questa query restituisce i gruppi di oggetti con un attributo "serialNumber" con i valori "abcd", "abce" o "abcf".  | 
|  attributes.myAttribute:i\$1t  |  Query per gruppi di oggetti con un attributo denominato "myAttribute" il cui valore è "i", seguito da un numero qualsiasi di caratteri, seguito da "t".  | 
|  attributes.attr1:abc AND attributes.attr2<5 NOT attributes.attr3>10  |  Query per gruppi di oggetti che combinano termini usando espressioni booleane. Questa query restituisce i gruppi di oggetti che hanno un attributo denominato "attr1" con un valore "abc", un attributo denominato "attr2" il cui valore è minore di 5 e un attributo denominato "attr3" che non è maggiore di 10.  | 
|  NOT attributes.myAttribute:cde  |  Query per gruppi di oggetti in cui l'attributo denominato "myAttribute" non è "cde".  | 
|  parentGroupNames:(myParentThingGroupName)  |   Interrogazioni per gruppi di oggetti il cui nome del gruppo principale corrisponde a "» myParentThingGroupName.  | 
|  parentGroupNames:(myParentThingGroupName OR myRootThingGroupName)  |  Interrogazioni per gruppi di oggetti il cui nome del gruppo principale corrisponde a "myParentThingGroupName" o "» myRootThingGroupName.  | 
|  parentGroupNames:(myParentThingGroupNa\$1)  |  Interrogazioni per gruppi di cose il cui nome del gruppo principale inizia con "» myParentThingGroupNa.  | 

# Indicizzazione dei dati sulla posizione
<a name="location-indexing-geoquery"></a>

Puoi utilizzare l'indicizzazione del [AWS IoT parco veicoli per indicizzare](https://docs.aws.amazon.com//iot/latest/developerguide/iot-indexing.html) gli ultimi dati sulla posizione inviati dai tuoi dispositivi e cercare i dispositivi utilizzando le geoquery. Questa funzionalità risolve casi d'uso per il monitoraggio e la gestione dei dispositivi come il tracciamento della posizione e la ricerca di prossimità. [L'indicizzazione della posizione funziona in modo simile ad altre funzionalità di indicizzazione del parco veicoli e prevede configurazioni aggiuntive da specificare nell'indicizzazione degli oggetti.](managing-fleet-index.md) 

I casi d'uso più comuni includono: ricerca e aggregazione di dispositivi situati entro i confini geografici desiderati, acquisizione di informazioni specifiche sulla posizione utilizzando termini di query relativi ai metadati e allo stato del dispositivo da fonti di dati indicizzate, fornitura di una visualizzazione granulare, ad esempio filtrando i risultati in base a un'area geografica specifica per ridurre i ritardi di rendering nelle mappe di monitoraggio del parco veicoli e tracciare l'ultima posizione del dispositivo segnalata, identificare i dispositivi che si trovano al di fuori dei limiti di confine desiderati e generare allarmi utilizzando le [metriche della flotta](iot-fleet-metrics.md). Per iniziare con l'indicizzazione della posizione e le geoquery, consulta[Tutorial sulle nozioni di base](location-indexing-tutorial.md).

## Formati di dati supportati
<a name="location-indexing-format"></a>

AWS IoT l'indicizzazione della flotta supporta i seguenti formati di dati sulla posizione:

1. 

**Rappresentazione testuale ben nota dei sistemi di riferimento di coordinate**

   Una stringa che segue il formato [Informazioni geografiche - Rappresentazione testuale ben nota dei sistemi di riferimento di coordinate](https://docs.ogc.org/is/12-063r5/12-063r5.html). Un esempio può essere`"POINT(long lat)"`.

1. 

**Una stringa che rappresenta le coordinate**

   Una stringa con il formato `"latitude, longitude"` o`"longitude, latitude"`. Se si utilizza`"longitude, latitude"`, è necessario specificare anche `order` in`geoLocations`. Un esempio può essere`"41.12,-71.34"`.

1. 

**Un oggetto composto da tasti lat (latitudine), lon (longitudine)**

   Questo formato è applicabile all'ombra classica e all'ombra denominata. Chiavi supportate: `lat``latitude`,`lon`,,`long`,`longitude`. Un esempio può essere`{"lat": 41.12, "lon": -71.34}`.

1. 

**Un array che rappresenta le coordinate**

   Una matrice con il formato `[lat,lon]` o`[lon,lat]`. Se si utilizza il formato`[lon,lat]`, che è lo stesso delle coordinate in [GeoJSON](https://geojson.org/) (applicabile all'ombra classica e all'ombra denominata), è necessario specificare anche in. `order` `geoLocations`

   Un esempio può essere:

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

## Come indicizzare i dati sulla posizione
<a name="location-indexing-steps"></a>

I passaggi seguenti mostrano come aggiornare la configurazione di indicizzazione per i dati sulla posizione e utilizzare le geoquery per cercare dispositivi.

1. 

**Scopri dove sono archiviati i dati sulla tua posizione**

   L'indicizzazione della flotta attualmente supporta l'indicizzazione dei dati sulla posizione memorizzati nelle ombre classiche o nelle ombre denominate.

1. 

**Utilizza i formati di dati sulla posizione supportati**

   Assicurati che il formato dei dati sulla posizione segua uno dei [formati di dati supportati](#location-indexing-format).

1. 

**Aggiorna la configurazione di indicizzazione**

   Se necessario, abilita la configurazione di indicizzazione di thing (registry). È inoltre necessario abilitare l'indicizzazione su shadow classic o named shadow che contengono i dati sulla posizione. Quando si aggiorna l'indicizzazione degli oggetti, è necessario includere i dati sulla posizione nella configurazione di indicizzazione.

1. 

**Crea ed esegui geoquery**

   A seconda dei casi d'uso, crea geoquery ed eseguile per cercare dispositivi. [La geoquery che componi deve seguire la sintassi Query.](https://docs.aws.amazon.com//iot/latest/developerguide/query-syntax.html) Alcuni esempi sono disponibili in [Geoquery di esempio](#location-indexing-geoqueries).

## Aggiorna la configurazione di indicizzazione degli oggetti
<a name="location-indexing-configuration"></a>

Per indicizzare i dati sulla posizione, è necessario aggiornare la configurazione di indicizzazione e includere i dati sulla posizione. A seconda di dove sono archiviati i dati sulla posizione, segui i passaggi per aggiornare la configurazione di indicizzazione:

### Dati sulla posizione memorizzati nelle ombre classiche
<a name="location-indexing-shadow-configuration"></a>

Se i dati sulla posizione sono memorizzati in un'ombra classica, è `thingIndexingMode` necessario `REGISTRY_AND_SHADOW` impostarli e specificarli nei `geoLocations` campi (`name`e`order`) in [https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html](https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html).

Nel seguente esempio di configurazione di indicizzazione degli oggetti, specificate il percorso dei dati sulla posizione `shadow.reported.coordinates` così `name` e `LonLat` come. `order`

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

  La modalità di indicizzazione controlla se il registro o lo shadow sono indicizzati. Quando `thingIndexingMode` è impostato su be`OFF`, l'indicizzazione degli oggetti è disabilitata. 

  Per indicizzare i dati sulla posizione memorizzati in un'ombra classica, è necessario `thingIndexingMode` impostare su be. `REGISTRY_AND_SHADOW` Per ulteriori informazioni, consulta [Modalità di indicizzazione delle cose](managing-index.md#index-mode).
+ `filter`

  Il filtro di indicizzazione fornisce selezioni aggiuntive per ombre denominate e dati di geolocalizzazione. Per ulteriori informazioni, consulta [Filtro di indicizzazione](managing-index.md#thing-indexing-filter).
+ `geoLocations`

  L'elenco degli obiettivi di geolocalizzazione che scegli di indicizzare. Il numero massimo predefinito di obiettivi di geolocalizzazione per l'indicizzazione è. `1` [Per aumentare il limite, vedi Quote.AWS IoT Device Management](https://docs.aws.amazon.com//general/latest/gr/iot_device_management.html#fleet-indexing-limits)
+ `name`

  Il nome del campo di destinazione della geolocalizzazione. Un valore di esempio di `name` può essere il percorso dei dati sulla posizione della tua ombra:. `shadow.reported.coordinates`
+ `order`

  L'ordine del campo di destinazione della geolocalizzazione. Valori validi: `LatLon` e. `LonLat` `LatLon`significa latitudine e longitudine. `LonLat`significa longitudine e latitudine. Questo campo è facoltativo. Il valore predefinito è `LatLon`.

### Dati sulla posizione memorizzati in ombre denominate
<a name="location-indexing-named-shadow-configuration"></a>

Se i dati sulla posizione sono memorizzati in un'ombra denominata, `namedShadowIndexingMode` impostate su be`ON`, aggiungete il nome o i nomi delle ombre denominate al `namedShadowNames` campo in [https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html](https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html)e specificate il percorso dei dati sulla posizione nel `geoLocations` campo in [https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html](https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html).

Nel seguente esempio di configurazione di indicizzazione degli oggetti, specificate il percorso dei dati della posizione `shadow.name.namedShadow1.reported.coordinates` così `name` e `LonLat` come. `order`

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

  La modalità di indicizzazione controlla se il registro o lo shadow sono indicizzati. Quando `thingIndexingMode` è impostato su be`OFF`, l'indicizzazione degli oggetti è disabilitata. 

  Per indicizzare i dati sulla posizione memorizzati in un'ombra denominata, è necessario `thingIndexingMode` impostare su be `REGISTRY` (or`REGISTRY_AND_SHADOW`). Per ulteriori informazioni, consulta [Modalità di indicizzazione delle cose](managing-index.md#index-mode).
+ `filter`

  Il filtro di indicizzazione fornisce selezioni aggiuntive per le ombre denominate e i dati di geolocalizzazione. Per ulteriori informazioni, consulta [Filtro di indicizzazione](managing-index.md#thing-indexing-filter).
+ `geoLocations`

  L'elenco degli obiettivi di geolocalizzazione che scegli di indicizzare. Il numero massimo predefinito di obiettivi di geolocalizzazione per l'indicizzazione è. `1` [Per aumentare il limite, vedi Quote.AWS IoT Device Management](https://docs.aws.amazon.com//general/latest/gr/iot_device_management.html#fleet-indexing-limits)
+ `name`

  Il nome del campo di destinazione della geolocalizzazione. Un valore di esempio di `name` può essere il percorso dei dati sulla posizione della tua ombra:. `shadow.name.namedShadow1.reported.coordinates`
+ `order`

  L'ordine del campo di destinazione della geolocalizzazione. Valori validi: `LatLon` e. `LonLat` `LatLon`significa latitudine e longitudine. `LonLat`significa longitudine e latitudine. Questo campo è facoltativo. Il valore predefinito è `LatLon`.

## Geoquery di esempio
<a name="location-indexing-geoqueries"></a>

Dopo aver completato la configurazione di indicizzazione dei dati sulla posizione, esegui delle geoquery per cercare i dispositivi. Puoi anche combinare le tue geoquery con altre stringhe di query. Per ulteriori informazioni, consultare [Sintassi delle query](query-syntax.md) e [Esempio di query per oggetti](example-queries.md).

**Query di esempio 1**

L'esempio presuppone che i dati sulla posizione siano memorizzati in un'ombra `gps-tracker` denominata. L'output di questo comando è l'elenco dei dispositivi che si trovano entro una distanza radiale di 15,5 km dal punto centrale con coordinate (47.6204, -122.3491).

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

**Query di esempio 2**

Questo esempio presuppone che i dati sulla posizione siano archiviati in un'ombra classica. L'output di questo comando è l'elenco dei dispositivi che si trovano entro una distanza radiale di 15,5 km dal punto centrale con coordinate (47.6204, -122.3491).

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

**Query di esempio 3**

Questo esempio presuppone che i dati sulla posizione siano archiviati in un'ombra classica. L'output di questo comando è l'elenco dei dispositivi non collegati e che si trovano al di fuori della distanza radiale di 15,5 km dal punto centrale con coordinate (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)"
```

# Tutorial sulle nozioni di base
<a name="location-indexing-tutorial"></a>

[[Questo tutorial illustra come utilizzare l'indicizzazione del parco veicoli per indicizzare i dati sulla posizione.](location-indexing-geoquery.md)](iot-indexing.md) Per semplicità, crei un oggetto per rappresentare il tuo dispositivo e memorizzi i dati sulla posizione in un'ombra denominata, aggiorni la configurazione di indicizzazione degli oggetti per l'indicizzazione della posizione ed esegui geoquery di esempio per cercare dispositivi all'interno di un confine radiale.

Questo tutorial dura circa 15 minuti.

**Topics**
+ [

## Prerequisiti
](#location-indexing-tutorial-prerequisites)
+ [

## Crea cose e ombre
](#location-indexing-create-resources)
+ [

## Aggiorna la configurazione di indicizzazione degli oggetti
](#location-indexing-update-configuration)
+ [

## Esegui geoquery
](#location-indexing-run-geoquery)

## Prerequisiti
<a name="location-indexing-tutorial-prerequisites"></a>
+ [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html)Installa la versione più recente di.
+ [Acquisisci familiarità con l'[indicizzazione della posizione e le geoquery, l'indicizzazione di [Manage Thing](https://docs.aws.amazon.com/iot/latest/developerguide/managing-index.html) e la sintassi delle query](https://docs.aws.amazon.com/iot/latest/developerguide/location-indexing-geoquery.html).](https://docs.aws.amazon.com/iot/latest/developerguide/query-syntax.html)

## Crea cose e ombre
<a name="location-indexing-create-resources"></a>

Crei un oggetto per rappresentare il tuo dispositivo e un'ombra denominata per memorizzarne i dati sulla posizione (coordinate 47.61564, -122.33584).

1. Esegui il seguente comando per creare l'oggetto che rappresenta la tua bici chiamato Bike-1. *Per ulteriori informazioni su come creare un oggetto utilizzando AWS CLI, vedi [create-thing](https://docs.aws.amazon.com//cli/latest/reference/iot/create-thing.html) from Reference. *AWS CLI**

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

   L'output di questo comando può essere simile al seguente:

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

1. Esegui il comando seguente per creare un'ombra con nome per memorizzare i dati sulla posizione di Bike-1 (coordinate 47.61564, -122.33584). *Per ulteriori informazioni su come creare un'ombra con nome utilizzando, vedere da Reference. AWS CLI[update-thing-shadow*AWS CLI*](https://docs.aws.amazon.com//cli/latest/reference/iot-data/update-thing-shadow.html)*

   ```
   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" \
   ```

   Il comando non produce output. Per visualizzare l'ombra denominata che hai creato, puoi eseguire il comando 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
   ```

   L'output di questo comando può essere simile al seguente:

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

## Aggiorna la configurazione di indicizzazione degli oggetti
<a name="location-indexing-update-configuration"></a>

Per indicizzare i dati sulla posizione, è necessario aggiornare la configurazione di indicizzazione degli oggetti in modo da includere i dati sulla posizione. Poiché i dati sulla posizione sono memorizzati in un'ombra denominata, in questo tutorial, `thingIndexingMode` impostate come `REGISTRY` (come requisito minimo), `namedShadowIndexingMode` impostate `ON` come tale e aggiungete i dati sulla posizione alla configurazione. In questo esempio, è necessario aggiungere il nome dell'ombra denominata e il percorso dei dati sulla posizione dell'ombra a`filter`.

1. Eseguite il comando per aggiornare la configurazione di indicizzazione per l'indicizzazione della posizione.

   ```
   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"}] } }'
   ```

   Il comando non produce output. Potrebbe essere necessario attendere qualche istante fino al completamento dell'aggiornamento. Per verificare lo stato, esegui il comando CLI [describe-index](https://docs.aws.amazon.com//cli/latest/reference/iot/describe-index.html). Se vedi `indexStatus` shows:`ACTIVE`, l'aggiornamento dell'indicizzazione delle cose è completo.

1. Esegui il comando per verificare la configurazione di indicizzazione. Questa fase è facoltativa.

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

   L'output può essere simile al seguente:

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

## Esegui geoquery
<a name="location-indexing-run-geoquery"></a>

Ora hai aggiornato la configurazione di indicizzazione degli oggetti per includere i dati sulla posizione. Prova a creare alcune geoquery ed eseguile per vedere se riesci a ottenere i risultati di ricerca desiderati. [Una geoquery deve seguire la sintassi Query.](query-syntax.md) Puoi trovare alcuni utili esempi di geoquery in. [Geoquery di esempio](location-indexing-geoquery.md#location-indexing-geoqueries)

Nel comando di esempio seguente, si utilizza la geoquery per `shadow.name.Bike1-shadow.reported.coordinates:geo_distance,47.6204,-122.3491,15.5km` cercare dispositivi che si trovano entro la distanza radiale di 15,5 km dal punto centrale con coordinate (47.6204, -122.3491). 

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

Poiché hai un dispositivo situato alle coordinate «lat»: 47.6153, «lon»: -122.3333, che rientra nella distanza di 15,5 km dal punto centrale, dovresti essere in grado di vedere questo dispositivo (Bike-1) nell'output. L'output può essere simile al seguente:

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

Per ulteriori informazioni, consulta [Indicizzazione dei dati sulla posizione](location-indexing-geoquery.md).

# Parametri del parco istanze
<a name="iot-fleet-metrics"></a>

Le metriche della flotta sono una funzionalità dell'[indicizzazione della flotta](iot-indexing.md), un servizio gestito che ti consente di indicizzare, cercare e aggregare i dati dei tuoi dispositivi. AWS IoT Puoi utilizzare le metriche della flotta per monitorare lo stato aggregato dei dispositivi del tuo parco dispositivi nel [CloudWatch](https://console.aws.amazon.com/cloudwatch/)tempo, inclusa la revisione della velocità di disconnessione dei dispositivi del parco dispositivi o delle variazioni medie del livello della batteria in un periodo specifico.

Utilizzando le metriche della flotta, puoi creare [query di aggregazione](index-aggregate.md) i cui risultati vengono continuamente utilizzati come metriche per l'analisi delle tendenze e la creazione di allarmi. [CloudWatch](https://console.aws.amazon.com/cloudwatch/) Per i processi di monitoraggio, è possibile specificare le query di aggregazione di diversi tipi di aggregazione (**Statistiche**, **Cardinalità** e **Percentile**). Puoi salvare tutte le query di aggregazione per creare parametri del parco istanze da riutilizzare in futuro. 

# Tutorial sulle nozioni di base
<a name="fleet-metrics-get-started"></a>

In questo tutorial viene creato un [parametro del parco istanza](iot-fleet-metrics.md) per monitorare le temperature dei sensori e rilevare potenziali anomalie. Durante la creazione del parametro del parco istanze, si definisce una [query di aggregazione](index-aggregate.md) che rileva il numero di sensori con temperature superiori a 80 gradi Fahrenheit. Si specifica che l'interrogazione deve essere eseguita ogni 60 secondi e i risultati dell'interrogazione vengono inviati CloudWatch, dove è possibile visualizzare il numero di sensori che presentano potenziali rischi legati alle alte temperature e impostare allarmi. Per completare questo tutorial, userai [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html). 

In questo tutorial, apprenderai come:
+ [Configurazione](#fleet-metrics-tutorial-setup)
+ [Creare parametri del parco istanze](#fleet-metrics-tutorial-create)
+ [Visualizza le metriche in CloudWatch](#fleet-metrics-tutorial-view-data)
+ [Pulizia delle risorse](#fleet-metrics-tutorial-delete-fleet-metrics)

Questo tutorial dura circa 15 minuti.

## Prerequisiti
<a name="fleet-metrics-tutorial-prerequisites"></a>
+ Installazione della versione più recente di [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html)
+ Familiarizza con [la query di dati aggregati](https://docs.aws.amazon.com/iot/latest/developerguide/index-aggregate.html)
+ Acquisisci familiarità con l'utilizzo dei parametri di [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html) 

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

Abilita l'indicizzazione del parco istanze per utilizzare i parametri del parco istanze. Per abilitare l'indicizzazione del parco istanze per i tuoi oggetti o gruppi di oggetti con origini dati specificate e configurazioni associate, segui le istruzioni riportate in [Gestione dell'indicizzazione di oggetti](managing-index.md#enable-index) e [Gestione dell'indicizzazione di gruppi di oggetti](thinggroup-index.md#enable-group-index).

**Per configurare**

1. Esegui il seguente comando per abilitare l'indicizzazione del parco istanze e specificare le origini dati da cui eseguire la ricerca. 

   ```
   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'esempio del comando CLI precedente consente l'indicizzazione del parco istanze per supportare la ricerca dei dati del registro, i dati shadow e lo stato di connettività dell'oggetto utilizzando l'indice `AWS_Things`. 

   La modifica della configurazione può richiedere alcuni minuti. Verifica che l'indicizzazione del tuo parco istanze sia abilitata prima di creare i parametri del parco istanze. 

   Per controllare se l'indicizzazione del parco istanze è stata abilitata, esegui il seguente comando della CLI: 

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

   Per ulteriori informazioni, consulta [Abilitazione dell'indicizzazione di oggetti](managing-index.md#enable-index).

1. Esegui il seguente script bash per creare dieci oggetti e descriverli. 

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

   Questo script crea dieci oggetti per rappresentare dieci sensori. Ogni oggetto ha attributi di `temperature`, `rackId`, e `stateNormal` come descritto nella tabella seguente:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/fleet-metrics-get-started.html)

   L'output di questo script contiene dieci file JSON. Uno dei file JSON ha il seguente aspetto:

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

   Per ulteriori informazioni, consulta [Crea un oggetto](https://docs.aws.amazon.com/iot/latest/developerguide/thing-registry.html#create-thing).

## Crea parametri del parco istanze
<a name="fleet-metrics-tutorial-create"></a>

**Per creare un parametro del parco istanze**

1. Esegui il comando seguente per creare una metrica della flotta denominata. *high\$1temp\$1FM* Crei la metrica della flotta per monitorare il numero di sensori con temperature superiori a 80 gradi Fahrenheit in. 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
   ```

   --nome-parametro 

   Tipo di dati: stringa. Il parametro `--metric-name` specifica il nome parametro del parco istanze. In questo esempio, stai creando un parametro del parco istanze denominato *high\$1temp\$1FM*.

   --query-stringa

   Tipo di dati: stringa. Il parametro `--query-string` specifica la stringa di query. In questo esempio, la stringa di query significa interrogare tutte le cose con nomi che iniziano con *TempSensor*e con temperature superiori a 80 gradi Fahrenheit. Per ulteriori informazioni, consulta [Sintassi delle query](query-syntax.md).

   --periodo 

   Tipo di dati: numero intero. Il parametro `--period` specifica il tempo necessario per recuperare i dati aggregati in secondi. In questo esempio, specifichi che il parametro del parco istanze che stai creando recupera i dati aggregati ogni 60 secondi.

   --aggregazione--campo

   Tipo di dati: stringa. Il parametro `--aggregation-field` specifica l'attributo da valutare. In questo esempio, l'attributo della temperatura deve essere valutato.

   --tipo--aggregazione

   Il parametro `--aggregation-type` specifica il riepilogo statistico da visualizzare nel parametro del parco istanze. Per i processi di monitoraggio, è possibile personalizzare le proprietà della query di aggregazione per i diversi tipi di aggregazione (**Statistiche**, **Cardinalità** e **Percentile**). In questo esempio, si specifica **count** per il tipo di aggregazione e **Statistics** per restituire il conteggio dei dispositivi con attributi che corrispondono alla query, in altre parole, per restituire il conteggio dei dispositivi con nomi che iniziano con *TempSensor*e con temperature superiori a 80 gradi Fahrenheit. Per ulteriori informazioni, consulta [Query di dati aggregati](index-aggregate.md).

   L'output di questo comando è simile al seguente:

   ```
   {
       "metricArn": "arn:aws:iot:region:111122223333:fleetmetric/high_temp_FM", 
       "metricName": "high_temp_FM"
   }
   ```
**Nota**  
La visualizzazione dei punti dati può richiedere alcuni istanti. CloudWatch

   Per ulteriori informazioni sulla creazione di un parametro di parco istanze, leggi [Gestione dei parametri del parco istanze](managing-fleet-metrics.md).

   Se non riesci a creare un parametro del parco di istanze, leggi [Risoluzione dei problemi dei parametri del parco istanze](fleet-indexing-troubleshooting.md#fleet-metrics-troubleshooting). 

1. (Facoltativo) Esegui il comando seguente per descrivere il parametro del parco istanze denominato *high\$1temp\$1FM*:

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

   L'output di questo comando è simile al seguente:

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

## Visualizza le metriche della flotta in CloudWatch
<a name="fleet-metrics-tutorial-view-data"></a>

Dopo aver creato la metrica della flotta, puoi visualizzare i dati metrici in. CloudWatch In questo tutorial, vedrai la metrica che mostra il numero di sensori con nomi che iniziano con *TempSensor*e con temperature superiori a 80 gradi Fahrenheit.

**Per visualizzare i punti dati in CloudWatch**

1. Apri la CloudWatch console all'indirizzo [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/). 

1.  CloudWatch Nel menu sul pannello di sinistra, scegli **Metriche** per espandere il sottomenu, quindi scegli **Tutte le** metriche. Si apre la pagina in cui la metà superiore mostra il grafico e la metà inferiore contiene quattro sezioni a schede.

1. **La prima sezione a schede **Tutte le metriche elenca tutte le metriche** che puoi visualizzare in gruppi, scegli Io Metrics. TFleet** Contiene tutti i parametri della tua flotta.

1. Nella sezione **Tipo di aggregazione** della scheda **Tutti i parametri**, scegli **Tipo di aggregazione** per visualizzare tutti parametri del parco istanze che hai creato. 

1. Scegli i parametri del parco istanze per visualizzare il grafico a sinistra della sezione **Tipo di aggregazione**. Vedrai il valore *count* a sinistra del **nome della tua metrica**, e questo è il valore del tipo di aggregazione che hai specificato nella sezione [Crea](#fleet-metrics-tutorial-create) metriche sulla flotta di questo tutorial.

1. Scegli la seconda scheda denominata **Rappresentazione grafica di parametri** a destra della scheda **Tutti i parametri** per visualizzare il parametro del parco istanze che hai scelto nella fase precedente.

   Dovresti essere in grado di vedere un grafico che mostra il numero di sensori con temperature superiori a 80 gradi Fahrenheit come segue:  
![\[AWS IoT metriche della flotta\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/images/fm-metric-in-cloudwatch.png)
**Nota**  
L'attributo **Periodo** è CloudWatch predefinito su 5 minuti. È l'intervallo di tempo tra i punti dati visualizzati in. CloudWatch È possibile modificare l'impostazione **Periodo** in base alle tue esigenze.

1. (Facoltativo) È possibile impostare un allarme di parametro. 

   1.  CloudWatch **Nel menu sul pannello di sinistra, scegli **Allarmi** per espandere il sottomenu, quindi scegli Tutti gli allarmi.**

   1. Sulla pagina **Allarmi**, scegli **Creazione di allarme** nell'angolo in alto a destra. Segui le istruzioni per la **Creazione di allarme** nella console per creare un allarme secondo necessità. Per ulteriori informazioni, consulta [Usare gli CloudWatch allarmi Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html).

Per ulteriori informazioni, consulta [Usare i CloudWatch parametri di Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html). 

Se non riesci a visualizzare i punti dati CloudWatch, leggi [Risoluzione dei problemi relativi alle metriche della flotta](fleet-indexing-troubleshooting.md#fleet-metrics-troubleshooting).

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

**Per eliminare i parametri del parco istanze**

Utilizza il comando CLI **delete-fleet-metric** per eliminare i parametri del parco istanze.

Per eliminare il parametro del parco istanze denominato *high\$1temp\$1FM*, esegui il seguente comando.

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

**Per eliminare gli oggetti**

Usa il comando CLI **delete-thing** per eliminare gli oggetti.

Per eliminare i dieci oggetti creati, esegui lo script seguente:

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

**Per ripulire le metriche in CloudWatch**

CloudWatch non supporta l'eliminazione delle metriche. I parametri scadono in base ai piani di conservazione. Per ulteriori informazioni, consulta [Utilizzo dei CloudWatch parametri di Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html).

# Gestione dei parametri del parco istanze
<a name="managing-fleet-metrics"></a>

Questo argomento mostra come utilizzare la AWS IoT console e AWS CLI gestire i parametri del parco veicoli.

**Topics**
+ [

## Gestione dei parametri del parco istanze (Console)
](#managing-fleet-metrics-console)
+ [

## Gestione dei parametri del parco istanze (CLI)
](#managing-fleet-metrics-cli)
+ [

## Autorizzazione dell'assegnazione di tag delle risorse IoT
](#managing-fleet-metrics-policy)

## Gestione dei parametri del parco istanze (Console)
<a name="managing-fleet-metrics-console"></a>

Le sezioni seguenti mostrano come utilizzare la AWS IoT console per gestire le metriche del parco veicoli. Assicurati di aver abilitato l'indicizzazione del parco istanze con origini dati e configurazioni associate prima di creare parametri del parco istanze.

### Abilita l'indicizzazione del parco istanze
<a name="setup-steps-console"></a>

Se hai già abilitato l'indicizzazione del parco istanze, salta questa sezione.

Se non hai abilitato l'indicizzazione del parco istanze, segui queste istruzioni.

1. Apri la AWS IoT console all'indirizzo [https://console.aws.amazon.com/iot/](https://console.aws.amazon.com/iot/).

1.  AWS IoT Nel menu, scegli **Impostazioni**. 

1. Per visualizzare le impostazioni dettagliate, sulla pagina **Impostazioni**, scorri verso il basso fino alla sezione **Indicizzazione del parco istanze**.

1. Per aggiornare le impostazioni di indicizzazione del parco istanze, a destra della sezione **Indicizzazione del parco istanza**, seleziona **Gestione dell'indicizzazione**. 

1. Sulla pagina **Gestione dell'indicizzazione del parco istanze**, aggiorna le impostazioni di indicizzazione del parco istanze in base alle tue esigenze. 
   + **Configurazione**

     Per attivare l'indicizzazione degli oggetti, attiva **Indicizzazione degli oggetti**, quindi seleziona le origini dati da cui vuoi indicizzare. 

     Per attivare l'indicizzazione del gruppo di oggetti, attiva **Indicizzazione di gruppi di oggetti**.
   + **Campi personalizzati per l'aggregazione (*facoltativo*)**

     I campi di ricerca personalizzati sono un elenco di coppie di nomi di campo e tipi di campo. 

     Per aggiungere una coppia di campi personalizzata, scegli **Aggiungi nuovo campo**. Inserisci un nome di campo personalizzato come `attributes.temperature`, quindi seleziona un tipo di campo dal menu **Tipo di campo**. Nota che il nome di un campo personalizzato inizia con `attributes.` e verrà salvato come attributo per eseguire [query di aggregazioni di oggetti](https://docs.aws.amazon.com/iot/latest/developerguide/index-aggregate.html).

     Per aggiornare e salvare l'impostazione, scegli **Aggiorna**.

### Crea un parametro del parco istanze
<a name="create-fleet-metrics-console"></a>

1. Apri la AWS IoT console all'indirizzo [https://console.aws.amazon.com/iot/](https://console.aws.amazon.com/iot/). 

1.  AWS IoT Nel menu, scegli **Gestisci**, quindi scegli **Fleet metrics**.

1. Sulla pagina **Parametri del parco istanza**, scegli **Crea un parametro del parco istanze** e completa i passaggi di creazione.

1. Nel passaggio 1 **Configurazione dei parametri del parco istanze**
   + Nella sezione **Query**, inserisci una stringa di query per specificare gli oggetti o i gruppi di oggetti che desideri che eseguano la ricerca aggregata. La stringa di query è costituita da un attributo e da un valore. Per **Proprietà**, scegli l'attributo desiderato oppure, se non viene visualizzato nell'elenco, inserisci l'attributo nel campo. Inserire il valore dopo `:`. Una stringa di query di esempio può essere `thingName:TempSensor*`. Per ogni stringa di query inserita, premi **invio** sulla tastiera. Se inserisci più stringhe di query, specifica la relazione selezionando **e**, **o**, **e non**, oppure **o no** tra di loro. 
   + In **Proprietà del report**, scegli **Nome indice**, **Tipo di aggregazione**, e **Campo di aggregazione** dalle rispettive liste. Quindi, seleziona i dati in cui desideri aggregare **Seleziona dati**, dove è possibile selezionare più valori di dati.
   + Scegli **Next (Successivo)**.

1. Nella fase 2 **Specificazione delle proprietà del parametro del parco istanze**
   + Nel campo **Nome parametro del parco istanza**, inserisci un nome per il parametro del parco istanze che stai creando.
   + Nel campo **Descrizione - *opzionale***, inserisci una descrizione per il parametro del parco istanze che stai creando. Questo campo è facoltativo. 
   + Nei campi **Ore** e **Minuti**, inserisci l'ora (con quale frequenza) in cui desideri che la metrica della flotta emetta i dati. CloudWatch
   + Scegli **Next (Successivo)**.

1. Nella fase 3 **Revisione e creazione**
   + Revisiona le impostazioni della fase 1 e fase 2. Per modificare le impostazioni, scegli **Modifica**.
   + Scegli **Crea parametro del parco istanze**.

Dopo una creazione riuscita, il parametro del parco istanze è elencato sulla pagina **Parametro del parco istanze**.

### Aggiorna una parametro del parco istanze
<a name="update-fleet-metrics-console"></a>

1. Sulla pagina **Parametro del parco istanze**, scegli il parametro del parco istanze che desideri aggiornare.

1. Sulla pagina **Dettagli** del parametro del parco istanze, scegli **Modifica**. In questo modo si aprono le fasi di creazione in cui è possibile aggiornare il parametro del parco istanze in una delle tre fasi. 

1. Dopo aver completato l'aggiornamento del parametro del parco istanze, scegli **Aggiorna parametro del parco istanze**.

### Elimina un parametro del parco istanze
<a name="delete-fleet-metrics-console"></a>

1. Sulla pagina **Parametro del parco istanze**, scegli il parametro del parco istanze che desideri eliminare.

1. Nella pagina successiva che mostra i dettagli del parametro del parco istanze, scegli **Elimina**.

1. Nella finestra di dialogo, inserisci il nome del parametro del parco istanze per confermare l'eliminazione.

1. Scegli **Elimina**. Questa fase elimina definitivamente il parametro del parco istanze.

## Gestione dei parametri del parco istanze (CLI)
<a name="managing-fleet-metrics-cli"></a>

Le sezioni seguenti mostrano come utilizzare le metriche della flotta AWS CLI per gestire. Assicurati di aver abilitato l'indicizzazione del parco istanze con origini dati e configurazioni associate prima di creare parametri del parco istanze. Per abilitare l'indicizzazione del parco istanze per oggetti o gruppi di oggetti, segui le istruzioni in [Gestione dell'indicizzazione degli oggetti](managing-index.md#enable-index) o [Gestione dell'indicizzazione di gruppi di oggetti](thinggroup-index.md#enable-group-index).

### Crea un parametro del parco istanze
<a name="create-fleet-metrics"></a>

È possibile utilizzare il comando create-fleet-metric CLI per creare una metrica della flotta. 

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

L'output di questo comando contiene il nome e Amazon Resource Name (ARN) del parametro del parco istanze. L'output sarà simile al seguente:

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

### Elenco parametri del parco istanze
<a name="list-fleet-metrics"></a>

Puoi utilizzare il comando list-fleet-metric CLI per elencare tutte le metriche della flotta nel tuo account. 

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

L'output di questo comando contiene tutti i parametri del parco istanze. L'output sarà simile al seguente:

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

### Descrivi un parametro del parco istanze
<a name="describe-fleet-metrics"></a>

È possibile utilizzare il comando describe-fleet-metric CLI per visualizzare informazioni più dettagliate su una metrica della flotta. 

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

L'output del comando contiene le informazioni dettagliate sul parametro del parco istanze specificato. L'output sarà simile al seguente:

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

### Aggiorna una parametro del parco istanze
<a name="update-fleet-metrics"></a>

È possibile utilizzare il comando update-fleet-metric CLI per aggiornare una metrica del parco veicoli. 

```
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
```

Il comando update-fleet-metric non produce output. Puoi usare il comando describe-fleet-metric CLI per vedere il risultato.

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

### Elimina un parametro del parco istanze
<a name="delete-fleet-metrics"></a>

Utilizza il comando delete-fleet-metric CLI per eliminare una metrica della flotta. 

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

Questo comando non produce alcun output se l'eliminazione va a buon fine oppure se specifichi un parametro del parco istanze che non esiste.

Per ulteriori informazioni, consulta [Risoluzione dei problemi dei parametri del parco istanze](fleet-indexing-troubleshooting.md#fleet-metrics-troubleshooting).

## Autorizzazione dell'assegnazione di tag delle risorse IoT
<a name="managing-fleet-metrics-policy"></a>

Per un migliore controllo sulle metriche della flotta che puoi creare, modificare o utilizzare, puoi allegare tag alle metriche della flotta.

Per etichettare le metriche della flotta create utilizzando Console di gestione AWS or AWS CLI, devi includere l'`iot:TagResource`azione nella tua policy IAM per concedere le autorizzazioni all'utente. Se la tua policy IAM non lo include`iot:TagResource`, qualsiasi azione volta a creare una metrica della flotta con un tag restituirà un errore. `AccessDeniedException`

Per informazioni generali sull'etichettatura delle risorse, consulta [Tagging your](https://docs.aws.amazon.com//iot/latest/developerguide/tagging-iot.html) resources. AWS IoT 

### Esempio di policy IAM
<a name="managing-fleet-metrics-policy-example"></a>

Fai riferimento al seguente esempio di policy IAM che concede le autorizzazioni per l'etichettatura quando crei una metrica della flotta:

****  

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

Per ulteriori informazioni, consulta [Operazioni, risorse e chiavi di condizione per AWS IoT](https://docs.aws.amazon.com//service-authorization/latest/reference/list_awsiot.html).