

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.

# Ereignisse im Lebenszyklus
<a name="life-cycle-events"></a>

AWS IoT kann Lebenszyklusereignisse zu den MQTT-Themen veröffentlichen. Diese Ereignisse stehen standardmäßig zur Verfügung und können nicht deaktiviert werden.

**Anmerkung**  
Nachrichten zum Lebenszyklus können ohne feste Reihenfolge gesendet werden. Unter Umständen erhalten Sie einzelne Nachrichten auch mehrfach.  
`thingName`wird nur aufgenommen, wenn der Client über die [exklusive](exclusive-thing.md) Funktion eine Verbindung herstellt.

**Topics**
+ [„Verbinden/Verbindung trennen“-Ereignisse](#connect-disconnect)
+ [Ereignis mit fehlgeschlagenem Verbindungsversuch](#connect-authfailure-event)
+ [„Abonnieren/Abonnement beenden“-Ereignisse](#subscribe-unsubscribe-events)

## „Verbinden/Verbindung trennen“-Ereignisse
<a name="connect-disconnect"></a>

**Anmerkung**  
Mit der Flottenindizierung von AWS IoT Device Management können Sie nach Dingen suchen, aggregierte Abfragen ausführen und dynamische Gruppen auf der Grundlage von Connect/Disconnect Dingereignissen erstellen. Weitere Informationen finden Sie unter [Flottenindizierung](https://docs.aws.amazon.com//iot/latest/developerguide/iot-indexing.html).

AWS IoT veröffentlicht eine Nachricht zu den folgenden MQTT-Themen, wenn ein Client eine Verbindung herstellt oder trennt:
+ `$aws/events/presence/connected/clientId`: Ein Client, der mit dem Message Broker verbunden ist.
+ `$aws/events/presence/disconnected/clientId`: Ein Client, dessen Verbindung mit dem Message Broker getrennt wurde

Im Folgenden finden Sie eine Liste von JSON-Elementen, die in den zum Thema veröffentlichten connection/disconnection Nachrichten enthalten sind. `$aws/events/presence/connected/clientId`

**clientId**  
Die Client-ID des Clients, der eine Verbindung herstellt oder trennt  
Clients IDs , die \$1 oder \$1 enthalten, empfangen keine Lebenszyklusereignisse.

**thingName**  
Der Name deiner IoT-Sache. `thingName`wird nur aufgenommen, wenn der Client über die [exklusive Ding-Funktion eine](exclusive-thing.md) Verbindung herstellt.

**clientInitiatedDisconnect**  
„True“, wenn der Client die Verbindungstrennung initiiert hat. Ansonsten „false“. Nur in Trennungsnachrichten.

**disconnectReason**  
Der Grund, warum der Client die Verbindung trennt. Nur in Trennungsnachrichten. Die folgende Tabelle enthält gültige Werte und gibt an, ob der Broker beim Verbindungsabbruch [Last Will and Testament (LWT)-Nachrichten](mqtt.md#mqtt-lwt) sendet.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/iot/latest/developerguide/life-cycle-events.html)
1 Wenn das Gerät vor dem Auftreten dieses Fehlers über eine aktive Verbindung verfügte.  
2 Um LWT-Nachrichten (Last Will and Testament) `preventWillMessage=true` zu verhindern, legen Sie fest, dass das standardmäßige `DeleteConnection` LWT-Sendeverhalten der API außer Kraft gesetzt wird.

**eventType**  
Der Ereignistyp. Gültige Werte sind `connected` oder `disconnected`. 

**ipAddress**  
Die IP-Adresse des verbindenden Clients. Dies kann im IPv4 oder IPv6 -Format sein. Nur in Verbindungsnachrichten. 

**principalIdentifier**  
Die zur Anmeldung verwendeten Anmeldeinformationen. Für gegenseitige TLS-Authentifizierungszertifikate ist dies die Zertifikat-ID. Für andere Verbindungsarten sind dies die IAM-Anmeldeinformationen.

**sessionIdentifier**  
Ein global eindeutiger Bezeichner AWS IoT , der für die Dauer der Sitzung existiert.

**Zeitstempel**  
Eine ungefähre Schätzung, wann das Ereignis eingetreten ist.

**versionNumber**  
Die Versionsnummer für das Lebenszyklusereignis. Dies ist ein monoton ansteigender langer Ganzzahlwert für jede Client-ID-Verbindung. Die Versionsnummer kann von einem Abonnenten verwendet werden, um die Reihenfolge der Lebenszyklusereignisse festzustellen.  
Die Verbindungs- und Trennungsnachrichten für eine Client-Verbindung haben dieselbe Versionsnummer.  
Die Versionsnummer kann Werte überspringen und wird nicht zwingend konsistent für jedes Ereignis um 1 erhöht.  
Wenn ein Client etwa eine Stunde lang nicht verbunden ist, wird die Versionsnummer auf 0 zurückgesetzt. Bei persistenten Sitzungen wird die Versionsnummer auf 0 zurückgesetzt, nachdem ein Client länger als die für die persistente Sitzung konfigurierte Verbindung time-to-live (TTL) getrennt wurde.

Eine Verbindungsnachricht hat die folgende Struktur.

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

Eine Trennungsnachricht hat die folgende Struktur.

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

### Umgang mit Client-Verbindungstrennungen
<a name="reconnect"></a>

Es ist eine bewährte Methode, für Lebenszyklusereignisse (einschließlich [Last Will and Testament (LWT)-Nachrichten)](mqtt.md) stets einen implementierten Wartestatus zu verwenden. Wenn eine getrennte Verbindung signalisiert wird, sollte Ihr Code eine gewisse Zeit warten und überprüfen, ob ein Gerät noch offline ist, bevor Maßnahmen ergriffen werden. Eine Möglichkeit dazu ist das Verwenden von [SQS-Verzögerungswarteschlangen](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-delay-queues.html). Wenn ein Client ein LWT- oder Lebenszyklusereignis erhält, können Sie eine Nachricht für (beispielsweise) ca. 5 Sekunden in eine Warteschlange stellen. Wenn die Nachricht verfügbar ist und verarbeitet wird (durch Lambda oder einen anderen Service), können Sie zunächst überprüfen, ob das Gerät immer noch offline ist, bevor Sie zu weiteren Maßnahmen greifen.

## Ereignis mit fehlgeschlagenem Verbindungsversuch
<a name="connect-authfailure-event"></a>

AWS IoT veröffentlicht eine Nachricht zum folgenden MQTT-Thema, wenn ein Client nicht autorisiert ist, eine Verbindung herzustellen, oder wenn ein Testament konfiguriert ist und der Client nicht berechtigt ist, zu diesem letzten Testament-Thema zu veröffentlichen.

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

Im Folgenden finden Sie eine Liste der JSON-Elemente, die in den Verbindungsautorisierungsnachrichten enthalten sind, die zu `$aws/events/presence/connect_failed/clientId` diesem Thema veröffentlicht wurden.

**clientId**  
Die Client-ID des Clients, der versucht hat, eine Verbindung herzustellen, aber fehlgeschlagen ist.  
Clients IDs , die \$1 oder \$1 enthalten, empfangen keine Lebenszyklusereignisse.

**thingName**  
Der Name deiner IoT-Sache. `thingName`wird nur aufgenommen, wenn der Client über die [exklusive Ding-Funktion eine](exclusive-thing.md) Verbindung herstellt.

**Zeitstempel**  
Eine ungefähre Schätzung, wann das Ereignis eingetreten ist.

**eventType**  
Der Ereignistyp. Gültiger Wert ist`connect_failed`.

**connectFailureReason**  
Der Grund, warum die Verbindung fehlschlägt. Gültiger Wert ist`AUTHORIZATION_FAILED`.

**principalIdentifier**  
Die zur Anmeldung verwendeten Anmeldeinformationen. Für gegenseitige TLS-Authentifizierungszertifikate ist dies die Zertifikat-ID. Für andere Verbindungsarten sind dies die IAM-Anmeldeinformationen.

**sessionIdentifier**  
Ein global eindeutiger Bezeichner AWS IoT , der für die Dauer der Sitzung existiert.

**ipAddress**  
Die IP-Adresse des verbindenden Clients. Dies kann in unserem IPv4 IPv6 Format sein. Nur in Verbindungsnachrichten.

Eine Meldung über einen Verbindungsfehler hat die folgende Struktur.

```
{
    "clientId": "186b5",
    "thingName": "exampleThing",
    "timestamp": 1460065214626,
    "eventType": "connect_failed",
    "connectFailureReason": "AUTHORIZATION_FAILED",
    "principalIdentifier": "12345678901234567890123456789012",
    "sessionIdentifier": "00000000-0000-0000-0000-000000000000",
    "ipAddress" : "192.0.2.0"
}
```

## „Abonnieren/Abonnement beenden“-Ereignisse
<a name="subscribe-unsubscribe-events"></a>

AWS IoT veröffentlicht eine Nachricht zum folgenden MQTT-Thema, wenn ein Client ein MQTT-Thema abonniert oder abbestellt:

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

 oder 

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

Hierbei ist `clientId` die MQTT-Client-ID, über die eine Verbindung zum AWS IoT Message Broker hergestellt wird.

Die im Topic veröffentlichte Nachricht weist die folgende Struktur auf:

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

Die nachfolgende Liste enthält JSON-Elemente, die in „Abonnieren/Abonnement abbestellen“-Nachrichten enthalten sind, die an die Topics `$aws/events/subscriptions/subscribed/clientId` und `$aws/events/subscriptions/unsubscribed/clientId` gesendet werden.

clientId  
Die Client-ID des Clients, der ein Topic abonniert oder das Abonnement abbestellt.  
Clients IDs , die \$1 oder \$1 enthalten, empfangen keine Lebenszyklusereignisse.

thingName  
Der Name deiner IoT-Sache. `thingName`wird nur aufgenommen, wenn der Client über die [exklusive Ding-Funktion eine](exclusive-thing.md) Verbindung herstellt.

eventType  
Der Ereignistyp. Gültige Werte sind `subscribed` oder `unsubscribed`. 

principalIdentifier  
Die zur Anmeldung verwendeten Anmeldeinformationen. Für gegenseitige TLS-Authentifizierungszertifikate ist dies die Zertifikat-ID. Für andere Verbindungsarten sind dies die IAM-Anmeldeinformationen.

sessionIdentifier  
Ein global eindeutiger Bezeichner AWS IoT , der für die Dauer der Sitzung existiert.

Zeitstempel  
Eine ungefähre Schätzung, wann das Ereignis eingetreten ist.

topics  
Ein Array der vom Client abonnierten MQTT-Topics.

**Anmerkung**  
Nachrichten zum Lebenszyklus können ohne feste Reihenfolge gesendet werden. Unter Umständen erhalten Sie einzelne Nachrichten auch mehrfach.