

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# -Flottenindizierung
<a name="iot-indexing"></a>

Sie können die Flottenindizierung verwenden, um die Daten Ihrer Geräte aus den folgenden Quellen zu indizieren, zu durchsuchen und zu aggregieren: [AWS IoT Registrierung](thing-registry.md), [AWS IoT Device Shadow](iot-device-shadows.md), [AWS IoT Konnektivität](life-cycle-events.md), [AWS IoT Geräteverwaltungs-Softwarepaketkatalog](software-package-catalog.md) und [AWS IoT Device Defender](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/what-is-device-defender.html)Verstöße. Sie können eine Gruppe von Geräten abfragen und Statistiken zu Gerätedatensätzen aggregieren, die auf verschiedenen Kombinationen von Geräteattributen basieren, darunter Status, Konnektivität und Geräteverstöße. Mit der Flottenindizierung können Sie Ihre Geräteflotte organisieren, untersuchen und Fehler beheben.

Die Flottenindizierung bietet die folgenden Funktionen.

## Verwalten von Indexaktualisierungen
<a name="iot-indexing-manage-index-update"></a>

Sie können einen Flottenindex einrichten, um Updates für Ihre Objektgruppen, Objektregister, Geräteschatten, Gerätekonnektivität und Geräteverletzungen zu indexieren. Wenn Sie die Flottenindizierung aktivieren, wird AWS IoT ein Index für Ihre Objekte oder Objektgruppen erstellen. `AWS_Things` ist der Index, der für all Ihre Objekte erstellt wurde. `AWS_ThingGroups` ist der Index, der all Ihre Objektgruppen enthält. Wenn dies aktiviert ist, können Sie Abfragen für Ihren Index ausführen. Sie können beispielsweise alle Geräte finden, die in der Hand gehalten werden und eine Akkulaufzeit von mehr als 70 Prozent haben. AWS IoT aktualisiert den Index kontinuierlich mit Ihren neuesten Daten. Weitere Informationen finden Sie unter [Verwalten der Flottenindexierung](managing-fleet-index.md).

## Verbindungsstatus für ein bestimmtes Gerät abfragen
<a name="querying-connectivity-status-for-specific-device"></a>

Diese API bietet Zugriff auf die neuesten gerätespezifischen Konnektivitätsinformationen mit niedriger Latenz und hohem Durchsatz. [Weitere Informationen finden Sie unter Status der Gerätekonnektivität.](https://docs.aws.amazon.com/iot/latest/developerguide/device-connectivity-status.html)

## Datenquellenübergreifende Suche
<a name="iot-indexing-search-data-source"></a>

Sie können eine Abfragezeichenfolge auf der Grundlage [einer Abfragesprache](query-syntax.md) erstellen und diese für die datenquellenübergreifende Suche verwenden. Sie müssen auch Datenquellen in der Flottenindizierungseinstellung so konfigurieren, dass die Indizierungskonfiguration die Datenquellen enthält, aus denen Sie suchen möchten. Die Abfragezeichenfolge beschreibt die Objekte, die Sie suchen möchten. Sie können Abfragen mithilfe von AWS verwalteten Feldern, benutzerdefinierten Feldern und beliebigen Attributen aus Ihren indizierten Datenquellen erstellen. Weitere Informationen zu Datenquellen, die die Flottenindizierung unterstützen, finden Sie unter [Verwaltung der Indexierung von Objekten.](managing-index.md)

## Abfragen von Aggregatdaten
<a name="iot-indexing-query-aggregate-data"></a>

Sie können Ihre Geräte nach aggregierten Daten durchsuchen und Statistiken, Perzentile, Kardinalität oder eine Liste von Objekten mit Suchanfragen zu bestimmten Feldern zurückgeben. Sie können Aggregationen für AWS verwaltete Felder oder beliebige Attribute ausführen, die Sie in den Einstellungen für die Flottenindizierung als benutzerdefinierte Felder konfigurieren. Weitere Informationen zur Aggregationsabfrage finden Sie unter [Abfragen aggregierter Daten](index-aggregate.md).

## Überwachung aggregierter Daten und Erstellung von Alarmen mithilfe von Flottenkennzahlen
<a name="iot-indexing-monitor-aggregate-date"></a>

Sie können Flottenkennzahlen verwenden, um aggregierte Daten CloudWatch automatisch an zu senden, Trends zu analysieren und Alarme zu erstellen, um den Gesamtstatus Ihrer Flotte auf der Grundlage vordefinierter Schwellenwerte zu überwachen. Weitere Informationen zu Metriken erhalten Sie unter [Ressourcenmetriken](iot-fleet-metrics.md).

# Verwalten der Flottenindizierung
<a name="managing-fleet-index"></a>

Flottenindizierung verwaltet zwei Arten von Indizes für Sie: die Objektindizierung und die Objektgruppenindizierung. 

## Objektindizierung
<a name="thing-index"></a>

`AWS_Things` ist der Index für all Ihre Objekte. Die Objektindizierung unterstützt die folgenden Datenquellen: [AWS IoT Registrierungsdaten](thing-registry.md), [AWS IoT Device Schatten-Daten](iot-device-shadows.md), [AWS IoT Konnektivitätsdaten](life-cycle-events.md) und Daten zu [AWS IoT Device Defender](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/what-is-device-defender.html)Verstößen. Indem Sie diese Datenquellen zu Ihrer Flottenindexierungskonfiguration hinzufügen, können Sie nach Objekten suchen, aggregierte Daten abfragen und dynamische Objektgruppen und Flottenmetriken auf der Grundlage Ihrer Suchanfragen erstellen.

**Registry** —AWS IoT bietet ein Register, mit dem Sie Dinge verwalten können. Sie können die Registrierungsdaten zu Ihrer Flottenindexierungskonfiguration hinzufügen, um anhand der Objektnamen, Beschreibungen und anderen Registrierungsattributen nach Geräten zu suchen. Weitere Informationen zur -Registrierung finden Sie unter [Verwalten von Aufgaben mit der -Registrierung](thing-registry.md).

**Schatten** — Der [AWS IoT Device Schatten-Dienst](iot-device-shadows.md) bietet Schatten, mit denen Sie Ihre Gerätestatusdaten speichern können. Die Indizierung von Objekten unterstützt sowohl klassische unbenannte Schatten als auch benannte Schatten. Um benannte Schatten zu indizieren, aktivieren Sie Ihre Einstellungen für benannte Schatten und geben Sie Ihre Schattennamen in der Konfiguration für die Objektindizierung an. Standardmäßig können Sie bis zu 10 Schattennamen pro Datei hinzufügen AWS-Konto. Informationen darüber, wie Sie die Obergrenze für die Anzahl der Schattennamen erhöhen können, finden Sie in der *AWS allgemeinen Referenz* unter [AWS IoT Device Management Kontingente](https://docs.aws.amazon.com/general/latest/gr/iot_device_management.html#fleet-indexing-limits).

So fügen Sie benannte Schatten für die Indizierung hinzu:
+ Wenn Sie die [AWS IoT Konsole](https://console.aws.amazon.com/iot/home) verwenden, aktivieren Sie die **Objektindizierung**, wählen Sie **Benannte Schatten hinzufügen** und fügen Sie Ihre Schattennamen über die **Auswahl benannter Schatten** hinzu. 
+ Wenn Sie das AWS Command Line Interface (AWS CLI) verwenden, setzen Sie `namedShadowIndexingMode` es auf und geben Sie Schattennamen in an [https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html](https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html). `ON` Beispiele für CLI-Befehle finden Sie unter [Objektindizierung verwalten](managing-index.md#enable-index).

**Wichtig**  
Am 20. Juli 2022 erscheint die Version General Availability (GA) der AWS IoT Device Management-Flottenindexierungsintegration mit AWS IoT Core Named Shadows und AWS IoT Device Defender Detect Violations. Mit dieser GA-Version können Sie bestimmte benannte Schatten indizieren, indem Sie Schattennamen angeben. Wenn Sie Ihre benannten Schatten während der öffentlichen Vorschauphase dieser Funktion vom 30. November 2021 bis 19. Juli 2022 für die Indizierung hinzugefügt haben, empfehlen wir Ihnen, Ihre Einstellungen für die Flottenindizierung neu zu konfigurieren und spezifische Schattennamen auszuwählen, um die Indexierungskosten zu senken und die Leistung zu optimieren. 

 Weitere Informationen zu Schatten finden Sie unter [AWS IoT Device Schatten-Service](iot-device-shadows.md).

**Konnektivität** — Mithilfe der Daten zur Gerätekonnektivität können Sie den Verbindungsstatus Ihrer Geräte ermitteln. Diese Konnektivitätsdaten werden durch [Lebenszyklusereignisse](life-cycle-events.md) bestimmt. Wenn ein Client eine Verbindung herstellt oder die Verbindung trennt, AWS IoT veröffentlicht er Lebenszyklusereignisse mit Meldungen zu MQTT-Themen. Eine Verbindungs- oder Trennungsnachricht kann eine Liste von JSON-Elementen sein, die Details zum Verbindungsstatus enthalten. Weitere Informationen zur Gerätekonnektivität finden Sie unter [Lebenszyklusereignisse](life-cycle-events.md).

**Verstöße gegen Device Defender** — Daten zu AWS IoT Device Defender Verstößen helfen dabei, ungewöhnliches Geräteverhalten im Vergleich zu den normalen Verhaltensweisen zu identifizieren, die Sie in einem Sicherheitsprofil definieren. Ein Sicherheitsprofil enthält eine Reihe von Verhaltensweisen. Für jedes Verhalten wird eine Metrik verwendet, die das normale Verhalten Ihrer Geräte angibt. [Weitere Informationen zu Device Defender-Verstößen finden AWS IoT Device Defender Sie unter Erkennen.](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/device-defender-detect.html)

Weitere Informationen finden Sie unter [Verwalten der Objektindizierung](managing-index.md).

## Modus für die Objektgruppenindizierung.
<a name="thing-group-index"></a>

`AWS_ThingGroups` ist der Index, die alle Ihre Objektgruppen enthält. Dieser Index ermöglicht Ihnen die Suche nach Gruppen basierend auf Gruppennamen, Beschreibung, Attributen und allen übergeordneten Gruppennamen.

Weitere Informationen finden Sie unter [Verwalten der Objektgruppenindizierung](thinggroup-index.md).

## Verwaltete Felder
<a name="managed-field"></a>

Verwaltete Felder enthalten Daten, die mit Dingen, Dinggruppen, Geräteschatten, Gerätekonnektivität und Device Defender-Verstößen verknüpft sind. AWS IoT definiert den Datentyp in verwalteten Feldern. Sie geben die Werte jedes verwalteten Felds an, wenn Sie ein AWS IoT Ding erstellen. Beispielsweise sind Objektnamen, Objektgruppen und Objektbeschreibungen alles verwaltete Felder. Der Flottenindizierungsservice indiziert verwaltete Felder basierend auf dem von Ihnen angegebenen Indizierungsmodus: Verwaltete Felder können nicht geändert oder in `customFields` angezeigt werden. Weitere Informationen finden Sie unter [Benutzerdefinierte Felder](#custom-field).

Im Folgenden sind verwaltete Felder für die Indizierung von Objekten aufgeführt: 
+ Verwaltete Felder für die Registrierung

  ```
  "managedFields" : [
    {name:thingId, type:String},
    {name:thingName, type:String},
    {name:registry.version, type:Number},
    {name:registry.thingTypeName, type:String},
    {name:registry.thingGroupNames, type:String},
  ]
  ```
+ Verwaltete Felder für klassische unbenannte Schatten

  ```
  "managedFields" : [
    {name:shadow.version, type:Number},
    {name:shadow.hasDelta, type:Boolean}
  ]
  ```
+ Verwaltete Felder für benannte Schatten

  ```
  "managedFields" : [
    {name:shadow.name.shadowName.version, type:Number},
    {name:shadow.name.shadowName.hasDelta, type:Boolean}
  ]
  ```
+ Verwaltete Felder für die Objektkonnektivität

  ```
  "managedFields" : [
    {name:connectivity.timestamp, type:Number},
    {name:connectivity.version, type:Number},
    {name:connectivity.connected, type:Boolean},
    {name:connectivity.disconnectReason, type:String}
  ]
  ```
+ Verwaltete Felder für 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}
  ]
  ```
+ Verwaltete Felder für Objektgruppen

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

In der folgenden Tabelle sind verwaltete Felder aufgeführt, die nicht durchsucht werden können. 


| Datenquelle | Verwaltetes Feld, das nicht durchsucht werden kann | 
| --- | --- | 
| Registrierung | registry.version | 
| Unbenannte Schatten | shadow.version | 
| Benannter Schatten | shadow.name.\$1.version | 
| Device Defender | deviceDefender.version | 
| Objektgruppen | version | 

## Benutzerdefinierte Felder
<a name="custom-field"></a>

Sie können Objekt-Attribute, Device Schatten-Daten und Daten zu Device Defender-Verstößen aggregieren, indem Sie benutzerdefinierte Felder erstellen, um sie zu indizieren. Das Attribut `customFields` ist eine Liste von Feld- und Datentyppaaren. Sie können Aggregationsabfragen auf der Grundlage des Datentyps durchführen. Der von Ihnen gewählte Indizierungsmodus wirkt sich auf Felder aus, in denen Sie angeben können. `customFields` Wenn Sie beispielsweise den Indizierungsmodus `REGISTRY` angeben, können Sie kein Feld aus einem Schattenobjekt angeben. Sie können den [update-indexing-configuration](https://docs.aws.amazon.com/cli/latest/reference/iot/update-indexing-configuration.html)CLI-Befehl verwenden, um die benutzerdefinierten Felder zu erstellen oder zu aktualisieren (einen Beispielbefehl finden Sie unter [Beispiele zur Aktualisierung der Indexierungskonfiguration](managing-index.md#update-index-examples)). 
+ **Namen benutzerdefinierter Felder**

Benutzerdefinierte Feldnamen für Objekt- und Objektgruppenattribute beginnen mit `attributes.`, gefolgt vom Attributnamen. Wenn die unbenannte Schattenindizierung aktiviert ist, können Objekte benutzerdefinierte Feldnamen haben, die mit `shadow.desired` oder`shadow.reported` beginnen, gefolgt vom Namen des unbenannten Schattendatenwerts. Wenn die benannte Schattenindizierung aktiviert ist, können Objekte benutzerdefinierte Feldnamen haben, die mit `shadow.name.*.desired.` oder `shadow.name.*.reported.` beginnen, gefolgt vom benannten Schattendatenwert. Wenn die Device Defender-Indizierung für Verstöße aktiviert ist, können Objekte benutzerdefinierte Feldnamen haben, die mit `deviceDefender.`, gefolgt vom Datenwert Device Defender-Verletzungen beginnen.

Der Name des Attributs oder Datenwerts, der auf das Präfix folgt, darf nur aus alphanumerischen Zeichen, Bindestrichen und Unterstrichen bestehen. Er darf keine Leerzeichen enthalten.

Wenn zwischen einem benutzerdefinierten Feld in der Konfiguration und dem indizierten Wert eine Typinkonsistenz besteht, ignoriert der Flottenindizierungsservice den inkonsistenten Wert für Aggregationsabfragen. -Protokolle sind hilfreich bei der Behebung von Problemen mit Aggregationsabfragen. CloudWatch Protokolle sind hilfreich bei der Behebung von Problemen mit Aggregationsabfragen. Weitere Informationen finden Sie unter [Fehlerbehebung bei Aggregationsabfragen für den Flottenindizierungsservice](fleet-indexing-troubleshooting.md#aggregation-troubleshooting). 
+ **Benutzerdefinierte Feldtypen**

Benutzerdefinierte Feldtypen haben die folgenden unterstützten Werte: `Number``String`, und`Boolean`.

# Verwalten der Objektindizierung
<a name="managing-index"></a>

`AWS_Things` ist der Index für all Ihre Objekte. Sie können aus den folgenden Datenquellen steuern, was indexiert werden soll: [AWS IoT Registrierungsdaten](thing-registry.md), [AWS IoT Device Schatten-Daten](iot-device-shadows.md), [AWS IoT Konnektivitätsdaten](life-cycle-events.md) und Daten zu [AWS IoT Device Defender](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/what-is-device-defender.html)Verstößen.

**Topics**
+ [

## Aktivieren der Objektindizierung
](#enable-index)
+ [

## Beschreiben eines Objektindex
](#describe-index)
+ [

## Abfragen des Objektindex
](#search-index)
+ [

## Beschränkungen und Einschränkungen
](#index-limitations)
+ [

## Autorisierung
](#query-auth)

## Aktivieren der Objektindizierung
<a name="enable-index"></a>

Sie verwenden den [update-indexing-configuration](https://docs.aws.amazon.com/cli/latest/reference/iot/update-indexing-configuration.html)CLI-Befehl oder die [UpdateIndexingConfiguration](https://docs.aws.amazon.com/iot/latest/apireference/API_UpdateIndexingConfiguration.html)API-Operation, um den `AWS_Things` Index zu erstellen und seine Konfiguration zu steuern. Mit dem Parameter `--thing-indexing-configuration` (`thingIndexingConfiguration`) können Sie steuern, welche Art von Daten indiziert werden (z. B. Registrierungs-, Schatten- und Gerätekonnektivitätsdaten). 

Der Parameter `--thing-indexing-configuration` nimmt eine Zeichenfolge mit der folgenden Struktur an:

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

### Objektindizierungsmodus.
<a name="index-mode"></a>

Sie können in Ihrer Indizierungskonfiguration verschiedene Indizierungsmodi angeben, je nachdem, aus welchen Datenquellen Sie Geräte indizieren und durchsuchen möchten: 
+ `thingIndexingMode`: Steuert, ob Registry oder Schatten indexiert ist. Wenn `thingIndexingMode` auf `OFF` eingestellt ist, ist die Indizierung von Objekten deaktiviert.
+ `thingConnectivityIndexingMode`: Gibt an, ob die Objektkonnektivitätsdaten indiziert sind.
+ `deviceDefenderIndexingMode`: Gibt an, ob Device Defender-Daten, die Verstöße verletzen, indexiert werden.
+ `namedShadowIndexingMode`: Gibt an, ob benannte Schatten-Daten indexiert werden. Um benannte Schatten auszuwählen, die zu Ihrer Flottenindizierungskonfiguration hinzugefügt werden sollen, legen Sie `namedShadowIndexingMode` als `ON` fest und geben Sie Ihre benannten Schattennamen unter [https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html](https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html) an.

Die folgende Tabelle zeigt die gültigen Werte für jeden Indizierungsmodus und die Datenquelle, die für jeden Wert indexiert ist.


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

### Verwaltete Felder und benutzerdefinierte Felder
<a name="managed-custom-field"></a>

**Verwaltete Felder**

Verwaltete Felder enthalten Daten, die mit Dingen, Dinggruppen, Geräteschatten, Gerätekonnektivität und Device Defender-Verstößen verknüpft sind. AWS IoT definiert den Datentyp in verwalteten Feldern. Beim Erstellen eines IoT-Objekts geben Sie die Werte jedes verwalteten Felds an. Beispielsweise sind Objektnamen, Objektgruppen und Objektbeschreibungen alles verwaltete Felder. Der Flottenindizierungsservice indiziert verwaltete Felder basierend auf dem von Ihnen angegebenen Indizierungsmodus: Verwaltete Felder können nicht geändert oder in `customFields` angezeigt werden.

**Benutzerdefinierte Felder**

Sie können Attribute, Device Schatten-Daten und Daten zu Device Defender-Verstößen aggregieren, indem Sie benutzerdefinierte Felder erstellen, um sie zu indizieren. Das Attribut `customFields` ist eine Liste von Feld- und Datentyppaaren. Sie können Aggregationsabfragen auf der Grundlage des Datentyps durchführen. Der von Ihnen gewählte Indizierungsmodus wirkt sich auf Felder aus, in denen Sie angeben können. `customFields` Wenn Sie beispielsweise den Indizierungsmodus `REGISTRY` angeben, können Sie kein Feld aus einem Schattenobjekt angeben. Sie können den [update-indexing-configuration](https://docs.aws.amazon.com/cli/latest/reference/iot/update-indexing-configuration.html)CLI-Befehl verwenden, um die benutzerdefinierten Felder zu erstellen oder zu aktualisieren (einen Beispielbefehl finden Sie unter [Beispiele zur Aktualisierung der Indexierungskonfiguration](#update-index-examples)). Weitere Informationen zu RDS CUstom finden Sie unter .

### Indizierungsfilter
<a name="thing-indexing-filter"></a>

Der Indexfilter bietet zusätzliche Auswahlmöglichkeiten für benannte Schatten und Geolokalisierungsdaten. 

**`namedShadowNames`**

Um Ihrer Flottenindizierungskonfiguration benannte Schatten hinzuzufügen, legen Sie `namedShadowIndexingMode` als `ON` fest und geben Sie Ihre benannten Schattennamen im `namedShadowNames`-Filter an. 

**Beispiel**

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

`geoLocations`

So fügen Sie Ihrer Flottenindexierungskonfiguration Geolokalisierungsdaten hinzu: 
+ Wenn Ihre Geolokalisierungsdaten in einem klassischen (unbenannten) Schatten gespeichert sind, legen Sie `thingIndexingMode` auf REGISTRY\$1AND\$1SHADOW fest und geben Sie Ihre Geolokalisierungsdaten im `geoLocations`-Filter an.

  Der folgende Beispielfilter spezifiziert ein GeoLocation-Objekt in einem klassischen (unbenannten) Schatten:

  ```
  "filter": {
       "geoLocations": [
          {
              "name": "shadow.reported.location",
              "order": "LonLat"
          }
       ]
    }
  ```
+ Wenn Ihre Geolokalisierungsdaten in einem benannten Schatten gespeichert sind, setzen Sie `namedShadowIndexingMode` auf ON, fügen Sie den Schattennamen im `namedShadowNames`-Filter hinzu und geben Sie Ihre Geolokalisierungsdaten im `geoLocations`-Filter an.

  Der folgende Beispielfilter spezifiziert ein GeoLocation-Objekt in einem benannten Schatten (`nameShadow1`): 

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

Weitere Informationen finden Sie in [ IndexingFilter](https://docs.aws.amazon.com/iot/latest/apireference/API_IndexingFilter.html)der *AWS IoT**API-Referenz.*

### Aktualisieren von Konfigurationsbeispielen für die Indexierung
<a name="update-index-examples"></a>

Verwenden Sie den AWS IoT **update-indexing-configuration** CLI-Befehl, um Ihre Indizierungskonfiguration zu aktualisieren. Im folgenden Beispiel wird gezeigt, wie **update-indexing-configuration** verwendet wird.

Kurze Syntax:

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

JSON-Syntax:

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

Dieser Befehl liefert keine Ausgabe.

Führen Sie den `describe-index` CLI-Befehl aus, um den Status des Dingindexes zu überprüfen: 

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

Die Ausgabe des Befehls `describe-index` sieht wie folgt aus:

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

**Anmerkung**  
Es kann einen Moment dauern, bis der Flottenindex bei der Flottenindizierung aktualisiert ist. Wir empfehlen, mit der Verwendung zu warten, bis die `indexStatus` Anzeige AKTIV angezeigt wird. Je nachdem, welche Datenquellen Sie konfiguriert haben, können Sie im Schemafeld unterschiedliche Werte angeben. Weitere Informationen finden Sie unter [Beschreiben eines Objektindizents](#describe-index).

Führen Sie den `get-indexing-configuration` CLI-Befehl aus, um die Konfigurationsdetails für die Indexierung Ihres Objekts abzurufen: 

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

Die Ausgabe des Befehls `get-indexing-configuration` sieht wie folgt aus:

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

Um die benutzerdefinierten Felder zu aktualisieren, können Sie den `update-indexing-configuration` Befehl ausführen. Das Beispiel ist wie folgt:

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

Dieser Befehl hat der Indizierungskonfiguration `shadow.desired.intensity` hinzugefügt.

**Anmerkung**  
Beim Aktualisieren der benutzerdefinierten Felder in der Indizierungskonfiguration werden alle vorhandenen benutzerdefinierten Felder überschrieben. Achten Sie darauf, beim Aufrufen von **update-indexing-configuration** alle benutzerdefinierten Felder anzugeben.

Nachdem der Index neu erstellt wurde, können Sie Aggregationsabfrage für die neu hinzugefügten Felder, Registrierungsdaten, Schattendaten und Statusdaten der Objektkonnektivität verwenden.

Stellen Sie beim Ändern des Indizierungsmodus sicher, dass alle benutzerdefinierten Felder im neuen Indizierungsmodus gültig sind. Wenn Sie beispielsweise im Modus `REGISTRY_AND_SHADOW` mit dem benutzerdefinierten Feld `shadow.desired.temperature` beginnen, müssen Sie das benutzerdefinierte Feld `shadow.desired.temperature` löschen, bevor Sie den Indizierungsmodus in `REGISTRY` ändern. Wenn Ihre Indizierungskonfiguration benutzerdefinierte Felder enthält, die nicht vom Indizierungsmodus indiziert werden, schlägt die Aktualisierung fehl. 

## Beschreiben eines Objektindex
<a name="describe-index"></a>

Der folgende Befehl zeigt, wie Sie den CLI-Befehl **describe-index** zum Abrufen des aktuellen Status des Objektindizes verwenden.

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

Die Ausgabe des Befehls sieht wie folgt aus:

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

Wenn Sie zum ersten Mal eine Fleet-Indizierung durchführen, wird Ihr Index AWS IoT erstellt. Sie können den Index nicht abfragen, wenn sich `indexStatus` im Status `BUILDING` befindet. Das `schema` für den Objektindex zeigt an, welche Art von Daten (`REGISTRY_AND_SHADOW_AND_CONNECTIVITY_STATUS`) indiziert werden.

Wenn die Konfiguration für Ihren Index geändert wird, wird der Index neu erstellt. Der `indexStatus` während dieses Vorgangs lautet `REBUILDING`. Sie können Abfragen für Daten im Objektindex ausführen, während er erstellt wird. Wenn Sie beispielsweise die Indexkonfiguration von `REGISTRY` in `REGISTRY_AND_SHADOW` ändern, während der Index neu erstellt wird, können Sie Registrierungsdaten abfragen, einschließlich der aktuellen Updates. Sie können die Schattendaten jedoch erst abfragen, wenn die Wiederherstellung abgeschlossen ist. Die benötigte Zeit zum Erstellen oder Neuerstellen des Index hängt von der Menge an Daten ab.

Abhängig von den Datenquellen, die Sie konfiguriert haben, können Sie im Schemafeld unterschiedliche Werte sehen. Die folgende Tabelle zeigt die verschiedenen Schemawerte und die entsprechenden Beschreibungen:


| Schema | Description | 
| --- | --- | 
| OFF | Es sind keine Datenquellen konfiguriert oder indexiert. | 
| REGISTRY | (Nur Registrierungsdaten werden indiziert.) | 
| REGISTRY\$1AND\$1SHADOW | (Registrierungsdaten und Schatten-Daten werden indiziert.) | 
| REGISTRY\$1AND\$1CONNECTIVITY | Registrierungsdaten und Konnektivitätsdaten sind indexiert. | 
| REGISTRY\$1AND\$1SHADOW\$1AND\$1CONNECTIVITY\$1STATUS | Registrierungsdaten, unbenannte (klassische) Schattendaten und Konnektivitätsdaten werden indexiert. | 
| MULTI\$1INDEXING\$1MODE | Daten zu Verletzungen durch benannte Schatten- oder Device Defender-Angriffe werden zusätzlich zu Registrierungsdaten, unbenannten (klassischen) Schatten- oder Konnektivitätsdaten indexiert. | 

## Abfragen des Objektindex
<a name="search-index"></a>

Verwenden Sie den CLI-Befehl **search-index** zum Abfragen von Daten im Index.

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

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

Die JSON-Antwort `"connectivity"` (aktiviert durch die `thingConnectivityIndexingMode=STATUS`-Einstellung) gibt einen booleschen Wert und einen Zeitstempel aus, woran zu erkennen ist, ob das Gerät mit dem AWS IoT Core verbunden ist. Das Gerät `"mything1"` wurde (`false`) zur POSIX-Zeit aufgrund von `CONNECTION_LOST` getrennt: Weitere Informationen zu den Gründen für die Unterbrechung der Verbindung finden Sie unter [Lifecycle-Ereignisse](life-cycle-events.md). 

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

Das Gerät `"mything2"` wurde (`true`) zur POSIX-Zeit `1556649855046` verbunden:

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

Da Zeitstempel in Millisekunden seit der Epoche angegeben werden, stellt `1556649855046` 6:44:15.046 PM am Dienstag, 30. April 2019 (GMT), dar.

**Wichtig**  
Wenn ein Gerät etwa eine Stunde lang getrennt war, fehlt möglicherweise der `"timestamp"`-Wert und der `"disconnectReason"`-Wert des Konnektivitätsstatus.

## Beschränkungen und Einschränkungen
<a name="index-limitations"></a>

Dies sind die Einschränkungen und Begrenzungen für `AWS_Things`.

**Schatten-Felder mit komplexen Typen**  
Ein Schattenfeld wird nur indiziert, wenn der Wert des Felds einfach ist, ein JSON-Objekt, das kein Array enthält, oder ein Array, das vollständig aus einfachen Typen besteht. Mit „einfacher Typ“ ist eine Zeichenfolge, eine Zahl oder eines der Literale `true` oder `false` gemeint. Beispielsweise angesichts des folgenden Schattenzustands wird der Wert des Feldes `"palette"` nicht indiziert, da es sich um ein Array handelt, das Elemente komplexen Typs enthält. Der Wert des Feldes `"colors"` wird indiziert, da jeder Wert im Array eine Zeichenfolge ist.   

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

Verschachtelte Schattenfeldnamen  
Die Namen verschachtelter Schattenfelder werden als Zeichenfolge mit Punkt als Trennzeichen (.) gespeichert. Beispielsweise bei einem Schattendokument:  

```
{
  "state": {
    "desired": {
      "one": {
        "two": {
          "three": "v2"
        }
      }
    }    
  }
}
```
Der Name des Feldes `three` wird als `desired.one.two.three` gespeichert. Wenn Sie auch ein Schattendokument wie das folgende haben:  

```
{
  "state": {
    "desired": {
      "one.two.three": "v2"
    }    
  }
}
```
Beide entsprechen einer Abfrage für `shadow.desired.one.two.three:v2`. Eine bewährte Methode besteht darin, keine Punkte in Schattenfeldnamen zu verwenden.

Schatten-Metadaten  
Ein Feld in einem Schatten-Metadatenbereich wird indiziert, aber nur dann, wenn das entsprechende Feld in dem `"state"`-Abschnitt des Shadow indiziert ist. (Im vorherigen Beispiel wird das Feld `"palette"` im Metadatenbereich des Schattens auch nicht indiziert.)

Alle nicht registrierten Geräte  
Die Flottenindizierung indexiert den Konnektivitätsstatus für ein Gerät, dessen Verbindung `clientId` mit der eines in `thingName` der [Registrierung](https://docs.aws.amazon.com//iot/latest/developerguide/thing-registry.html) registrierten Geräts übereinstimmt.

**Nicht registrierte Schatten**  
Wenn Sie früher [UpdateThingShadow](https://docs.aws.amazon.com/iot/latest/apireference/API_iotdata_UpdateThingShadow.html)einen Shadow mit einem Dingnamen erstellen, der nicht in Ihrem AWS IoT Konto registriert wurde, werden Felder in diesem Shadow nicht indexiert. Dies gilt sowohl für den klassischen unbenannten Schatten als auch für den benannten Schatten.

**Numerische Werte**  
Wenn Registrierungs- oder Schattendaten von dem Service als numerischer Wert erkannt werden, werden sie als solche indiziert. Sie können Abfragen erstellen, die Bereiche und Vergleichsoperatoren für numerische Werte umfassen (beispielsweise `"attribute.foo<5"` oder `"shadow.reported.foo:[75 TO 80]"`). Um als numerisch erkannt zu werden, muss es sich bei dem Wert der Daten um eine gültige JSON-Nummer vom Literaltyp handeln. Um als numerisch erkannt zu werden, muss der Wert der Daten ein gültiges JSON-Literal des Typs „Zahl“ (eine Ganzzahl von -2^53...2^53-1 oder ein Gleitkomma mit doppelter Genauigkeit und optionaler Exponentialnotation) oder Teil eines Arrays sein, das ausschließlich solche Werte enthält. 

**Null-Werte**  
Null-Werte werden nicht indiziert.

Maximale Werte  
Maximale Anzahl von benutzerdefinierten Felder für Aggregationsabfragen ist 5.  
Maximale Anzahl von angeforderten Perzentilen für Aggregationsabfragen ist 100.

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

Sie können den Things-Index in einer AWS IoT Richtlinienaktion wie folgt als Amazon-Ressourcennamen (ARN) angeben.


****  

| Action | Ressource | 
| --- | --- | 
|  `iot:SearchIndex`  |  Ein Index-ARN (z. B. `arn:aws:iot:your-aws-regionyour-aws-account:index/AWS_Things`).  | 
|  `iot:DescribeIndex`  |  Ein Index-ARN (z. B. `arn:aws:iot:your-aws-region:index/AWS_Things`).  | 

**Anmerkung**  
Wenn Sie über die Berechtigungen verfügen, den Flottenindex abzufragen, können Sie auf Daten zu Objekten über die gesamte Flotte hinweg zugreifen.

# Verwalten der Objektgruppenindizierung
<a name="thinggroup-index"></a>

`AWS_ThingGroups` ist der Index, die alle Ihre Objektgruppen enthält. Dieser Index ermöglicht Ihnen die Suche nach Gruppen basierend auf Gruppennamen, Beschreibung, Attributen und allen übergeordneten Gruppennamen.

## Aktivieren der Objektgruppenindizierung
<a name="enable-group-index"></a>

Sie können die `thing-group-indexing-configuration` Einstellung in der [UpdateIndexingConfiguration](https://docs.aws.amazon.com/iot/latest/apireference/API_UpdateIndexingConfiguration.html)API verwenden, um den `AWS_ThingGroups` Index zu erstellen und seine Konfiguration zu steuern. Sie können die [GetIndexingConfiguration](https://docs.aws.amazon.com/iot/latest/apireference/API_GetIndexingConfiguration.html)API verwenden, um die aktuelle Indexierungskonfiguration abzurufen. 

Mit dem CLI-Befehl **update-indexing-configuration** können Sie die Konfigurationen der Objektindizierung aktualisieren.

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

Sie können Konfigurationen für sowohl die Objekt- als auch die Objektgruppenindizierung wie folgt auch in einem einzigen Befehl aktualisieren.

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

Im Folgenden sehen Sie gültige Werte für `thingGroupIndexingMode`.

OFF  
Kein indexing/delete Index.

ON  
Den `AWS_ThingGroups`-Index erstellen oder konfigurieren.

Verwenden Sie den CLI-Befehl **get-indexing-configuration** zum Abrufen der aktuellen Indizierungskonfigurationen des Objekts und der Objektgruppe.

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

Die Ausgabe des Befehls sieht wie folgt aus:

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

## Beschreiben von Gruppenindizes
<a name="describe-group-index"></a>

Verwenden Sie den CLI-Befehl `AWS_ThingGroups` zum Abrufen des aktuellen Status des **describe-index**-Index.

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

Die Ausgabe des Befehls sieht wie folgt aus:

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

 AWS IoT erstellt Ihren Index bei der ersten Indizierung. Es ist nicht möglich, den Index abzufragen, wenn `indexStatus` auf `BUILDING` eingestellt ist.

## Abfragen eines Objektgruppenindex
<a name="search-group-index"></a>

Verwenden Sie den CLI-Befehl **search-index** zum Abfragen von Daten im Index:

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

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

Sie können den Index der Dinggruppen wie folgt als Ressourcen-ARN in einer AWS IoT Richtlinienaktion angeben.


****  

| Action | Ressource | 
| --- | --- | 
|  `iot:SearchIndex`  |  Ein Index-ARN (z. B. `arn:aws:iot:your-aws-region:index/AWS_ThingGroups`).  | 
|  `iot:DescribeIndex`  |  Ein Index-ARN (z. B. `arn:aws:iot:your-aws-region:index/AWS_ThingGroups`).  | 

# Abfragen zum Status der Gerätekonnektivität
<a name="device-connectivity-status"></a>

AWS IoT Fleet Indexing unterstützt die Abfrage der Konnektivität einzelner Geräte, sodass Sie den Konnektivitätsstatus und die zugehörigen Metadaten für bestimmte Geräte effizient abrufen können. Diese Funktion ergänzt die bestehenden flottenweiten Indizierungs- und Abfragefunktionen.

## Funktionsweise
<a name="w2aac37c21b5"></a>

Die Unterstützung von Abfragen zur Gerätekonnektivität kann für den optimierten Abruf des Verbindungsstatus einzelner Geräte verwendet werden. Diese API bietet Zugriff auf die neuesten gerätespezifischen Konnektivitätsinformationen mit niedriger Latenz und hohem Durchsatz. Sobald Sie die Konnektivitätsindizierung aktiviert haben, haben Sie Zugriff auf diese Abfrage-API, die als Standardabfragen berechnet wird. Weitere Informationen finden Sie unter [AWS IoT Device Management](https://aws.amazon.com/iot-device-management/pricing/#:~:text=Search%20queries%20(per%2010%2C000%20queries)) — Preise

## Features
<a name="w2aac37c21b7"></a>

Mit der Unterstützung von Abfragen zur Gerätekonnektivität können Sie:

1. Fragen Sie den aktuellen Konnektivitätsstatus (verbunden oder getrennt) für ein bestimmtes Gerät ab, indem Sie ihn verwenden. `thingName`

1. Rufen Sie zusätzliche Konnektivitätsmetadaten ab, darunter:

   1. Grund für das Trennen der Verbindung

   1. Zeitstempel für das letzte Verbindungs- oder Trennungsereignis.

**Anmerkung**  
Die Flottenindizierung indexiert den Konnektivitätsstatus für ein Gerät, dessen Verbindung `clientId` mit der eines in `thingName` der [Registrierung](https://docs.aws.amazon.com/iot/latest/developerguide/thing-registry.html) registrierten Geräts übereinstimmt.

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

1. **Niedrige Latenz:** Spiegelt den neuesten Status der Gerätekonnektivität wider und bietet eine geringe Latenz, um Änderungen des Verbindungsstatus von IoT Core widerzuspiegeln. IoT Core bestimmt, dass ein Gerät entweder getrennt ist, sobald es eine Verbindungsabbruchanfrage vom Gerät erhält, oder wenn ein Gerät die Verbindung trennt, ohne eine Trennungsanfrage zu senden. Der IoT-Core wartet das 1,5-fache der konfigurierten Keep-Alive-Zeit, bevor festgestellt wird, dass der Client getrennt wird. Die Konnektivitätsstatus-API spiegelt diese Änderungen in der Regel in weniger als einer Sekunde wider, nachdem IoT Core die Änderung des Verbindungsstatus eines Geräts festgestellt hat.

1. **Hoher Durchsatz:** Unterstützt standardmäßig 350 Transaktionen pro Sekunde (TPS) und kann auf Anfrage auf einen höheren Wert eingestellt werden.

1. **Datenspeicherung:** Speichert Ereignisdaten auf unbestimmte Zeit, wenn der Fleet Indexing (FI) ConnectivityIndexing -Modus aktiviert ist und das Ding nicht gelöscht wird. Wenn Sie die Konnektivitätsindizierung deaktivieren, werden die Datensätze nicht aufbewahrt.

**Anmerkung**  
Wenn die Indizierung des Konnektivitätsstatus vor dem Start dieser API aktiviert wurde, beginnt Fleet Indexing mit der Verfolgung von Änderungen des Konnektivitätsstatus nach dem Start der API und spiegelt den aktualisierten Status auf der Grundlage dieser Änderungen wider.

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

So verwenden Sie die Unterstützung für Gerätekonnektivitätsabfragen:

1. [Richten Sie ein AWS Konto ein](https://docs.aws.amazon.com/iot/latest/developerguide/setting-up.html)

1. Geräte AWS IoT Core in Ihrer bevorzugten Region einbinden und registrieren

1. [Aktivieren Sie die Flottenindizierung](https://docs.aws.amazon.com/iot/latest/developerguide/managing-index.html) mit der Konnektivitätsindizierung

**Anmerkung**  
Es ist keine zusätzliche Einrichtung erforderlich, wenn Sie die Konnektivitätsindizierung bereits aktiviert haben

Ausführliche Anweisungen zur Einrichtung finden Sie im [AWS IoT Entwicklerhandbuch](https://docs.aws.amazon.com/iot/latest/developerguide/setting-up.html)

## Beispiele
<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`: Der Name des Geräts, wie er in der Anfrage angegeben ist. Dies entspricht auch der clientId mit der eine Verbindung hergestellt wurde. AWS IoT Core
+ `disconnectReason`: Grund für die Verbindung. Wird für ein angeschlossenes Gerät NONE sein.
+ `connected`: Der boolesche Wert true gibt an, dass dieses Gerät derzeit verbunden ist.
+ `timestamp`: Der Zeitstempel, der die letzte Unterbrechung des Geräts in Millisekunden darstellt.

```
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`: Der Name des Geräts, wie er in der Anfrage angegeben ist. Dies entspricht auch der clientId mit der eine Verbindung hergestellt wurde. AWS IoT Core
+ `disconnectReason`: Der Grund für die Trennung ist CLIENT\$1INITIATED\$1DISCONNECT, was bedeutet, dass der Client angegeben hat, dass er die Verbindung trennen würde. AWS IoT Core 
+ `connected`: Der boolesche Wert false gibt an, dass dieses Gerät derzeit nicht angeschlossen ist.
+ `timestamp`: Der Zeitstempel, der die letzte Unterbrechung des Geräts in Millisekunden darstellt.

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

```
{
   "connected": false,
   "disconnectReason": "UNKNOWN",
   "thingName": "neverConnectedThing"
}
```
+ `thingName`: Der Name des Geräts, wie er in der Anfrage angegeben ist. Dies entspricht auch der clientId mit der eine Verbindung hergestellt wurde. AWS IoT Core
+ `disconnectReason`: Grund für die Verbindung. Ist „UNBEKANNT“ für ein Gerät, das noch nie verbunden war oder für das Fleet Indexing nicht den letzten Grund für die Unterbrechung der Verbindung gespeichert hat. 
+ `connected`: Der boolesche Wert false gibt an, dass dieses Gerät derzeit nicht angeschlossen ist. 
+ `timestamp`: Der Zeitstempel wird nicht für ein Gerät zurückgegeben, das noch nie verbunden war oder für das Fleet Indexing nicht den letzten Zeitstempel gespeichert hat. 

# Abfragen von Aggregatdaten
<a name="index-aggregate"></a>

AWS IoT bietet vier APIs (`GetStatistics`,`GetCardinality`, und`GetBucketsAggregation`)`GetPercentiles`, mit denen Sie Ihre Geräteflotte nach aggregierten Daten durchsuchen können. 

**Anmerkung**  
 Bei Problemen mit fehlenden oder unerwarteten Werten für die Aggregation APIs lesen Sie den Leitfaden [zur Fehlerbehebung bei der Fleet-Indexierung](fleet-indexing-troubleshooting.md). 

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

Die [GetStatistics](https://docs.aws.amazon.com/iot/latest/apireference/API_GetStatistics.html)API und der **get-statistics** CLI-Befehl geben die Anzahl, den Durchschnitt, die Summe, das Minimum, das Maximum, die Summe der Quadrate, die Varianz und die Standardabweichung für das angegebene aggregierte Feld zurück.

Der **get-statistics**-CLI-Befehl nimmt die folgenden Parameter entgegen:

`index-name`  
Der Name des zu durchsuchenden Indexes. Der Standardwert ist `AWS_Things`.

`query-string`  
Die zur Abfrage des Indexes verwendete Abfrage. Sie können angeben`"*"`, dass die Anzahl aller indizierten Dinge in Ihrem abgerufen werden soll. AWS-Konto

`aggregationField`  
(Optional) Das zu aggregierende Feld. Dieses Feld muss ein verwaltetes oder benutzerdefiniertes Feld sein, das beim Aufruf von **update-indexing-configuration** definiert wird. Wenn Sie kein Aggregationsfeld angeben, wird `registry.version` als Aggregationsfeld verwendet.

`query-version`  
Die Version der Abfrage, die verwendet werden soll. Der Standardwert ist `2017-09-30`.

Der Typ des Aggregationsfelds kann sich auf die zurückgegebenen Statistiken auswirken. 

### GetStatistics mit Zeichenkettenwerten
<a name="string-aggregation"></a>

Wenn Sie in einem Zeichenfolgenfeld aggregieren, gibt der Aufruf von `GetStatistics` eine Anzahl von Geräten zurück, die Attribute aufweisen, die der Abfrage entsprechen. Beispiel:

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

Dieser Befehl gibt die Anzahl der Geräte zurück, die ein Attribut mit dem Namen `stringAttribute` enthalten:

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

### GetStatistics mit booleschen Werten
<a name="boolean-aggregation"></a>

Wenn Sie `GetStatistics` mit einem booleschen Aggregationsfeld aufrufen:
+ AVERAGE ist der Prozentsatz der Geräte, die mit der Abfrage übereinstimmen.
+ MINIMUM ist 0 oder 1 gemäß den folgenden Regeln:
  + Wenn alle Werte für das Aggregationsfeld `false` lauten, ist MINIMUM 0.
  + Wenn alle Werte für das Aggregationsfeld `true` lauten, ist MINIMUM 1.
  + Wenn die Werte für das Aggregationsfeld eine Mischung aus `false` und sind `true`, ist MINIMUM 0.
+ MAXIMUM ist 0 oder 1 gemäß den folgenden Regeln:
  + Wenn alle Werte für das Aggregationsfeld `false` lauten, ist MAXIMUM 0.
  + Wenn alle Werte für das Aggregationsfeld `true` lauten, ist MAXIMUM 1.
  + Wenn die Werte für das Aggregationsfeld eine Mischung aus `false` und `true` sind, ist MAXIMUM 1.
+ SUM ist die Summe des ganzzahligen Äquivalents der booleschen Werte.
+ COUNT ist die Anzahl der Elemente, die den Kriterien der Abfragezeichenfolge entsprechen und einen gültigen Aggregationsfeldwert enthalten.

### GetStatistics mit numerischen Werten
<a name="numerical-aggregation"></a>

Wenn Sie `GetStatistics` aufrufen und ein Aggregationsfeld vom Typ `Number` angeben, gibt `GetStatistics` die folgenden Werte zurück:

count  
Die Anzahl der Elemente, die den Kriterien der Abfragezeichenfolge entsprechen und einen gültigen Aggregationsfeldwert enthalten.

Durchschnitt  
Der Durchschnitt der numerischen Werte, die der Abfrage entsprechen.

sum  
Die Summe der numerischen Werte, die der Abfrage entsprechen.

Minimum  
Der kleinste numerische Wert, der der Abfrage entspricht.

Maximum  
Der größte numerische Wert, der der Abfrage entspricht.

sumOfSquares  
Die Summe der Quadrate der numerischen Werte, die der Abfrage entsprechen.

Varianz  
Die Varianz der numerischen Werte, die der Abfrage entsprechen. Die Varianz einer Wertemenge ist der Durchschnitt der Quadrate der Differenzen jedes einzelnen Werts vom Durchschnittswert der Menge.

stdDeviation  
Die Standardabweichung der numerischen Werte, die der Abfrage entsprechen. Die Standardabweichung einer Wertemenge ist ein Maß für die Verteilung der Werte.

Das folgende Beispiel zeigt, wie **get-statistics** mit einem numerischen benutzerdefinierten Feld aufgerufen wird.

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

Wenn die Feldwerte den maximalen doppelten Wert überschreiten, sind bei numerischen Aggregationsfeldern die Statistikwerte leer.

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

Die [GetCardinality](https://docs.aws.amazon.com/iot/latest/apireference/API_GetCardinality.html)API und der **get-cardinality** CLI-Befehl geben die ungefähre Anzahl der eindeutigen Werte zurück, die der Abfrage entsprechen. Beispiel: Sie möchten die Anzahl der Geräte mit einem Akkustand von weniger als 50 Prozent ermitteln:

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

Dieser Befehl gibt die Anzahl der Elemente mit einem Akkustand von mehr als 50 Prozent zurück:

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

`cardinality` wird immer von **get-cardinality** zurückgegeben, auch wenn keine übereinstimmenden Felder vorhanden sind. Beispiel:

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

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

Der **get-cardinality**-CLI-Befehl nimmt die folgenden Parameter entgegen:

`index-name`  
Der Name des zu durchsuchenden Indexes. Der Standardwert ist `AWS_Things`.

`query-string`  
Die zur Abfrage des Indexes verwendete Abfrage. Sie können angeben`"*"`, dass die Anzahl aller indizierten Dinge in Ihrem AWS-Konto abgerufen werden soll.

`aggregationField`  
Das zu aggregierende Feld.

`query-version`  
Die Version der Abfrage, die verwendet werden soll. Der Standardwert ist `2017-09-30`.

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

Die [GetPercentiles](https://docs.aws.amazon.com/iot/latest/apireference/API_GetPercentiles.html)API und der **get-percentiles** CLI-Befehl gruppieren die aggregierten Werte, die der Abfrage entsprechen, in Perzentilgruppierungen. Die standardmäßigen Perzentilgruppierungen sind 1,5,25,50,75,95,99, auch wenn Sie beim Aufrufen von `GetPercentiles` Ihre eigenen angeben können. Diese Funktion gibt einen Wert für jede angegebene Perzentilgruppe (oder die standardmäßigen Perzentilgruppierungen) zurück. Die Perzentilgruppe „1“ enthält den aggregierten Feldwert, der in etwa in einem Prozent der Werte auftritt, die der Abfrage entsprechen. Die Perzentilgruppe „5“ enthält den aggregierten Feldwert, der in etwa in fünf Prozent der Werte auftritt, die der Abfrage entsprechen, usw. Das Ergebnis ist eine Annäherung, je mehr Werte der Abfrage entsprechen, desto genauer sind die Perzentilwerte.

Das folgende Beispiel zeigt, wie der **get-percentiles**-CLI-Befehl aufgerufen wird.

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

Der folgende Befehl zeigt die Ausgabe von **get-percentiles**, wenn keine entsprechenden Dokumente vorhanden sind.

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

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

Der **get-percentile**-CLI-Befehl nimmt die folgenden Parameter entgegen:

`index-name`  
Der Name des zu durchsuchenden Indexes. Der Standardwert ist `AWS_Things`.

`query-string`  
Die zur Abfrage des Indexes verwendete Abfrage. Sie können angeben`"*"`, dass die Anzahl aller indizierten Dinge in Ihrem abgerufen werden soll. AWS-Konto

`aggregationField`  
Das zu aggregierende Feld, das den Typ `Number` aufweisen muss.

`query-version`  
Die Version der Abfrage, die verwendet werden soll. Der Standardwert ist `2017-09-30`.

`percents`  
Mit diesem Parameter können Sie benutzerdefinierte Perzentilgruppierungen angeben.

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

Die [GetBucketsAggregation](https://docs.aws.amazon.com/iot/latest/apireference/API_GetBucketsAggregation.html)API und der **get-buckets-aggregation** CLI-Befehl geben eine Liste von Buckets und die Gesamtzahl der Dinge zurück, die den Kriterien für die Abfragezeichenfolge entsprechen.

Das folgende Beispiel zeigt, wie der get-buckets-aggregation-CLI-Befehl aufgerufen wird.

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

Dieser Befehl gibt die folgende Ausgabe zurück: .

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

Der get-buckets-aggregation-CLI-Befehl nimmt die folgenden Parameter entgegen:

`index-name`  
Der Name des zu durchsuchenden Indexes. Der Standardwert ist `AWS_Things`.

`query-string`  
Die zur Abfrage des Indexes verwendete Abfrage. Sie können angeben`"*"`, dass Sie die Anzahl aller indizierten Dinge in Ihrem abrufen möchten. AWS-Konto

`aggregation-field`  
Das zu aggregierende Feld.

`buckets-aggregation-type`  
Die grundlegende Steuerung der Antwortform und des auszuführenden Bucket-Aggregationstyps.

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

Sie können den Index der Dinggruppen wie folgt als Ressourcen-ARN in einer AWS IoT Richtlinienaktion angeben.


| Action | Ressource | 
| --- | --- | 
|  `iot:GetStatistics`  |  Ein Index-ARN (z. B. `arn:aws:iot:your-aws-region:index/AWS_Things` oder `arn:aws:iot:your-aws-region:index/AWS_ThingGroups`).  | 

# Abfragesyntax
<a name="query-syntax"></a>

Bei der Flottenindizierung verwenden Sie eine Abfragesyntax, um Abfragen zu spezifizieren.

## Unterstützte Features
<a name="supported-query-syntax"></a>

Die Abfragesyntax unterstützt die folgenden Funktionen.
+ Begriffe und Ausdrücke
+ Suchen nach Feldern
+ Präfixsuche
+ Bereichssuche
+ Boolesche Operatoren `AND`, `OR`, `NOT` und `–`. Der Bindestrich wird verwendet, um Suchergebnisse auszuschließen (z. B. `thingName:(tv* AND -plasma)`).
+ Gruppierung
+ Feldgruppierung
+ Escape-Sonderzeichen (wie bei **)
+ Die Verwendung von führenden Platzhaltern ist auf einen Abfragebegriff pro Abfrage beschränkt. Sie können beispielsweise nicht nach `thingName:*my` und `thingGroupNames:*echo` in derselben Abfrage suchen. Abfragen, die einen führenden Platzhalter enthalten, haben eine maximale Abfragelänge von 100 Zeichen.
**Anmerkung**  
 Konten mit einem API-Limit für Fleet Indexing-Abfragen von mehr als 30 Anfragen pro Sekunde unterliegen einer Drosselung, wenn Suchbegriffe mit führenden Platzhaltern verwendet werden. Dieses requests-per-second Limit von 30 gilt auf Kontoebene für alle Fleet Indexing-Abfragen. APIs 

## Nicht unterstützte Funktionen
<a name="unsupported-query-syntax"></a>

Die Abfragesyntax unterstützt nicht die folgenden Funktionen:
+ Reguläre Ausdrücke
+ Boosting
+ Ranking
+ Fuzzysuchen
+ Umgebungssuche
+ Sortieren
+ Aggregation
+ Sonderzeichen:```,`@`,`#`,`%`,`\`,`/`, `'``;`, und `,`. Beachten Sie, dass `,` dies nur in Geoqueries unterstützt wird.

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

Hier einige Hinweise zur Abfragesprache:
+ Der standardmäßige Operator ist UND. Eine Abfrage für `"thingName:abc thingType:xyz"` ist äquivalent mit `"thingName:abc AND thingType:xyz"`.
+ Wenn kein Feld angegeben ist, wird in allen Registry-, Device Shadow- und Device Defender-Feldern nach dem Begriff AWS IoT gesucht.
+ Bei allen Feldnamen muss die Groß- und Kleinschreibung beachtet werden.
+ Bei der Suche muss die Groß- und Kleinschreibung nicht beachtet werden. Wörter werden gemäß Definition von `Character.isWhitespace(int)` von Java durch Leerzeichen getrennt.
+ Die Indizierung von Device Schatten enthält die folgenden Abschnitte: gemeldet, gewünscht, Delta und Metadaten.
+ Device Schatten- und Registry-Versionen können nicht durchsucht werden, sind jedoch in der Antwort vorhanden.
+ Die maximale Anzahl an Begriffen in einer Abfrage ist 5.
+ Das Sonderzeichen `,` wird nur in Geoqueries unterstützt.

# Beispiel für Objektabfragen
<a name="example-queries"></a>

Geben Sie Abfragen mithilfe einer Abfragesyntax in einer Abfragezeichenfolge an. Die Abfragen werden an die [https://docs.aws.amazon.com/iot/latest/apireference/API_SearchIndex.html](https://docs.aws.amazon.com/iot/latest/apireference/API_SearchIndex.html)API übergeben. Die folgende Tabelle enthält einige Beispiele für Abfragezeichenfolgen.


| Abfragezeichenfolge | Ergebnis | 
| --- | --- | 
|  abc  |  Abfragen nach „abc“ in beliebigen Registry-, Schatten- (klassischer unbenannter Shadow und benannter Shadow) oder Device Defender-Verstößen.  | 
|  thingName:myThingName  |  Fragt nach einem Ding mit dem Namen "myThingName" ab.  | 
|  thingName:my\$1  |  Abfragen von Objekten mit Namen, die mit „my” beginnen.  | 
|  thingName:\$1my  |  Abfragen nach Dingen mit Namen, die auf „mein“ enden. Die Verwendung von führenden Platzhaltern ist auf einen Abfragebegriff pro Abfrage beschränkt. Abfragen, die einen führenden Platzhalter enthalten, haben eine maximale Abfragelänge von 100 Zeichen.  | 
|  thingName:\$1my\$1  |  Abfragen für Dinge, die die Teilzeichenfolge „my“ enthalten. Die Verwendung von führenden Platzhaltern ist auf einen Abfragebegriff pro Abfrage beschränkt. Abfragen, die einen führenden Platzhalter enthalten, haben eine maximale Abfragelänge von 100 Zeichen.  | 
|  thingName:ab?  |  Abfragen von Objekten mit Namen, die "ab" sowie ein zusätzliches Zeichen enthalten, zum Beispiel: "aba", "abb", "abc" usw.  | 
|  thingTypeName:aa  |  Abfragen für Objekte, die dem Typ aa zugeordnet sind.  | 
|  thingGroupNames:a  | Abfragen für Dinge mit dem Namen „a“ als übergeordneter Sachgruppe oder Abrechnungsgruppe. | 
|  thingGroupNames:a\$1  | Abfragen für Dinge, bei denen der Name einer übergeordneten Sachgruppe oder einer Abrechnungsgruppe dem Muster „a\$1“ entspricht. | 
|  attributes.myAttribute:75  |  Abfragen von Objekten mit einem Attribut namens "myAttribute" mit dem Wert 75.  | 
|  attributes.myAttribute:[75 TO 80]  |  Abfragen von Objekten mit einem Attribut namens "myAttribute", dessen Wert innerhalb eines numerischen Bereichs liegt (7580, einschließlich).  | 
|  attributes.myAttribute:\$175 TO 80]  |  Abfragen von Objekten mit einem Attribut namens "myAttribute", dessen Wert innerhalb des numerischen Bereichs liegt (>75 und<=80).  | 
|  attributes.serialNumber:["abcd" TO "abcf"]  |  Abfragen von Objekten mit einem Attribut namens "serialNumber", dessen Wert innerhalb eines alphanumerischen Zeichenfolgebereichs liegt. Diese Abfrage gibt Objekte mit einem "serialNumber"-Attribut mit den Werten "abcd", "abce" oder "abcf" zurück.  | 
|  attributes.myAttribute:i\$1t |  Abfragen von Objekten mit einem Attribut namens "myAttribute" mit dem Wert "i", gefolgt von einer beliebigen Anzahl von Zeichen, gefolgt von "t".  | 
|  attributes.attr1:abc AND attributes.attr2<5 NOT attributes.attr3>10  |  Abfragen mit booleschen Ausdrücken von Objekten, die Begriffe kombinieren. Diese Abfrage gibt Objekte zurück, die ein Attribut mit dem Namen "attr1" mit dem Wert "abc", ein Attribut mit dem Namen "attr2", das kleiner als 5 ist, und ein Attribut mit dem Namen "attr3", das nicht größer als 10 ist, aufweisen.  | 
|  shadow.hasDelta:true  |  Abfragen nach Objekten mit einem unbenannten Schatten, der ein Deltaelement enthält.  | 
|  NOT attributes.model:legacy  |  Abfragen von Objekten, bei denen das Attribut namens "model" nicht "legacy" ist.  | 
|  shadow.reported.stats.battery:\$170 TO 100\$1 (v2 OR v3) NOT attributes.model:legacy  |  Abfragen von Objekten, für die Folgendes gilt: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/iot/latest/developerguide/example-queries.html)  | 
|  shadow.reported.myvalues:2  |  Abfragen von Objekten, bei denen das Array `myvalues` im Abschnitt Gemeldete des Schattens den Wert 2 enthält.  | 
|  shadow.reported.location:\$1 NOT shadow.desired.stats.battery:\$1  |  Abfragen von Objekten, für die Folgendes gilt: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/iot/latest/developerguide/example-queries.html)  | 
|  shadow.name.<shadowName>.hasDelta:true  |  Abfragen nach Objekten, die einen Schatten mit dem angegebenen Namen und auch ein Delta-Element haben.   | 
|  shadow.name.<shadowName>.desired.filament:\$1  |  Fragt nach Objekten ab, die einen Schatten mit dem angegebenen Namen und auch einer gewünschten Filamenteigenschaft haben.   | 
|  shadow.name.<shadowName>.reported.location:\$1  |  Fragt nach Objekten, die einen Schatten mit dem angegebenen Namen haben und bei denen das `location` Attribut im Berichtsbereich des benannten Schattens vorhanden ist.  | 
|  connectivity.connected:true  |  Abfragen für alle angeschlossenen Geräte.  | 
|  connectivity.connected:false  | Abfrage für alle nicht verbundenen Geräte. | 
|  connectivity.connected:true AND connectivity.timestamp : [1557651600000 TO 1557867600000]  | Abfragen für alle verbundenen Geräte mit einem Verbindungszeitstempel >= 1557651600000 und <= 1557867600000. Zeitstempel werden in Millisekunden seit der Epoche angegeben. | 
|  connectivity.connected:false AND connectivity.timestamp : [1557651600000 TO 1557867600000]  | Abfragen für alle getrennten Geräte mit einem Trennungszeitstempel >= 1557651600000 und <= 1557867600000. Zeitstempel werden in Millisekunden seit der Epoche angegeben. | 
|  connectivity.connected:true AND connectivity.timestamp > 1557651600000  | Abfragen für alle verbundenen Geräte mit einem Verbindungszeitstempel > 1557651600000. Zeitstempel werden in Millisekunden seit der Epoche angegeben. | 
|  connectivity.connected:\$1  | Abfragen für alle Geräte mit vorhandenen Verbindungsinformationen. | 
|  connectivity.disconnectReason:\$1  | Abfragen für alle Geräte mit vorhandenen Verbindungsinformationen. | 
|  connectivity.disconnectReason:CLIENT\$1INITIATED\$1DISCONNECT  | Abfragen für alle Geräte, die aufgrund von CLIENT\$1INITIATED\$1DISCONNECT getrennt wurden. | 
|  deviceDefender.violationCount:[0 TO 100]  | Abfragen nach Objekten, bei denen Device Defender einen Zählwert verletzt, der innerhalb des numerischen Bereichs (0-100, einschließlich) liegt.  | 
|  deviceDefender.<device-SecurityProfile>.disconnectBehavior.inViolation:true  | Abfragen nach Objekten, die gegen das im Sicherheitsprofil device-SecurityProfile definierte Verhalten disconnectBehavior verstoßen. Beachten Sie, dass inviolation:False keine gültige Abfrage ist.  | 
|  deviceDefender.<device-SecurityProfile>.disconnectBehavior.lastViolationValue.number>2  | Abfragen nach Dingen, die gegen das im Sicherheitsprofil des Geräts definierte Verhalten disconnectBehavior verstoßen, SecurityProfile wobei der Wert für das letzte Verstoßereignis größer als 2 ist.  | 
|  deviceDefender.<device-SecurityProfile>.disconnectBehavior.lastViolationTime>1634227200000  |  Abfragen nach Dingen, die gegen das im Sicherheitsprofilgerät definierte Verhalten `disconnectBehavior` verstoßen, SecurityProfile wobei der letzte Verstoß erst nach einer bestimmten Epoche aufgetreten ist.   | 
|  shadow.name.gps-tracker.reported.coordinates:geo\$1distance,47.6204,-122.3491,15.5km | Abfragen nach Objekten, die sich innerhalb einer radialen Entfernung von 15,5 km von den Koordinaten 47.6204, -122.3491 befinden. Diese Abfragezeichenfolge gilt für den Fall, dass Ihre Standortdaten in einem benannten Schatten gespeichert werden. | 
|  shadow.reported.coordinates:geo\$1distance,47.6204,-122.3491,15.5km | Abfragen für Objekte, die sich innerhalb einer radialen Entfernung von 15,5 km von den Koordinaten 47,6204, -122,3491 befinden. Diese Abfragezeichenfolge gilt für den Fall, dass Ihre Standortdaten in einem klassischen Schatten gespeichert werden. | 

# Beispiel für Objektgruppenabfragen
<a name="example-thinggroup-queries"></a>

Abfragen werden in einer Abfragezeichenfolge mit einer Abfragesyntax angegeben und an die [https://docs.aws.amazon.com/iot/latest/apireference/API_SearchIndex.html](https://docs.aws.amazon.com/iot/latest/apireference/API_SearchIndex.html)-API übergeben. Die folgende Tabelle enthält einige Beispiele für Abfragezeichenfolgen.


| Abfragezeichenfolge | Ergebnis | 
| --- | --- | 
|  abc  |  Abfragen von "abc" in einem beliebigen Feld.  | 
|  thingGroupName:myGroupThingName  |  Abfragen für eine Dinggruppe mit dem Namen "myGroupThingName“.  | 
|  thingGroupName:my\$1  |  Abfragen von Objektgruppen mit Namen, die mit "my" beginnen.  | 
|  thingGroupName:ab?  |  Abfragen von Objektgruppen mit Namen, die "ab" sowie ein zusätzliches Zeichen enthalten, zum Beispiel: "aba", "abb", "abc" usw.  | 
|  attributes.myAttribute:75  |  Abfragen von Objektgruppen mit einem Attribut namens "myAttribute" mit dem Wert 75.  | 
|  attributes.myAttribute:[75 TO 80]  |  Abfragen von Objektgruppen mit einem Attribut namens "myAttribute", dessen Wert innerhalb eines numerischen Bereichs liegt (7580, einschließlich).  | 
|  attributes.myAttribute:[75 TO 80]  |  Abfragen von Objektgruppen mit einem Attribut namens "myAttribute", dessen Wert innerhalb des numerischen Bereichs liegt (>75 und<=80).  | 
|  attributes.myAttribute:["abcd" TO "abcf"]  |  Abfragen von Objektgruppen mit einem Attribut namens "myAttribute", dessen Wert innerhalb eines alphanumerischen Zeichenfolgebereichs liegt. Diese Abfrage gibt Objektgruppen mit einem "serialNumber"-Attribut mit den Werten "abcd", "abce" oder "abcf" zurück.  | 
|  attributes.myAttribute:i\$1t  |  Abfragen von Objektgruppen mit einem Attribut namens "myAttribute" mit dem Wert "i", gefolgt von einer beliebigen Anzahl von Zeichen, gefolgt von "t".  | 
|  attributes.attr1:abc AND attributes.attr2<5 NOT attributes.attr3>10  |  Abfragen für Objektgruppen, mit booleschen Ausdrücken Begriffe kombinieren. Diese Abfrage gibt Objektgruppen zurück, die ein Attribut mit dem Namen "attr1" mit dem Wert "abc", ein Attribut mit dem Namen "attr2", das kleiner als 5 ist, und ein Attribut mit dem Namen "attr3", das nicht größer als 10 ist, aufweisen.  | 
|  NOT attributes.myAttribute:cde  |  Abfragen von Objektgruppen, bei denen das Attribut namens "myAttribute" nicht "cde" ist.  | 
|  parentGroupNames:(myParentThingGroupName)  |   Abfragen für Dinggruppen, deren übergeordneter Gruppenname mit "myParentThingGroupName" übereinstimmt.  | 
|  parentGroupNames:(myParentThingGroupName OR myRootThingGroupName)  |  Abfragen für Dinggruppen, deren übergeordneter Gruppenname mit "myParentThingGroupName" oder "myRootThingGroupName" übereinstimmt.  | 
|  parentGroupNames:(myParentThingGroupNa\$1)  |  Abfragen für Dinggruppen, deren übergeordneter Gruppenname mit "myParentThingGroupNa" beginnt.  | 

# Indexierung von Standortdaten
<a name="location-indexing-geoquery"></a>

Sie können die [AWS IoT Flottenindizierung](https://docs.aws.amazon.com//iot/latest/developerguide/iot-indexing.html) verwenden, um die zuletzt gesendeten Standortdaten Ihrer Geräte zu indizieren und mithilfe von Geoabfragen nach Geräten zu suchen. Diese Funktion löst Anwendungsfälle für die Geräteüberwachung und -verwaltung wie Standortverfolgung und Näherungssuche. [Die Standortindizierung funktioniert ähnlich wie andere Funktionen zur Flottenindizierung, allerObjekts mit zusätzlichen Konfigurationen, die Sie bei der Indexierung Ihres Objekts angeben müssen.](managing-fleet-index.md) 

Zu den häufigsten Anwendungsfällen gehören: Suchen und Aggregieren von Geräten, die sich innerhalb der gewünschten geografischen Grenzen befinden, Abrufen von standortspezifischen Erkenntnissen mithilfe von Abfragebegriffen in Bezug auf Gerätemetadaten und Status aus indizierten Datenquellen, Bereitstellung einer detaillierten Ansicht, z. B. das Filtern von Ergebnissen nach einem bestimmten geografischen Gebiet, um Rendering-Verzögerungen innerhalb Ihrer Flottenüberwachungskarten zu reduzieren und den zuletzt gemeldeten Gerätestandort zu verfolgen und Geräte zu identifizieren, die sich außerhalb der gewünschten Grenzwerte befinden, und anhand von [Flottenmetriken](iot-fleet-metrics.md) Alarme zu generieren. Erste Schritte mit der Standortindizierung und Geoabfragen finden Sie unter [Erste Schritte-Tutorial](location-indexing-tutorial.md).

## Unterstützte Datumsformate
<a name="location-indexing-format"></a>

AWS IoT Die Flottenindizierung unterstützt die folgenden Standortdatenformate:

1. 

**Bekannte Textdarstellung von Koordinatenreferenzsystemen**

   Eine Zeichenfolge, die dem Format [Geographische Information — Bekannte Textdarstellung von Koordinatenreferenzsystemen](https://docs.ogc.org/is/12-063r5/12-063r5.html) folgt. Ein Beispiel kann sein`"POINT(long lat)"`.

1. 

**Eine Zeichenfolge, die die Koordinaten darstellt**

   Eine Zeichenfolge im Format `"latitude, longitude"` oder `"longitude, latitude"`. Wenn Sie `"longitude, latitude"` angeben, müssen Sie auch `order` in `geoLocations` angeben. Ein Beispiel kann sein `"41.12,-71.34"`.

1. 

**Ein Objekt mit den Tasten Lat (Breitengrad) und Lon (Längengrad)**

   Dieses Format gilt für klassischen Schatten und benannten Schatten. Unterstützte Schlüssel: `lat`, `latitude`, `lon`, `long`, `longitude`. Ein Beispiel kann `{"lat": 41.12, "lon": -71.34}` sein.

1. 

**Ein Array, das die Koordinaten darstellt**

   Ein Array mit dem Format `[lat,lon]` oder `[lon,lat]`. Wenn Sie das Format `[lon,lat]` verwenden, das den Koordinaten in [GeoJSON](https://geojson.org/) entspricht (gilt für klassischen Schatten und benannten Schatten), müssen Sie auch `order` in `geoLocations` angeben.

   Ein Beispiel kann sein:

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

## Wie indexiert man Standortdaten
<a name="location-indexing-steps"></a>

Die folgenden Schritte zeigen, wie Sie die Indexierungskonfiguration für Ihre Standortdaten aktualisieren und Geoabfragen verwenden, um nach Geräten zu suchen.

1. 

**Erfahren Sie, wo Ihre Standortdaten gespeichert sind**

   Die Flottenindizierung unterstützt derzeit die Indizierung von Standortdaten, die in klassischen Schatten oder benannten Schatten gespeichert sind.

1. 

**Verwenden Sie unterstützte Standortdatenformate**

   Stellen Sie sicher, dass Ihr Standortdatenformat einem der [unterstützten Datenformate](#location-indexing-format) entspricht.

1. 

**Aktualisieren Sie die Indexkonfiguration**

   Aktivieren Sie mindestens die Konfiguration für die Indizierung von Objekten (Registrierung). Sie müssen auch die Indizierung für klassische Schatten oder Named Schatten aktivieren, die Ihre Standortdaten enthalten. Wenn Sie Ihre Objekt-Indizierung aktualisieren, sollten Sie Ihre Standortdaten in die Indexierungskonfiguration einbeziehen.

1. 

**Erstellen und Ausführen von -Abfragen**

   Erstellen Sie je nach Ihren Anwendungsfällen Geoabfragen und führen Sie sie aus, um nach Geräten zu suchen. [Die Geoabfrage, die Sie erstellen, muss der Abfragesyntax entsprechen.](https://docs.aws.amazon.com//iot/latest/developerguide/query-syntax.html) Sie finden einige Beispiele in [Beispiele für Geoqueries](#location-indexing-geoqueries).

## Konfiguration der Objektindizierung.
<a name="location-indexing-configuration"></a>

Um Standortdaten zu indizieren, müssen Sie die Indexkonfiguration aktualisieren und Ihre Standortdaten einbeziehen. Gehen Sie je nachdem, wo Ihre Standortdaten gespeichert sind, wie folgt vor, um Ihre Indexierungskonfiguration zu aktualisieren:

### Standortdaten, die in klassischen Schatten gespeichert werden
<a name="location-indexing-shadow-configuration"></a>

Wenn Ihre Standortdaten in einem klassischen Shadow gespeichert sind, müssen Sie `thingIndexingMode` auf `REGISTRY_AND_SHADOW` einstellen und Ihre Standortdaten in den `geoLocations`-Feldern (`name`und`order`) unter [https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html](https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html) angeben.

Im folgenden Konfigurationsbeispiel für die Indizierung geben Sie den Standortdatenpfad `shadow.reported.coordinates` als `name` und `LonLat` als `order` an.

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

  Der Indizierungsmodus steuert, ob Registry oder Shadow indexiert wird. Wenn `thingIndexingMode` auf `OFF` eingestellt ist, ist die Indizierung von Objekten deaktiviert. 

  Um Standortdaten zu indizieren, die in einem klassischen Schatten gespeichert sind, müssen Sie `thingIndexingMode` den Wert auf `REGISTRY_AND_SHADOW` einstellen. Weitere Informationen finden Sie unter [Objektindizierungsmodus.](managing-index.md#index-mode).
+ `filter`

  Der Indexfilter bietet zusätzliche Auswahlmöglichkeiten für benannte Schatten und Geolokalisierungsdaten. Weitere Informationen finden Sie unter [Indizierungsfilter](managing-index.md#thing-indexing-filter).
+ `geoLocations`

  Die Liste der Geolocation-Ziele, die Sie für die Indizierung auswählen. Die Standardanzahl von Geolocation-Zielen für die Indizierung ist `1`. Informationen zum Erhöhen von Limits finden Sie unter [AWS IoT Device Management Kotingente](https://docs.aws.amazon.com//general/latest/gr/iot_device_management.html#fleet-indexing-limits).
+ `name`

  Der Name des Geolocation-Zielfelds. Ein Beispielwert von `name` kann der Standortdatenpfad Ihres Schattens sein:`shadow.reported.coordinates`.
+ `order`

  Die Reihenfolge des Geolocation-Zielfeldes. Gültige Werte: `LatLon` und `LonLat`. `LatLon` bedeutet Breitengrad und Längengrad. `LonLat` bedeutet Längengrad und Breitengrad. Dies ist ein optionales Feld. Der Standardwert ist `LatLon`.

### Standortdaten, die in benannten Schatten gespeichert sind
<a name="location-indexing-named-shadow-configuration"></a>

Wenn Ihre Standortdaten in einem benannten Schatten gespeichert sind, setzen Sie `namedShadowIndexingMode` auf den Wert `ON`, fügen Sie Ihre (n) benannten Schattennamen zum `namedShadowNames`-Feld in [https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html](https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html)hinzu und geben Sie Ihren Standortdatenpfad im `geoLocations` Feld in [https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html](https://docs.aws.amazon.com//iot/latest/apireference/API_IndexingFilter.html) an.

Im folgenden Konfigurationsbeispiel für die Indizierung geben Sie den Standortdatenpfad `shadow.name.namedShadow1.reported.coordinates` als `name` und `LonLat` als `order` an.

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

  Der Indizierungsmodus steuert, ob Registry oder Shadow indexiert wird. Wenn `thingIndexingMode` auf `OFF` eingestellt ist, ist die Indizierung von Objekten deaktiviert. 

  Um Standortdaten, die in einem benannten Schatten gespeichert sind, zu indizieren, müssen Sie `thingIndexingMode` den Wert auf `REGISTRY` (oder `REGISTRY_AND_SHADOW`) setzen. Weitere Informationen finden Sie unter [Objektindizierungsmodus.](managing-index.md#index-mode).
+ `filter`

  Der Indexfilter bietet zusätzliche Auswahlmöglichkeiten für benannte Schatten und Geolokalisierungsdaten. Weitere Informationen finden Sie unter [Indizierungsfilter](managing-index.md#thing-indexing-filter).
+ `geoLocations`

  Die Liste der Geolocation-Ziele, die Sie für die Indizierung auswählen. Die Standardanzahl von Geolocation-Zielen für die Indizierung ist `1`. Informationen zum Erhöhen von Limits finden Sie unter [AWS IoT Device Management Kotingente](https://docs.aws.amazon.com//general/latest/gr/iot_device_management.html#fleet-indexing-limits).
+ `name`

  Der Name des Geolocation-Zielfelds. Ein Beispielwert von `name` kann der Standortdatenpfad Ihres Schattens sein:`shadow.name.namedShadow1.reported.coordinates`.
+ `order`

  Die Reihenfolge des Geolocation-Zielfeldes. Gültige Werte: `LatLon` und `LonLat`. `LatLon` bedeutet Breitengrad und Längengrad. `LonLat` bedeutet Längengrad und Breitengrad. Dies ist ein optionales Feld. Der Standardwert ist `LatLon`.

## Beispiele für Geoqueries
<a name="location-indexing-geoqueries"></a>

Nachdem Sie die Indizierungskonfiguration für Ihre Standortdaten abgeschlossen haben, führen Sie Geoqueries aus, um nach Geräten zu suchen. Sie können Ihre Geoqueries auch mit anderen Abfragezeichenfolgen kombinieren. Weitere Informationen erhalten Sie unter [Abfragesyntax](query-syntax.md) und [Beispiel für Objektabfragen](example-queries.md).

**Beispiel: Abfrage**

In diesem Beispiel wird davon ausgegangen, dass die Standortdaten in einem benannten Schatten `gps-tracker` gespeichert sind. Die Ausgabe dieses Befehls ist die Liste der Geräte, die sich innerhalb einer radialen Entfernung von 15,5 km vom Mittelpunkt befinden, mit Koordinaten (47.6204, -122.3491).

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

**Beispiel: Abfrage**

In diesem Beispiel wird davon ausgegangen, dass die Standortdaten in einem klassischen Schatten gespeichert sind. Die Ausgabe dieses Befehls ist die Liste der Geräte, die sich innerhalb einer radialen Entfernung von 15,5 km vom Mittelpunkt befinden, mit Koordinaten (47.6204, -122.3491).

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

**Beispiel: Abfrage**

In diesem Beispiel wird davon ausgegangen, dass die Standortdaten in einem klassischen Schatten gespeichert sind. Die Ausgabe dieses Befehls ist die Liste der Geräte, die nicht angeschlossen sind und sich außerhalb der radialen Entfernung von 15,5 km vom Mittelpunkt befinden, mit Koordinaten (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)"
```

# Erste Schritte-Tutorial
<a name="location-indexing-tutorial"></a>

In diesem Tutorial wird gezeigt, wie Sie mithilfe der [Flottenindizierung](iot-indexing.md) [Ihre Standortdaten indexieren können](location-indexing-geoquery.md). Der Einfachheit halber erstellen Sie ein Objekt, das Ihr Gerät darstellt, und speichern die Standortdaten in einem benannten Schatten, aktualisieren die Konfiguration der Objektindizierung für die Standortindizierung und führen Beispiel-Geoabfragen aus, um nach Geräten innerhalb einer radialen Grenze zu suchen.

Für dieses Tutorial brauchen Sie ungefähr 20 Minuten.

**Topics**
+ [

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

## Objekte und Schatten erstellen
](#location-indexing-create-resources)
+ [

## Konfiguration der Objektindizierung.
](#location-indexing-update-configuration)
+ [

## Ausführen von Geoquery
](#location-indexing-run-geoquery)

## Voraussetzungen
<a name="location-indexing-tutorial-prerequisites"></a>
+ Installieren der neuesten Version von [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html)
+ Machen Sie sich mit der [Standortindizierung und Geoabfragen](https://docs.aws.amazon.com/iot/latest/developerguide/location-indexing-geoquery.html), der [Verwaltung der Objektindizierung](https://docs.aws.amazon.com/iot/latest/developerguide/managing-index.html) und [der Abfragesyntax](https://docs.aws.amazon.com/iot/latest/developerguide/query-syntax.html) vertraut.

## Objekte und Schatten erstellen
<a name="location-indexing-create-resources"></a>

Sie erstellen ein Objekt, das Ihr Gerät repräsentiert, und einen benannten Schatten, um dessen Standortdaten zu speichern (Koordinaten 47.61564, -122.33584).

1. Führen Sie den folgenden Befehl aus, um Ihr Ding zu erstellen, das Ihr Fahrrad mit dem Namen Bike-1 repräsentiert. *Weitere Informationen zum Erstellen eines Dings mit AWS CLI finden Sie unter [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"}}'
   ```

   Die Ausgabe dieses Befehls kann folgendermaßen aussehen:

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

1. Führen Sie den folgenden Befehl aus, um einen benannten Schatten zum Speichern der Standortdaten von Bike-1 (Koordinaten 47.61564, -122.33584) zu erstellen. *Weitere Informationen zum Erstellen eines benannten Schattens mithilfe [update-thing-shadow](https://docs.aws.amazon.com//cli/latest/reference/iot-data/update-thing-shadow.html)von *AWS CLI*finden Sie in AWS CLI Reference.*

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

   Dieser Befehl liefert keine Ausgabe. Um den benannten Schatten anzuzeigen, den Sie erstellt haben, können Sie den [list-named-shadows-forCLI-Befehl -thing](https://docs.aws.amazon.com//cli/latest/reference/iot-data/list-named-shadows-for-thing.html) ausführen.

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

   Die Ausgabe dieses Befehls sieht wie folgt aus:

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

## Konfiguration der Objektindizierung.
<a name="location-indexing-update-configuration"></a>

Um Ihre Standortdaten zu indizieren, müssen Sie Ihre Objekt-Indizierungskonfiguration so aktualisieren, dass sie die Standortdaten einbezieht. Da Ihre Standortdaten in diesem Tutorial in einem benannten Schatten gespeichert werden, setzen Sie `thingIndexingMode` auf `REGISTRY` (bei einer Mindestanforderung), setzen Sie `namedShadowIndexingMode` auf `ON` und fügen Sie Ihre Standortdaten zur Konfiguration hinzu. In diesem Beispiel müssen Sie den Namen Ihres benannten Schattens und den Pfad für die Standortdaten des Schattens zu `filter` hinzufügen.

1. Führen Sie den Befehl aus, um Ihre Indizierungskonfiguration für die Standortindizierung zu aktualisieren.

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

   Der Befehl erzeugt keine Ausgabe. Möglicherweise müssen Sie einen Moment warten, bis das Update abgeschlossen ist. Führen Sie den CLI-Befehl [describe-index](https://docs.aws.amazon.com//cli/latest/reference/iot/describe-index.html) aus, um den Status zu überprüfen. Wenn `indexStatus` Folgendes anzeigt:`ACTIVE`, ist das Indizierungsupdate Ihres Objekts abgeschlossen.

1. Führen Sie den Befehl aus, um Ihre Konfiguration zu überprüfen. Dieser Schritt ist optional.

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

   Die Ausgabe sieht wie folgt aus:

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

## Ausführen von Geoquery
<a name="location-indexing-run-geoquery"></a>

Jetzt haben Sie Ihre Objekt-Indizierungskonfiguration aktualisiert, sodass sie die Standortdaten enthält. Versuchen Sie, einige Geoqueries zu erstellen und sie auszuführen, um zu sehen, ob Sie die gewünschten Suchergebnisse erhalten können. Eine Geoabfrage muss der [Abfragesyntax](query-syntax.md) folgen. Einige nützliche Beispiel-Geoabfragen finden Sie unter [Beispiele für Geoqueries](location-indexing-geoquery.md#location-indexing-geoqueries).

Im folgenden Beispielbefehl verwenden Sie die Geoabfrage, `shadow.name.Bike1-shadow.reported.coordinates:geo_distance,47.6204,-122.3491,15.5km` um mit Koordinaten (47.6204, -122.3491) nach Geräten zu suchen, die sich innerhalb einer radialen Entfernung von 15,5 km vom Mittelpunkt befinden. 

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

Da Sie ein Gerät an den Koordinaten „lat“: 47.6153, „lon“: -122.3333 haben, das innerhalb einer Entfernung von 15,5 km vom Mittelpunkt liegt, sollten Sie dieses Gerät (Bike-1) in der Ausgabe sehen können. Die Ausgabe sieht wie folgt aus:

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

Weitere Informationen finden Sie unter [Indexierung von Standortdaten](location-indexing-geoquery.md).

# Flottenmetriken
<a name="iot-fleet-metrics"></a>

Flottenkennzahlen sind eine Funktion von [Fleet Indexing](iot-indexing.md), einem verwalteten Service, mit dem Sie die Daten Ihrer Geräte indexieren, durchsuchen und aggregieren können. AWS IoT Mithilfe von Flottenkennzahlen können Sie den Gesamtstatus Ihrer Flottengeräte im [CloudWatch](https://console.aws.amazon.com/cloudwatch/)Laufe der Zeit überwachen, einschließlich der Häufigkeit von Verbindungsabbrüchen oder der durchschnittlichen Änderungen des Batteriestands in einem bestimmten Zeitraum.

Mithilfe von Flottenkennzahlen können Sie [Aggregationsabfragen](index-aggregate.md) erstellen, deren Ergebnisse kontinuierlich [CloudWatch](https://console.aws.amazon.com/cloudwatch/)als Messwerte für die Analyse von Trends und die Erstellung von Alarmen ausgegeben werden. Für Ihre Überwachungsaufgaben können Sie die Aggregationsabfragen verschiedener Aggregationstypen (**Statistik**, **Kardinalität** und **Perzentil**) angeben. Sie können all Ihre Aggregationsabfragen speichern, um Flottenmetriken für die zukünftige Wiederverwendung zu erstellen. 

# Erste Schritte-Tutorial
<a name="fleet-metrics-get-started"></a>

In diesem Tutorial erstellen Sie eine [Flottenmetrik](iot-fleet-metrics.md), um die Temperaturen Ihrer Sensoren zu überwachen und potenzielle Anomalien zu erkennen. Bei der Erstellung der Flottenmetrik definieren Sie eine [Aggregationsabfrage](index-aggregate.md), die die Anzahl der Sensoren mit Temperaturen über ca. 80 Grad Fahrenheit erkennt. Sie geben an, dass die Abfrage alle 60 Sekunden ausgeführt wird CloudWatch, und die Abfrageergebnisse werden an diese gesendet. Dort können Sie die Anzahl der Sensoren mit potenziellen Hochtemperaturrisiken anzeigen und Alarme einrichten. Zum Abschließen dieses Tutorials wird die [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) verwendet. 

In diesem Tutorial lernen Sie Folgendes:
+ [Einrichten](#fleet-metrics-tutorial-setup)
+ [Erstellen einer Flottenmetrik](#fleet-metrics-tutorial-create)
+ [Metriken anzeigen in CloudWatch](#fleet-metrics-tutorial-view-data)
+ [Bereinigen von Ressourcen](#fleet-metrics-tutorial-delete-fleet-metrics)

Für dieses Tutorial brauchen Sie ungefähr 15 Minuten.

## Voraussetzungen
<a name="fleet-metrics-tutorial-prerequisites"></a>
+ Installieren der neuesten Version von [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html)
+ Vertrautmachen mit [Abfragen von Aggregatdaten](https://docs.aws.amazon.com/iot/latest/developerguide/index-aggregate.html)
+ Machen Sie sich mit der [Verwendung von CloudWatch Amazon-Metriken](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html) vertraut 

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

Um Flottenmetriken zu verwenden, aktivieren Sie die Flottenindizierung. Um die Flottenindizierung für Ihre Objekte oder Objektgruppen mit bestimmten Datenquellen und zugehörigen Konfigurationen zu aktivieren, folgen Sie den Anweisungen unter [Verwaltung der Objektindizierung](managing-index.md#enable-index) und [Verwalten der Objektgruppenindizierung](thinggroup-index.md#enable-group-index).

**So führen Sie die Einrichtung durch:**

1. Führen Sie den folgenden Befehl aus, um die Flottenindizierung zu aktivieren, und geben Sie die Datenquellen an, in denen gesucht werden soll. 

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

   Der obenstehende CLI-Beispielbefehl ermöglicht die Flottenindizierung, um die Suche nach Registrierungsdaten, Schattendaten und dem Status der Objektkonnektivität mithilfe des `AWS_Things`-Index zu unterstützen. 

   Die Änderung der Konfiguration kann einige Minuten in Anspruch nehmen. Stellen Sie sicher, dass Ihre Flottenindizierung aktiviert ist, bevor Sie Flottenmetriken erstellen. 

   Führen Sie zum Überprüfen, ob Ihre Flottenindizierung aktiviert wurde, den folgenden CLI-Befehl aus: 

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

   Weitere Informationen finden Sie unter [Aktivieren der Objektindizierung](managing-index.md#enable-index).

1. Führen Sie das folgende Bash-Skript aus, um zehn Objekte zu erstellen und zu beschreiben. 

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

   Dieses Skript erstellt zehn Objekte, die zehn Sensoren repräsentieren. Jedes Objekt hat die Attribute `temperature`, `rackId` und `stateNormal`, wie in der folgenden Tabelle beschrieben:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/iot/latest/developerguide/fleet-metrics-get-started.html)

   Die Ausgabe dieses Skripts enthält zehn JSON-Dateien. Eine der JSON-Dateien sieht wie folgt aus:

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

   Weitere Informationen finden Sie unter [Ein Objekt erstellen](https://docs.aws.amazon.com/iot/latest/developerguide/thing-registry.html#create-thing).

## Erstellen einer Flottenmetrik
<a name="fleet-metrics-tutorial-create"></a>

**So erstellen Sie eine Flottenmetrik:**

1. Führen Sie den folgenden Befehl aus, um eine Flottenmetrik mit dem Namen zu erstellen*high\$1temp\$1FM*. Sie erstellen die Flottenmetrik, um die Anzahl der Sensoren mit Temperaturen über 80 Grad Fahrenheit zu überwachen. 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
   ```

   --metric-name 

   Datentyp: Zeichenfolge. Der Parameter `--metric-name` gibt den Namen einer Flottenmetrik an. In diesem Beispiel erstellen Sie eine Flottenmetrik mit dem Namen *high\$1temp\$1FM*.

   --query-string

   Datentyp: Zeichenfolge. Der Parameter `--query-string` gibt die Abfragezeichenfolge an. In diesem Beispiel bedeutet die Abfragezeichenfolge, dass alle Dinge abgefragt werden, deren Namen mit oder *TempSensor*mit Temperaturen über 80 Grad Fahrenheit beginnen. Weitere Informationen finden Sie unter [Abfragesyntax](query-syntax.md).

   --period 

   Datentyp: Ganzzahl. Der Parameter `--period` gibt die Zeit in Sekunden für die Abfrage der aggregierten Daten an. In diesem Beispiel geben Sie an, dass die Flottenmetrik, die Sie erstellen, die aggregierten Daten alle 60 Sekunden abruft.

   --aggregation-field

   Datentyp: Zeichenfolge. Der Parameter `--aggregation-field` gibt das auszuwertende Attribut an. In diesem Beispiel soll das Temperaturattribut ausgewertet werden.

   --aggregation-type

   Der Parameter`--aggregation-type` gibt die statistische Zusammenfassung an, die in der Flottenmetrik angezeigt werden soll. Für Ihre Überwachungsaufgaben können Sie die Eigenschaften von Aggregationsabfragen für die verschiedenen Aggregationstypen (**Statistik**, **Kardinalität** und **Perzentil**) anpassen. In diesem Beispiel geben Sie **count** für den Aggregationstyp und **Statistics** an, um die Anzahl der Geräte zurückzugeben, deren Attribute der Abfrage entsprechen, mit anderen Worten, um die Anzahl der Geräte zurückzugeben, deren Namen mit oder mit *TempSensor*Temperaturen über 80 Grad Fahrenheit beginnen. Weitere Informationen finden Sie unter [Abfragen von Aggregatdaten](index-aggregate.md).

   Die Ausgabe dieses Befehls sieht wie folgt aus:

   ```
   {
       "metricArn": "arn:aws:iot:region:111122223333:fleetmetric/high_temp_FM", 
       "metricName": "high_temp_FM"
   }
   ```
**Anmerkung**  
Es kann einen Moment dauern, bis die Datenpunkte angezeigt werden. CloudWatch

   Weitere Informationen zum Erstellen einer Flottenmetrik finden Sie unter [Verwalten von Flottenmetriken](managing-fleet-metrics.md).

   Wenn Sie keine Flottenmetrik erstellen können, lesen Sie den Artikel [Problembehebung bei Flottenmetriken](fleet-indexing-troubleshooting.md#fleet-metrics-troubleshooting). 

1. (Optional) Führen Sie den folgenden Befehl aus, um Ihre Flottenmetrik mit dem Namen *high\$1temp\$1FM* zu beschreiben.

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

   Die Ausgabe dieses Befehls sieht wie folgt aus:

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

## Flottenkennzahlen anzeigen in CloudWatch
<a name="fleet-metrics-tutorial-view-data"></a>

Nachdem Sie die Flottenkennzahl erstellt haben, können Sie die Metrikdaten unter anzeigen CloudWatch. In diesem Tutorial sehen Sie die Metrik, die die Anzahl der Sensoren angibt, deren Namen mit *TempSensor*und mit Temperaturen über 80 Grad Fahrenheit beginnen.

**Um Datenpunkte anzuzeigen in CloudWatch**

1. Öffnen Sie die CloudWatch Konsole unter [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/). 

1. Wählen Sie im CloudWatch Menü auf der linken Seite **Metriken** aus, um das Untermenü zu erweitern, und wählen Sie dann **Alle Metriken** aus. Dadurch wird eine Seite geöffnet, bei der die obere Hälfte das Diagramm und die untere Hälfte vier Abschnitte mit Registerkarten enthält.

1. Im ersten Abschnitt mit Registerkarten werden **alle Metriken** aufgeführt, die Sie in Gruppen anzeigen können. Wählen Sie **Io TFleet** Metrics aus. Diese enthält all Ihre Flottenmetriken.

1. Wählen Sie auf der Registerkarte **Alle Metriken** im Abschnitt **Aggregationstyp** die Option **Aggregationstyp** aus, um alle von Ihnen erstellten Flottenmetriken anzuzeigen. 

1. Wählen Sie links im Abschnitt **Aggregationstyp** die Flottenmetrik aus, für die das Diagramm angezeigt werden soll. Sie sehen den Wert *count* links neben Ihrem **Metriknamen**. Dies ist der Wert des Aggregationstyps, den Sie in diesem Tutorial im Abschnitt [Flottenkennzahlen erstellen](#fleet-metrics-tutorial-create) angegeben haben.

1. Wählen Sie die zweite Registerkarte mit dem Namen **Grafische Metriken** rechts neben der Registerkarte **Alle Metriken**, um die Flottenmetrik anzuzeigen, die Sie im vorherigen Schritt ausgewählt haben.

   Sie sollten ein Diagramm sehen, das die Anzahl der Sensoren mit Temperaturen über 80 Grad Fahrenheit anzeigt, wie in diesem Beispiel:  
![\[AWS IoT Flottenkennzahlen\]](http://docs.aws.amazon.com/de_de/iot/latest/developerguide/images/fm-metric-in-cloudwatch.png)
**Anmerkung**  
Das **Perioden-Attribut** CloudWatch ist standardmäßig auf 5 Minuten eingestellt. Es ist das Zeitintervall zwischen Datenpunkten, die in CloudWatch angezeigt werden. Sie können die Einstellung für den **Zeitraum** je nach Bedarf ändern.

1. (Optional) Sie können einen metrischen Alarm einrichten. 

   1. Wählen Sie im CloudWatch Menü auf der linken Seite **Alarme** aus, um das Untermenü zu erweitern, und wählen Sie dann **Alle Alarme**.

   1. Wählen Sie auf der Seite **Alarme** in der oberen rechten Ecke die Option **Alarm erstellen** aus. Folgen Sie den Anweisungen zum **Erstellen eines Alarms** in der Konsole, um bei Bedarf einen Alarm zu erstellen. Weitere Informationen finden Sie unter [ CloudWatch Amazon-Alarme verwenden](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html).

Weitere Informationen finden Sie [unter Verwenden von CloudWatch Amazon-Metriken](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html). 

Wenn Sie darin keine Datenpunkte sehen können CloudWatch, lesen Sie die Informationen [zur Fehlerbehebung bei Flottenkennzahlen](fleet-indexing-troubleshooting.md#fleet-metrics-troubleshooting).

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

**So löschen Sie Flottenkennzahlen:**

Verwenden Sie den **delete-fleet-metric**-CLI-Befehl, um Flottenmetriken zu löschen.

Führen Sie den folgenden Befehl aus, um die Flottenmetrik mit dem Namen *high\$1temp\$1FM* zu löschen.

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

**So löschen Sie Objekte:**

Mit dem CLI-Befehl **delete-thing** können Sie ein Objekt löschen.

Um die zehn Objekte zu löschen, die Sie erstellt haben, führen Sie das folgende Skript aus:

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

**Um Kennzahlen zu bereinigen in CloudWatch**

CloudWatch unterstützt das Löschen von Metriken nicht. Metriken laufen je nach ihren Aufbewahrungplänen ab. Weitere Informationen finden Sie [unter Verwenden von CloudWatch Amazon-Metriken](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html).

# Verwalten von Flottenmetriken
<a name="managing-fleet-metrics"></a>

In diesem Thema erfahren Sie, wie Sie die AWS IoT Konsole verwenden und AWS CLI Ihre Flottenkennzahlen verwalten.

**Topics**
+ [

## Verwalten von Flottenmetriken (Konsole)
](#managing-fleet-metrics-console)
+ [

## Verwalten von Flottenmetriken (CLI)
](#managing-fleet-metrics-cli)
+ [

## Autorisieren des Taggings von IoT-Ressourcen
](#managing-fleet-metrics-policy)

## Verwalten von Flottenmetriken (Konsole)
<a name="managing-fleet-metrics-console"></a>

In den folgenden Abschnitten wird gezeigt, wie Sie die AWS IoT Konsole zur Verwaltung Ihrer Flottenkennzahlen verwenden. Stellen Sie sicher, dass Sie die Flottenindizierung mit den zugehörigen Datenquellen und Konfigurationen aktiviert haben, bevor Sie Flottenmetriken erstellen.

### Aktivieren der Flottenindizierung
<a name="setup-steps-console"></a>

Wenn Sie die Flottenindizierung bereits aktiviert haben, überspringen Sie diesen Abschnitt.

Wenn Sie die Flottenindizierung nicht aktiviert haben, folgen Sie diesen Anweisungen.

1. Öffnen Sie Ihre AWS IoT Konsole unter [https://console.aws.amazon.com/iot/](https://console.aws.amazon.com/iot/).

1. Wählen Sie im AWS IoT Menü **Einstellungen**. 

1. Um die detaillierten Einstellungen einzusehen, scrollen Sie auf der Seite **Einstellungen** nach unten zum Abschnitt **Flottenindizierung**.

1. Um Ihre Einstellungen für die Flottenindizierung zu aktualisieren, wählen Sie rechts neben dem Abschnitt **Flottenindizierung** die Option **Indizierung verwalten** aus. 

1. Aktualisieren Sie auf der Seite **Einstellungen für die Flottenindizierung verwalten** Ihre Einstellungen für die Flottenindizierung nach Ihren Anforderungen. 
   + **Konfiguration**

     Um die Objektindizierung zu aktivieren, aktivieren Sie die **Objektindizierung** und wählen Sie dann die Datenquellen aus, für die Sie die Indizierung durchführen möchten. 

     Um die Indizierung von Objektgruppen zu aktivieren, aktivieren Sie die **Indexierung von Thing-Gruppen**.
   + **Benutzerdefinierte Felder für die Aggregation – *optional***

     Benutzerdefinierte Felder sind eine Liste von Paaren aus Feldnamen und Feldtypen. 

     Um ein benutzerdefiniertes Feldpaar hinzuzufügen, wählen Sie **Neues Feld hinzufügen**. Geben Sie einen benutzerdefinierten Feldnamen ein, wie z. B. `attributes.temperature`, und wählen Sie dann einen Feldtyp aus dem Menü **Feldtyp** aus. Beachten Sie, dass ein benutzerdefinierter Feldname mit `attributes.` beginnt und als Attribut gespeichert wird, um [Abfragen zur Aggregation von Objekten](https://docs.aws.amazon.com/iot/latest/developerguide/index-aggregate.html) auszuführen.

     Um die Einstellung zu aktualisieren und zu speichern, wählen Sie **Aktualisieren**.

### Erstellen einer Flottenmetrik
<a name="create-fleet-metrics-console"></a>

1. Öffnen Sie Ihre AWS IoT Konsole unter [https://console.aws.amazon.com/iot/](https://console.aws.amazon.com/iot/). 

1. Wählen Sie im AWS IoT Menü **Manage** und anschließend **Fleet Metrics** aus.

1. Wählen Sie auf der Seite **Flottenmetriken** die Option **Flottenmetrik erstellen** aus und schließen Sie die Schritte zur Erstellung ab.

1. **Konfigurieren Sie in Schritt 1 Flottenmetriken**.
   + Geben Sie im Abschnitt **Abfrage** eine Abfragezeichenfolge ein, um die Objekte oder Objektgruppen anzugeben, für die Sie die Aggregatsuche durchführen möchten. Die Abfragezeichenfolge besteht aus einem Attribut und einem Wert. Wählen Sie unter **Eigenschaften** das gewünschte Attribut aus, oder geben Sie das Attribut in das Feld ein, falls es nicht in der Liste angezeigt wird. Geben Sie den Wert nach `:` ein. Ein Beispiel für eine Abfragezeichenfolge kann `thingName:TempSensor*` sein. Drücken Sie für jede eingegebene Abfragezeichenfolge die **Eingabetaste** auf Ihrer Tastatur. Wenn Sie mehrere Abfragezeichenfolgen eingeben, geben Sie deren Beziehung an, indem Sie **und**, **oder** **und nicht** oder **oder nicht** auswählen. 
   + Wählen Sie in den **Berichtseigenschaften** **Indexname**, **Aggregationstyp** und **Aggregationsfeld** aus den jeweiligen Listen aus. Wählen Sie als Nächstes unter **Daten auswählen** die Daten aus, die Sie aggregieren möchten. Sie können dabei mehrere Datenwerte auswählen.
   + Wählen Sie **Weiter** aus.

1. **Geben Sie in Schritt 2 die Eigenschaften der Flottenmetrik an**.
   + Geben Sie im Feld **Name der Flottenmetrik** einen Namen für die Flottenmetrik ein, die Sie erstellen.
   + Geben Sie im Feld **Beschreibung – *optional*** eine Beschreibung für die Flottenmetrik ein, die Sie erstellen. Dies ist ein optionales Feld. 
   + Geben Sie in den Feldern **Stunden** und **Minuten** die Uhrzeit (wie oft) ein, zu der die Flottenkennzahl Daten senden soll CloudWatch.
   + Wählen Sie **Weiter** aus.

1. **Überprüfen und Erstellen Sie Ihre Metrik in Schritt 5**.
   + Überprüfen Sie die Einstellungen aus Schritt 1 und Schritt 2. Zum Bearbeiten der Einstellungen wählen Sie **Bearbeiten**.
   + Wählen Sie **Flottenmetrik erstellen** aus.

Nach erfolgreicher Erstellung wird die Flottenmetrik auf der Seite **Flottenmetrik** aufgeführt.

### Aktualisieren einer Flottenmetrik
<a name="update-fleet-metrics-console"></a>

1. Wählen Sie auf der Seite **Flottenmetrik** die Flottenmetrik aus, die Sie aktualisieren möchten.

1. Klicken Sie auf der Seite **Details** auf **Bearbeiten**. Dadurch werden die Schritte zur Erstellung geöffnet, in denen Sie Ihre Flottenmetrik in einem der drei Schritte aktualisieren können. 

1. Nachdem Sie die Aktualisierung der Flottenmetrik abgeschlossen haben, wählen Sie **Flottenmetrik aktualisieren** aus.

### Löschen einer Flottenmetrik
<a name="delete-fleet-metrics-console"></a>

1. Wählen Sie auf der Seite **Flottenmetrik** die Flottenmetrik aus, die Sie löschen möchten.

1. Wählen Sie auf der nächsten Seite, auf der Details zu Ihrer Flottenmetrik angezeigt werden, **Löschen** aus.

1. Geben Sie im Dialogfeld den Namen Ihrer Flottenmetrik ein, um das Löschen zu bestätigen.

1. Wählen Sie **Löschen** aus. In diesem Schritt wird Ihre Flottenmetrik dauerhaft gelöscht.

## Verwalten von Flottenmetriken (CLI)
<a name="managing-fleet-metrics-cli"></a>

In den folgenden Abschnitten wird gezeigt, wie Sie mit AWS CLI dem Ihre Flottenkennzahlen verwalten können. Stellen Sie sicher, dass Sie die Flottenindizierung mit den zugehörigen Datenquellen und Konfigurationen aktiviert haben, bevor Sie Flottenmetriken erstellen. Um die Flottenindizierung für Ihre Objekte oder Objektgruppen zu aktivieren, folgen Sie den Anweisungen unter [Verwalten der Objektindizierung](managing-index.md#enable-index) oder [Verwalten der Objektgruppenindizierung](thinggroup-index.md#enable-group-index).

### Erstellen einer Flottenmetrik
<a name="create-fleet-metrics"></a>

Sie können den create-fleet-metric CLI-Befehl verwenden, um eine Flottenmetrik zu erstellen. 

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

Die Ausgabe dieses Befehls enthält den Namen und den Amazon-Ressourcennamen (ARN) Ihrer Flottenmetrik. Die Ausgabe sollte wie folgt aussehen:

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

### Auflisten von Flottenmetriken
<a name="list-fleet-metrics"></a>

Sie können den list-fleet-metric CLI-Befehl verwenden, um alle Flottenkennzahlen in Ihrem Konto aufzulisten. 

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

Die Ausgabe dieses Befehls enthält alle Flottenmetriken. Die Ausgabe sollte wie folgt aussehen:

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

### Beschreiben einer Flottenmetrik
<a name="describe-fleet-metrics"></a>

Sie können den describe-fleet-metric CLI-Befehl verwenden, um detailliertere Informationen zu einer Flottenmetrik anzuzeigen. 

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

Die Ausgabe des Befehls enthält detaillierte Informationen über die angegebene Flottenmetrik. Die Ausgabe sollte wie folgt aussehen:

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

### Aktualisieren einer Flottenmetrik
<a name="update-fleet-metrics"></a>

Sie können den update-fleet-metric CLI-Befehl verwenden, um eine Flottenmetrik zu aktualisieren. 

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

Der Befehl update-fleet-metric erzeugt keine Ausgabe. Sie können den describe-fleet-metric CLI-Befehl verwenden, um das Ergebnis zu sehen.

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

### Löschen einer Flottenmetrik
<a name="delete-fleet-metrics"></a>

Verwenden Sie den delete-fleet-metric CLI-Befehl, um eine Flottenmetrik zu löschen. 

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

Dieser Befehl erzeugt keine Ausgabe, wenn das Löschen erfolgreich ist oder wenn Sie eine Flottenmetrik angeben, die nicht existiert.

Weitere Informationen finden Sie unter [Problembehebung bei Flottenmetriken](fleet-indexing-troubleshooting.md#fleet-metrics-troubleshooting).

## Autorisieren des Taggings von IoT-Ressourcen
<a name="managing-fleet-metrics-policy"></a>

Für eine bessere Kontrolle über Flottenmetriken, die Sie erstellen, ändern oder verwenden, können Sie den Flottenmetriken Tags hinzufügen.

Um Flottenkennzahlen zu taggen, die Sie mithilfe von AWS-Managementkonsole oder erstellen AWS CLI, müssen Sie die `iot:TagResource` Aktion in Ihre IAM-Richtlinie aufnehmen, um den Benutzern Berechtigungen zu gewähren. Wenn Ihre IAM-Richtlinie `iot:TagResource` nicht beinhaltet, wird bei allen Aktionen zur Erstellung einer Flottenmetrik mit einem Tag ein Fehler `AccessDeniedException` zurückgegeben.

Weitere allgemeine Informationen zum Taggen von Ressourcen finden Sie unter [Markieren Ihrer AWS IoT -Ressourcen](https://docs.aws.amazon.com//iot/latest/developerguide/tagging-iot.html).

### Beispiele für IAM-Richtlinien
<a name="managing-fleet-metrics-policy-example"></a>

Sehen Sie sich das folgende Beispiel für eine IAM-Richtlinie an, in dem Tagging-Berechtigungen gewährt werden, wenn Sie eine Flottenmetrik erstellen:

****  

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

Weitere Informationen finden Sie unter [Aktionen, Ressourcen und Bedingungsschlüssel für AWS IoT](https://docs.aws.amazon.com//service-authorization/latest/reference/list_awsiot.html).