

Hinweis zum Ende des Supports: Am 20. Mai 2026 AWS endet der Support für AWS IoT Events. Nach dem 20. Mai 2026 können Sie nicht mehr auf die AWS IoT Events Konsole oder AWS IoT Events die Ressourcen zugreifen. Weitere Informationen finden Sie unter [AWS IoT Events Ende des Supports](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-end-of-support.html).

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.

# Problembehebung AWS IoT Events
<a name="iotevents-troubleshooting"></a>

 Diese Anleitung zur Fehlerbehebung bietet Lösungen für häufig auftretende Probleme, die bei der Verwendung auftreten können AWS IoT Events. Lesen Sie die Themen, um Probleme bei der Erkennung von Ereignissen, beim Zugriff auf Daten, Berechtigungen, Serviceintegrationen, Gerätekonfigurationen und mehr zu identifizieren und zu lösen. Mit Tipps zur Fehlerbehebung für AWS IoT Events Konsole, API, CLI, Fehler, Latenz und Integrationen soll dieser Leitfaden darauf abzielen, Ihre Probleme schnell zu lösen, damit Sie zuverlässige und skalierbare ereignisgesteuerte Anwendungen erstellen können.

**Topics**
+ [Allgemeine AWS IoT Events Probleme und Lösungen](iotevents-error-messages.md)
+ [Fehlerbehebung bei einem Detektormodell durch Ausführen von Analysen in AWS IoT Events](iotevents-analyze-api.md)

# Allgemeine AWS IoT Events Probleme und Lösungen
<a name="iotevents-error-messages"></a>

Im folgenden Abschnitt finden Sie Informationen zur Behebung von Fehlern und möglichen Lösungen zur Behebung von Problemen mit AWS IoT Events.

**Topics**
+ [Fehler bei der Erstellung des Detektormodells](#create-detector-model)
+ [Aktualisierungen aus einem gelöschten Meldermodell](#update-detector-model)
+ [Fehler beim Auslösen einer Aktion (wenn eine Bedingung erfüllt ist)](#no-action)
+ [Fehler beim Auslösen einer Aktion (bei Überschreitung eines Schwellenwerts)](#trigger-action)
+ [Falsche Verwendung des Status](#wrong-state)
+ [Verbindungsnachricht](#connection-aborted-error)
+ [InvalidRequestException Nachricht](#invalid-request)
+ [Amazon CloudWatch `action.setTimer` Logs-Fehler](#cw-logs-timer)
+ [CloudWatch Amazon-Payload-Fehler](#cw-logs-payload)
+ [Inkompatible Datentypen](#troubleshoot-expressions-incompatible-data-types)
+ [Nachricht konnte nicht gesendet werden an AWS IoT Events](#failed-to-send-to-iot-events)

## Fehler bei der Erstellung des Detektormodells
<a name="create-detector-model"></a>

Ich erhalte Fehler, wenn ich versuche, ein Detektormodell zu erstellen.

### Lösung
<a name="w2aac42c11b7b5b1b1"></a>

 Wenn Sie ein Detektormodell erstellen, müssen Sie die folgenden Einschränkungen berücksichtigen. 
+ In jedem `action` Feld ist nur eine Aktion zulässig.
+ Das `condition` ist erforderlich für`transitionEvents`. Es ist optional für `OnEnter``OnInput`, und `OnExit` Ereignisse. 
+ Wenn das `condition` Feld leer ist, entspricht das ausgewertete Ergebnis des Bedingungsausdrucks`true`. 
+ Das ausgewertete Ergebnis des Bedingungsausdrucks sollte ein boolescher Wert sein. Wenn das Ergebnis kein boolescher Wert ist, entspricht es dem `actions` im Ereignis `nextState` angegebenen Wert `false` und löst diesen nicht aus. 

Weitere Informationen finden Sie unter [AWS IoT Events Einschränkungen und Einschränkungen des Detektormodells](iotevents-restrictions-detector-model.md). 

## Aktualisierungen aus einem gelöschten Meldermodell
<a name="update-detector-model"></a>

Ich habe vor ein paar Minuten ein Meldermodell aktualisiert oder gelöscht, erhalte aber immer noch Statusaktualisierungen vom alten Meldermodell über MQTT-Nachrichten oder SNS-Benachrichtigungen.

### Lösung
<a name="w2aac42c11b9b5b1b1"></a>

Wenn Sie ein Detektormodell aktualisieren, löschen oder neu erstellen (siehe [UpdateDetectorModel](https://docs.aws.amazon.com/iotevents/latest/apireference/API_UpdateDetectorModel.html)), kommt es zu einer Verzögerung, bis alle Detektorinstanzen gelöscht und das neue Modell verwendet wird. Während dieser Zeit werden Eingaben möglicherweise weiterhin von den Instanzen der vorherigen Version des Detektormodells verarbeitet. Möglicherweise erhalten Sie weiterhin Warnmeldungen, die durch das vorherige Meldermodell definiert wurden. Warten Sie mindestens sieben Minuten, bevor Sie das Update erneut überprüfen oder einen Fehler melden. 

## Fehler beim Auslösen einer Aktion (wenn eine Bedingung erfüllt ist)
<a name="no-action"></a>

Der Detektor kann keine Aktion auslösen oder in einen neuen Zustand übergehen, wenn die Bedingung erfüllt ist.

### Lösung
<a name="w2aac42c11c11b5b1b1"></a>

Stellen Sie sicher, dass das ausgewertete Ergebnis des bedingten Ausdrucks des Detektors ein boolescher Wert ist. Wenn das Ergebnis kein boolescher Wert ist, entspricht es dem `action` im Ereignis `nextState` angegebenen Wert `false` und löst diesen nicht aus. Weitere Informationen finden Sie unter Syntax für [bedingte Ausdrücke](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-conditional-expressions.html). 

## Fehler beim Auslösen einer Aktion (bei Überschreitung eines Schwellenwerts)
<a name="trigger-action"></a>

Der Detektor löst keine Aktion oder keinen Ereignisübergang aus, wenn die Variable in einem bedingten Ausdruck einen bestimmten Wert erreicht.

### Lösung
<a name="w2aac42c11c13b5b1b1"></a>

Wenn Sie `setVariable` für`onInput`, `onEnter` oder aktualisieren`onExit`, wird der neue Wert bei der Auswertung `condition` während des aktuellen Verarbeitungszyklus nicht verwendet. Stattdessen wird der ursprüngliche Wert verwendet, bis der aktuelle Zyklus abgeschlossen ist. Sie können dieses Verhalten ändern, indem Sie den `evaluationMethod` Parameter in der Definition des Detektormodells festlegen. Wenn auf gesetzt `evaluationMethod` ist`SERIAL`, werden Variablen aktualisiert und die Ereignisbedingungen in der Reihenfolge ausgewertet, in der die Ereignisse definiert sind. Wenn auf gesetzt `evaluationMethod` ist `BATCH` (Standardeinstellung), werden Variablen aktualisiert und Ereignisse erst ausgeführt, nachdem alle Ereignisbedingungen ausgewertet wurden. 

## Falsche Verwendung des Status
<a name="wrong-state"></a>

Der Detektor wechselt in den falschen Status, wenn ich versuche, Nachrichten an Eingänge zu senden, indem `BatchPutMessage` ich

### Lösung
<a name="w2aac42c11c15b5b1b1"></a>

 Wenn Sie früher [BatchPutMessage](https://docs.aws.amazon.com/iotevents/latest/apireference/API_iotevents-data_BatchPutMessage.html)mehrere Nachrichten an Eingänge senden, ist die Reihenfolge, in der die Nachrichten oder Eingaben verarbeitet werden, nicht garantiert. Um die Bestellung zu garantieren, senden Sie Nachrichten nacheinander und warten Sie jedes Mal`BatchPutMessage`, bis Sie den Erfolg bestätigen. 

## Verbindungsnachricht
<a name="connection-aborted-error"></a>

Ich erhalte eine `('Connection aborted.', error(54, 'Connection reset by peer'))` Fehlermeldung, wenn ich versuche, eine API aufzurufen oder aufzurufen.

### Lösung
<a name="w2aac42c11c17b5b1b1"></a>

Stellen Sie sicher, dass OpenSSL TLS 1.1 oder eine neuere Version verwendet, um die Verbindung herzustellen. Dies sollte unter den meisten Linux-Distributionen oder Windows Version 7 und höher die Standardeinstellung sein. Benutzer von macOS müssen möglicherweise OpenSSL aktualisieren.

## InvalidRequestException Nachricht
<a name="invalid-request"></a>

Ich erhalte InvalidRequestException , wenn ich versuche anzurufen `CreateDetectorModel` und `UpdateDetectorModel` APIs.

### Lösung
<a name="w2aac42c11c19b5b1b1"></a>

Überprüfen Sie Folgendes, um das Problem zu lösen. Weitere Informationen erhalten Sie unter [CreateDetectorModel](https://docs.aws.amazon.com/iotevents/latest/apireference/API_CreateDetectorModel.html) und [UpdateDetectorModel](https://docs.aws.amazon.com/iotevents/latest/apireference/API_UpdateDetectorModel.html).
+ Stellen Sie sicher, dass Sie nicht beide `seconds` und `durationExpression` als Parameter von `SetTimerAction` gleichzeitig verwenden.
+ Stellen Sie sicher, dass Ihr Zeichenkettenausdruck für gültig `durationExpression` ist. Der Zeichenkettenausdruck kann Zahlen, Variablen (`$variable.<variable-name>`) oder Eingabewerte (`$input.<input-name>.<path-to-datum>`) enthalten.

## Amazon CloudWatch `action.setTimer` Logs-Fehler
<a name="cw-logs-timer"></a>

Sie können Amazon CloudWatch Logs einrichten, um AWS IoT Events Detector-Modell-Instances zu überwachen. Im Folgenden sind die häufigsten Fehler aufgeführt AWS IoT Events, die bei der Verwendung von generiert `action.setTimer` werden. 
+ **Fehler:** Ihr Dauerausdruck für den angegebenen Timer `<timer-name>` konnte nicht zu einer Zahl ausgewertet werden.

### Lösung
<a name="w2aac42c11c21b5b1b3b1b1"></a>

   Stellen Sie sicher, dass Ihr Zeichenkettenausdruck für in eine Zahl umgewandelt werden `durationExpression` kann. Andere Datentypen, wie z. B. Boolean, sind nicht zulässig.
+ **Fehler:** Das ausgewertete Ergebnis Ihres Dauerausdrucks für den angegebenen Timer `<timer-name>` ist größer als 31622440. Um die Genauigkeit zu gewährleisten, stellen Sie sicher, dass sich Ihr Ausdruck für die Dauer auf einen Wert zwischen 60 und 31622400 bezieht.

### Lösung
<a name="w2aac42c11c21b5b3b3b1b1"></a>

   Stellen Sie sicher, dass die Dauer Ihres Timers mindestens 31622400 Sekunden beträgt. Das ausgewertete Ergebnis der Dauer wird auf die nächste ganze Zahl abgerundet.
+ **Fehler:** Das ausgewertete Ergebnis Ihres Ausdrucks für die Dauer für den angegebenen Timer `<timer-name>` ist kleiner als 60. Um die Genauigkeit zu gewährleisten, stellen Sie sicher, dass sich Ihr Ausdruck für die Dauer auf einen Wert zwischen 60 und 31622400 bezieht.

### Lösung
<a name="w2aac42c11c21b5b5b3b1b1"></a>

   Stellen Sie sicher, dass die Dauer Ihres Timers mindestens 60 Sekunden beträgt. Das ausgewertete Ergebnis der Dauer wird auf die nächste ganze Zahl abgerundet.
+ **Fehler:** Ihr Dauerausdruck für den genannten Timer `<timer-name>` konnte nicht ausgewertet werden. Überprüfen Sie die Variablennamen, Eingabenamen und Pfade zu den Daten, um sicherzustellen, dass Sie auf die vorhandenen Variablen und Eingaben verweisen. 

### Lösung
<a name="w2aac42c11c21b5b7b3b1b1"></a>

   Stellen Sie sicher, dass sich Ihr Zeichenkettenausdruck auf die vorhandenen Variablen und Eingaben bezieht. Der Zeichenkettenausdruck kann Zahlen, Variablen (`$variable.variable-name`) und Eingabewerte (`$input.input-name.path-to-datum`) enthalten.
+ **Fehler:** Der angegebene Timer konnte nicht festgelegt `<timer-name>` werden. Überprüfen Sie den Ausdruck für die Dauer, und versuchen Sie es erneut.

### Lösung
<a name="w2aac42c11c21b5b9b3b1b1"></a>

   Sehen Sie sich die [SetTimerAction](https://docs.aws.amazon.com/iotevents/latest/apireference/API_SetTimerAction.html)Aktion an, um sicherzustellen, dass Sie die richtigen Parameter angegeben haben, und stellen Sie dann den Timer erneut ein. 

Weitere Informationen finden Sie unter [ CloudWatch Amazon-Protokollierung bei der Entwicklung von AWS IoT Events Meldermodellen aktivieren](https://docs.aws.amazon.com/iotevents/latest/developerguide/best-practices.html#best-practices-cw-logs). 

## CloudWatch Amazon-Payload-Fehler
<a name="cw-logs-payload"></a>

Sie können Amazon CloudWatch Logs einrichten, um AWS IoT Events Detector-Modell-Instances zu überwachen. Im Folgenden finden Sie häufig auftretende Fehler und Warnungen AWS IoT Events, die bei der Konfiguration der Aktions-Payload generiert werden. 
+ **Fehler:** Wir konnten Ihren Ausdruck für die Aktion nicht auswerten. Stellen Sie sicher, dass sich die Variablennamen, Eingabenamen und Pfade zu den Daten auf die vorhandenen Variablen und Eingabewerte beziehen. Stellen Sie außerdem sicher, dass die Größe der Payload weniger als 1 KB beträgt, was der maximal zulässigen Größe einer Payload entspricht.

### Lösung
<a name="w2aac42c11c23b5b1b3b1b1"></a>

   Stellen Sie sicher, dass Sie die richtigen Variablennamen, Eingabenamen und Pfade zu den Daten eingeben. Möglicherweise erhalten Sie diese Fehlermeldung auch, wenn die Aktionsnutzlast größer als 1 KB ist.
+ **Fehler:** Wir konnten Ihren Inhaltsausdruck nicht nach der Payload von analysieren. `<action-type>` Geben Sie einen Inhaltsausdruck mit der richtigen Syntax ein.

### Lösung
<a name="w2aac42c11c23b5b3b3b1b1"></a>

   Der Inhaltsausdruck kann Zeichenfolgen (`'string'`), Variablen (`$variable.variable-name`), Eingabewerte (`$input.input-name.path-to-datum`), Zeichenkettenverkettungen und Zeichenfolgen enthalten, die Folgendes enthalten: `${}`
+ **Fehler:** Ihr Payload-Ausdruck \$1*expression*\$1 ist nicht gültig. Der definierte Payload-Typ ist JSON. Sie müssen also einen Ausdruck angeben, der AWS IoT Events eine Zeichenfolge ergibt.

### Lösung
<a name="w2aac42c11c23b5b5b5b1b1"></a>

   Wenn der angegebene Payload-Typ JSON ist, wird AWS IoT Events zunächst geprüft, ob der Service Ihren Ausdruck als Zeichenfolge auswerten kann. Das ausgewertete Ergebnis darf weder ein Boolescher Wert noch eine Zahl sein. Wenn die Überprüfung fehlschlägt, erhalten Sie möglicherweise diesen Fehler.
+ **Warnung:** Die Aktion wurde ausgeführt, aber wir konnten Ihren Inhaltsausdruck für die Aktionsnutzlast nicht als gültiges JSON auswerten. Der definierte Payload-Typ ist JSON.

### Lösung
<a name="w2aac42c11c23b5b7b3b1b1"></a>

   Stellen Sie sicher, dass Ihr Inhaltsausdruck für die Aktionsnutzlast als gültiges JSON ausgewertet werden AWS IoT Events kann, wenn Sie den Payload-Typ als definieren. `JSON` AWS IoT Events führt die Aktion aus, auch wenn der Inhaltsausdruck nicht als gültiges JSON ausgewertet werden AWS IoT Events kann.

Weitere Informationen finden Sie unter [ CloudWatch Amazon-Protokollierung bei der Entwicklung von AWS IoT Events Meldermodellen aktivieren](https://docs.aws.amazon.com/iotevents/latest/developerguide/best-practices.html#best-practices-cw-logs).

## Inkompatible Datentypen
<a name="troubleshoot-expressions-incompatible-data-types"></a>

Meldung: `<reference>` Im folgenden Ausdruck wurden inkompatible Datentypen [`<inferred-types>`] gefunden: `<expression>`

### Lösung
<a name="w2aac42c11c25b5b1b1"></a>

 Dieser Fehler kann aus einem der folgenden Gründe auftreten:
+ Die ausgewerteten Ergebnisse Ihrer Verweise sind nicht mit anderen Operanden in Ihren Ausdrücken kompatibel.
+ Der Typ des an eine Funktion übergebenen Arguments wird nicht unterstützt.

Wenn Sie Verweise in Ausdrücken verwenden, überprüfen Sie Folgendes:<a name="expression-reference-type-compatibility"></a>
+ Wenn Sie eine Referenz als Operanden mit einem oder mehreren Operatoren verwenden, stellen Sie sicher, dass alle Datentypen, auf die Sie verweisen, kompatibel sind.

  Im folgenden Ausdruck `2` ist Integer beispielsweise ein Operand sowohl der `==` Operatoren als auch. `&&` Um sicherzustellen, dass die Operanden kompatibel sind `$variable.testVariable + 1` und auf eine Ganzzahl oder Dezimalzahl verweisen `$variable.testVariable` müssen.

  Außerdem `1` ist Integer ein Operand des Operators`+`. `$variable.testVariable`Muss daher auf eine Ganzzahl oder Dezimalzahl verweisen.

  ```
  ‘$variable.testVariable + 1 == 2 && $variable.testVariable’
  ```
+ Wenn Sie eine Referenz als Argument verwenden, das an eine Funktion übergeben wird, stellen Sie sicher, dass die Funktion die Datentypen unterstützt, auf die Sie verweisen.

  Für die folgende `timeout("time-name")` Funktion ist beispielsweise eine Zeichenfolge mit doppelten Anführungszeichen als Argument erforderlich. Wenn Sie einen Verweis für den *timer-name* Wert verwenden, müssen Sie auf eine Zeichenfolge mit doppelten Anführungszeichen verweisen.

  ```
  timeout("timer-name")
  ```
**Anmerkung**  
Wenn Sie für die `convert(type, expression)` Funktion eine Referenz für den *type* Wert verwenden, muss das ausgewertete Ergebnis Ihrer Referenz`String`,`Decimal`, oder sein`Boolean`.

Weitere Informationen finden Sie unter [AWS IoT Events Referenz für Eingaben und Variablen in Ausdrücken](iotevents-expressions.md#expression-reference). 

## Nachricht konnte nicht gesendet werden an AWS IoT Events
<a name="failed-to-send-to-iot-events"></a>

Nachricht: Nachricht konnte nicht an Iot Events gesendet werden

### Lösung
<a name="w2aac42c11c27b5b1b1"></a>

Dieser Fehler kann aus den folgenden Gründen auftreten:
+ Die Nutzlast der Eingabenachricht enthält nicht die`Input attribute Key`.
+ Der `Input attribute Key` befindet sich nicht in demselben JSON-Pfad, der in der Eingabedefinition angegeben ist.
+ Die Eingabenachricht entspricht nicht dem Schema, wie es in der AWS IoT Events Eingabe definiert ist.

**Anmerkung**  
Bei der Datenaufnahme von anderen Diensten wird es ebenfalls zu einem Fehler kommen.

**Example**  
Beispielsweise schlägt die AWS IoT Core AWS IoT Regel mit der folgenden Meldung fehl `Verify the Input Attribute key.`

Um dieses Problem zu lösen, stellen Sie sicher, dass das Eingabe-Payload-Nachrichtenschema der AWS IoT Events Eingabedefinition entspricht und der `Input attribute Key` Speicherort übereinstimmt. Weitere Informationen finden Sie unter, [Erstellen Sie eine Eingabe für Modelle in AWS IoT Events](create-input-overview.md) um zu erfahren, wie Sie Eingaben definieren AWS IoT Events .

# Fehlerbehebung bei einem Detektormodell durch Ausführen von Analysen in AWS IoT Events
<a name="iotevents-analyze-api"></a>

AWS IoT Events kann Ihr Detektormodell analysieren und Analyseergebnisse generieren, ohne Eingabedaten an Ihr Detektormodell zu senden. AWS IoT Events führt eine Reihe von Analysen durch, die in diesem Abschnitt beschrieben werden, um Ihr Detektormodell zu überprüfen. Diese erweiterte Lösung zur Fehlerbehebung fasst auch Diagnoseinformationen zusammen, einschließlich Schweregrad und Lokalisation, sodass Sie potenzielle Probleme in Ihrem Meldermodell schnell finden und beheben können. Weitere Informationen zu Diagnosefehlertypen und Meldungen für Ihr Meldermodell finden Sie unter[Analyse von Detektormodellen und Diagnoseinformationen für AWS IoT Events](analyze-diagnostic-information.md).

Sie können die AWS IoT Events Konsole, [API](https://docs.aws.amazon.com/iotevents/latest/apireference/), [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/reference/iotevents/index.html) oder [AWS das SDK](https://docs.aws.amazon.com/iot/latest/developerguide/iot-sdks.html) verwenden, um diagnostische Fehlermeldungen aus der Analyse Ihres Meldermodells anzuzeigen.

**Anmerkung**  
Sie müssen alle Fehler beheben, bevor Sie Ihr Meldermodell veröffentlichen können.
Wir empfehlen Ihnen, die Warnungen zu lesen und die erforderlichen Maßnahmen zu ergreifen, bevor Sie Ihr Detektormodell in Produktionsumgebungen verwenden. Andernfalls funktioniert das Meldermodell möglicherweise nicht wie erwartet.
Sie können bis zu 10 Analysen gleichzeitig im `RUNNING` Status haben.

Informationen zur Analyse Ihres Detektormodells finden Sie unter [Analysieren Sie ein Detektormodell für AWS IoT Events (Konsole)](analyze-api-console.md) oder[Analysieren Sie ein Detektormodell in AWS IoT Events (AWS CLI)](analyze-api-api.md). 

**Topics**
+ [Analyse von Detektormodellen und Diagnoseinformationen für AWS IoT Events](analyze-diagnostic-information.md)
+ [Analysieren Sie ein Detektormodell für AWS IoT Events (Konsole)](analyze-api-console.md)
+ [Analysieren Sie ein Detektormodell in AWS IoT Events (AWS CLI)](analyze-api-api.md)

# Analyse von Detektormodellen und Diagnoseinformationen für AWS IoT Events
<a name="analyze-diagnostic-information"></a>

Bei Analysen von Detektormodellen werden die folgenden Diagnoseinformationen gesammelt:
+ **Stufe** — Der Schweregrad des Analyseergebnisses. Basierend auf dem Schweregrad lassen sich die Analyseergebnisse in drei allgemeine Kategorien einteilen:
  + **Information** (`INFO`) — Ein Informationsergebnis gibt Aufschluss über ein bedeutendes Feld in Ihrem Detektormodell. Für diese Art von Ergebnis sind in der Regel keine sofortigen Maßnahmen erforderlich.
  + **Warnung** (`WARNING`) — Ein Warnergebnis lenkt besondere Aufmerksamkeit auf Felder, die Probleme mit Ihrem Meldermodell verursachen könnten. Wir empfehlen Ihnen, die Warnungen zu lesen und die erforderlichen Maßnahmen zu ergreifen, bevor Sie Ihr Meldermodell in Produktionsumgebungen verwenden. Andernfalls funktioniert das Meldermodell möglicherweise nicht wie erwartet.
  + **Fehler** (`ERROR`) — Ein Fehlerergebnis informiert Sie über ein Problem in Ihrem Detektormodell. AWS IoT Events führt diesen Satz von Analysen automatisch durch, wenn Sie versuchen, das Detektormodell zu veröffentlichen. Sie müssen alle Fehler beheben, bevor Sie das Detektormodell veröffentlichen können.
+ **Position** — Enthält Informationen, anhand derer Sie das Feld in Ihrem Detektormodell lokalisieren können, auf das sich das Analyseergebnis bezieht. Ein Standort umfasst in der Regel den Namen des Status, den Namen des Übergangsereignisses, den Namen des Ereignisses und den Ausdruck (z. B.`in state TemperatureCheck in onEnter in event Init in action setVariable`).
+ **Typ** — Der Typ des Analyseergebnisses. Analysetypen lassen sich in die folgenden Kategorien einteilen:
  + `supported-actions`— AWS IoT Events kann Aktionen aufrufen, wenn ein bestimmtes Ereignis oder ein Übergangsereignis erkannt wird. Sie können integrierte Aktionen definieren, um einen Timer zu verwenden oder eine Variable festzulegen oder Daten an andere AWS Dienste zu senden. Sie müssen Aktionen angeben, die mit anderen AWS Diensten in einer AWS Region funktionieren, in der die AWS Dienste verfügbar sind. 
  + `service-limits`— Dienstkontingente, auch Limits genannt, sind die maximale oder minimale Anzahl von Serviceressourcen oder Vorgängen für Ihr AWS Konto. Sofern nicht anders angegeben, gilt jedes Kontingent spezifisch für eine Region. Je nach Ihren Geschäftsanforderungen können Sie Ihr Meldermodell aktualisieren, um Grenzwerte zu vermeiden, oder eine Erhöhung des Kontingents beantragen. Sie können Erhöhungen für einige Kontingente beantragen und andere Kontingente können nicht erhöht werden. Weitere Informationen finden Sie unter [ Kontingente](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-quotas.html).
+ **`structure`**— Das Meldermodell muss alle erforderlichen Komponenten wie Zustände enthalten und einer Struktur folgen, die dies AWS IoT Events unterstützt. Ein Detektormodell muss mindestens einen Zustand und eine Bedingung haben, die die eingehenden Eingabedaten auswertet, um signifikante Ereignisse zu erkennen. Wenn ein Ereignis erkannt wird, wechselt das Detektormodell in den nächsten Status und kann Aktionen auslösen. Diese Ereignisse werden als Übergangsereignisse bezeichnet. Ein Übergangsereignis muss den nächsten Status zum Eintritt anweisen.
+ **`expression-syntax`**— AWS IoT Events bietet mehrere Möglichkeiten, Werte anzugeben, wenn Sie Detektormodelle erstellen und aktualisieren. Sie können Literale, Operatoren, Funktionen, Referenzen und Substitutionsvorlagen in den Ausdrücken verwenden. Sie können Ausdrücke verwenden, um Literalwerte anzugeben, oder Sie AWS IoT Events können die Ausdrücke auswerten, bevor Sie bestimmte Werte angeben. Ihr Ausdruck muss der erforderlichen Syntax entsprechen. Weitere Informationen finden Sie unter [Ausdrücke zum Filtern, Transformieren und Verarbeiten von Ereignisdaten](iotevents-expressions.md).

  Detector Model-Ausdrücke in AWS IoT Events können auf bestimmte Daten oder eine Ressource verweisen.
  + **`data-type`**— AWS IoT Events unterstützt Integer-, Dezimal-, String- und Boolesche Datentypen. Wenn die Daten eines Datentyps bei der Auswertung von Ausdrücken automatisch in einen anderen konvertiert werden AWS IoT Events können, sind diese Datentypen kompatibel.
**Anmerkung**  
Integer und Decimal sind die einzigen kompatiblen Datentypen, die von unterstützt werden AWS IoT Events.
AWS IoT Events kann keine arithmetischen Ausdrücke auswerten, da eine Ganzzahl nicht in eine Zeichenfolge konvertiert werden AWS IoT Events kann.
  + **`referenced-data`**— Sie müssen die Daten definieren, auf die in Ihrem Detektormodell verwiesen wird, bevor Sie die Daten verwenden können. Wenn Sie beispielsweise Daten an eine DynamoDB-Tabelle senden möchten, müssen Sie eine Variable definieren, die auf den Tabellennamen verweist, bevor Sie die Variable in einem Ausdruck () `$variable.TableName` verwenden können.
  + **`referenced-resource`**— Ressourcen, die das Detektormodell verwendet, müssen verfügbar sein. Sie müssen Ressourcen definieren, bevor Sie sie verwenden können. Sie möchten beispielsweise ein Detektormodell zur Überwachung der Temperatur eines Gewächshauses erstellen. Sie müssen eine Eingabe (`$input.TemperatureInput`) definieren, um eingehende Temperaturdaten an Ihr Meldermodell weiterzuleiten, bevor Sie `$input.TemperatureInput.sensorData.temperature` die Temperatur als Referenz verwenden können.

Im folgenden Abschnitt finden Sie Informationen zur Behebung von Fehlern und zur Suche nach möglichen Lösungen anhand der Analyse Ihres Detektormodells.

## Beheben Sie Fehler im Detektormodell in AWS IoT Events
<a name="troubleshoot-error-messages"></a>

Die oben beschriebenen Fehlertypen liefern Diagnoseinformationen zu einem Detektormodell und entsprechen Meldungen, die Sie möglicherweise abrufen. Verwenden Sie diese Meldungen und Lösungsvorschläge, um Fehler mit Ihrem Meldermodell zu beheben.

**Topics**
+ [`Location`](#analyze-location)
+ [`supported-actions`](#analyze-supported-actions)
+ [`service-limits`](#analyze-service-limits)
+ [`structure`](#analyze-structure)
+ [`expression-syntax`](#analyze-expression-syntax)
+ [`data-type`](#analyze-data-type)
+ [`referenced-data`](#analyze-referenced-data)
+ [`referenced-resource`](#analyze-referenced-resource)

### `Location`
<a name="analyze-location"></a>

Ein Analyseergebnis mit Informationen über`Location`, entspricht der folgenden Fehlermeldung: 
+ **Meldung** — Enthält zusätzliche Informationen zum Analyseergebnis. Dies kann eine Information, Warnung oder Fehlermeldung sein.

#### Lösung
<a name="w2aac42c13c13b9b7b5b1b3b1b1"></a>

   Möglicherweise erhalten Sie diese Fehlermeldung, wenn Sie eine Aktion angegeben haben, die AWS IoT Events derzeit nicht unterstützt wird. Eine Liste der unterstützten Aktionen finden Sie unter[Unterstützte Aktionen zum Empfangen von Daten und Auslösen von Aktionen in AWS IoT Events](iotevents-supported-actions.md).

### `supported-actions`
<a name="analyze-supported-actions"></a>

Ein Analyseergebnis mit Informationen über`supported‐actions`, entspricht den folgenden Fehlermeldungen: 
+ **Meldung:** Ungültiger Aktionstyp in der Aktionsdefinition vorhanden:*action-definition*.

#### Lösung
<a name="w2aac42c13c13b9b9b5b1b3b1b1"></a>

   Möglicherweise erhalten Sie diese Fehlermeldung, wenn Sie eine Aktion angegeben haben, die AWS IoT Events derzeit nicht unterstützt wird. Eine Liste der unterstützten Aktionen finden Sie unter[Unterstützte Aktionen zum Empfangen von Daten und Auslösen von Aktionen in AWS IoT Events](iotevents-supported-actions.md).
+ **Meldung:** Die DetectorModel Definition hat eine *aws-service* Aktion, aber der *aws-service* Dienst wird in der Region nicht unterstützt*region-name*.

#### Lösung
<a name="w2aac42c13c13b9b9b5b3b3b1b1"></a>

   Möglicherweise erhalten Sie diese Fehlermeldung, wenn die von Ihnen angegebene Aktion von unterstützt wird AWS IoT Events, die Aktion jedoch in Ihrer aktuellen Region nicht verfügbar ist. Dies kann auftreten, wenn Sie versuchen, Daten an einen AWS Dienst zu senden, der in der Region nicht verfügbar ist. Sie müssen außerdem dieselbe Region für beide AWS IoT Events und die AWS Dienste, die Sie verwenden, auswählen.

### `service-limits`
<a name="analyze-service-limits"></a>

Ein Analyseergebnis mit Informationen über`service‐limits`, entspricht den folgenden Fehlermeldungen: 
+ **Meldung:** Der in der Nutzlast zulässige Inhaltsausdruck hat die *content-expression-size* Bytebegrenzung für das Ereignis *event-name* im Status *state-name* überschritten.

#### Lösung
<a name="w2aac42c13c13b9c11b5b1b3b1b1"></a>

   Möglicherweise erhalten Sie diese Fehlermeldung, wenn der Inhaltsausdruck für Ihre Aktionsnutzlast größer als 1024 Byte ist. Die Größe des Inhaltsausdrucks für eine Payload kann bis zu 1024 Byte betragen.
+ **Meldung:** Die Anzahl der in der Definition des Detektormodells zulässigen Zustände hat den Grenzwert *states-per-detector-model* überschritten.

#### Lösung
<a name="w2aac42c13c13b9c11b5b3b3b1b1"></a>

   Möglicherweise erhalten Sie diese Fehlermeldung, wenn Ihr Detektormodell mehr als 20 Zustände hat. Ein Detektormodell kann bis zu 20 Zustände haben.
+ **Meldung:** Die Dauer des Timers *timer-name* sollte mindestens *minimum-timer-duration* Sekunden lang sein.

#### Lösung
<a name="w2aac42c13c13b9c11b5b5b3b1b1"></a>

   Möglicherweise erhalten Sie diese Fehlermeldung, wenn die Dauer Ihres Timers weniger als 60 Sekunden beträgt. Wir empfehlen, dass die Dauer eines Timers zwischen 60 und 31622400 Sekunden liegt. Wenn Sie einen Ausdruck für die Dauer Ihres Timers angeben, wird das ausgewertete Ergebnis des Dauerausdrucks auf die nächste ganze Zahl abgerundet.
+ **Meldung:** Die Anzahl der pro Ereignis zulässigen Aktionen hat den Grenzwert *actions-per-event* in der Definition des Detektormodells überschritten

#### Lösung
<a name="w2aac42c13c13b9c11b5b7b3b1b1"></a>

   Möglicherweise erhalten Sie diese Fehlermeldung, wenn das Ereignis mehr als 10 Aktionen umfasst. Sie können bis zu 10 Aktionen für jedes Ereignis in Ihrem Meldermodell einrichten.
+ **Meldung:** Die Anzahl der pro Status zulässigen Übergangsereignisse hat den Grenzwert *transition-events-per-state* in der Definition des Detektormodells überschritten.

#### Lösung
<a name="w2aac42c13c13b9c11b5b9b3b1b1"></a>

   Möglicherweise erhalten Sie diese Fehlermeldung, wenn der Status mehr als 20 Übergangsereignisse enthält. Sie können bis zu 20 Übergangsereignisse für jeden Status in Ihrem Detektormodell haben.
+ **Meldung:** Die Anzahl der pro Status zulässigen Ereignisse hat den Grenzwert *events-per-state* in der Definition des Detektormodells überschritten

#### Lösung
<a name="w2aac42c13c13b9c11b5c11b3b1b1"></a>

   Möglicherweise erhalten Sie diese Fehlermeldung, wenn der Status mehr als 20 Ereignisse enthält. Sie können bis zu 20 Ereignisse für jeden Status in Ihrem Detektormodell haben.
+ **Meldung:** Die maximale Anzahl von Meldermodellen, die einem einzelnen Eingang zugeordnet werden können, hat möglicherweise den Grenzwert erreicht. *input-name*Die Eingabe wird in *detector-models-per-input* Detektormodellrouten verwendet.

#### Lösung
<a name="w2aac42c13c13b9c11b5c13b3b1b1"></a>

   Möglicherweise erhalten Sie diese Warnmeldung, wenn Sie versuchen, eine Eingabe an mehr als 10 Detektormodelle weiterzuleiten. Einem einzelnen Detektormodell können bis zu 10 verschiedene Detektormodelle zugeordnet werden.

### `structure`
<a name="analyze-structure"></a>

Ein Analyseergebnis mit Informationen über`structure`, entspricht den folgenden Fehlermeldungen: 
+ **Meldung:** Für Aktionen ist möglicherweise nur ein Typ definiert, es wurde jedoch eine Aktion mit *number-of-types* Typen gefunden. Bitte teilen Sie sie in separate Aktionen auf.

#### Lösung
<a name="w2aac42c13c13b9c13b5b1b3b1b1"></a>

   Möglicherweise erhalten Sie diese Fehlermeldung, wenn Sie mithilfe von API-Operationen zwei oder mehr Aktionen in einem einzigen Feld angegeben haben, um Ihr Meldermodell zu erstellen oder zu aktualisieren. Sie können eine Reihe von `Action` Objekten definieren. Stellen Sie sicher, dass Sie jede Aktion als separates Objekt definieren.
+ **Nachricht:** Die TransitionEvent *transition-event-name* Übergänge in einen Zustand*state-name*, der nicht existiert.

#### Lösung
<a name="w2aac42c13c13b9c13b5b3b3b1b1"></a>

   Möglicherweise erhalten Sie diese Fehlermeldung, wenn Sie den nächsten Status AWS IoT Events , auf den Ihr Übergangsereignis verwiesen hat, nicht finden können. Vergewissern Sie sich, dass der nächste Status definiert ist und dass Sie den richtigen Statusnamen eingegeben haben.
+ **Meldung:** Der DetectorModelDefinition hatte einen gemeinsamen Statusnamen: Zustand *state-name* mit *number-of-states* Wiederholungen gefunden.

#### Lösung
<a name="w2aac42c13c13b9c13b5b5b3b1b1"></a>

   Möglicherweise erhalten Sie diese Fehlermeldung, wenn Sie denselben Namen für einen oder mehrere Staaten verwenden. Stellen Sie sicher, dass Sie jedem Status in Ihrem Meldermodell einen eindeutigen Namen geben. Der Name des Bundesstaates muss 1-128 Zeichen lang sein. Gültige Zeichen: a-z, A-Z, 0-9, \$1 (Unterstrich) und - (Bindestrich).
+ **Meldung:** Die Definitionen entsprachen initialStateName *initial-state-name* keinem definierten Bundesstaat.

#### Lösung
<a name="w2aac42c13c13b9c13b5b7b3b1b1"></a>

   Möglicherweise erhalten Sie diese Fehlermeldung, wenn der ursprüngliche Statusname falsch ist. Das Detektormodell bleibt im Anfangszustand (Start), bis eine Eingabe eintrifft. Sobald eine Eingabe eintrifft, geht das Detektormodell sofort in den nächsten Zustand über. Stellen Sie sicher, dass der ursprüngliche Statusname der Name eines definierten Zustands ist und dass Sie den richtigen Namen eingeben.
+ **Meldung:** Die Definition des Detektormodells muss mindestens eine Eingabe in einer Bedingung verwenden.

#### Lösung
<a name="w2aac42c13c13b9c13b5b9b3b1b1"></a>

   Dieser Fehler wird möglicherweise angezeigt, wenn Sie in einer Bedingung keine Eingabe angegeben haben. Sie müssen mindestens eine Eingabe in mindestens einer Bedingung verwenden. Andernfalls werden eingehende Daten AWS IoT Events nicht ausgewertet.
+ **Meldung:** Es können nur Sekunden und DurationExpression eingegeben werden. SetTimer

#### Lösung
<a name="w2aac42c13c13b9c13b5c11b3b1b1"></a>

   Möglicherweise erhalten Sie diese Fehlermeldung, wenn Sie sowohl als auch `seconds` `durationExpression` für Ihren Timer verwendet haben. Stellen Sie sicher, dass Sie entweder `seconds` oder `durationExpression` als Parameter von verwenden`SetTimerAction`. Weitere Informationen finden Sie unter [SetTimerAction](https://docs.aws.amazon.com/iotevents/latest/apireference/API_SetTimerAction.html) in der *AWS IoT Events -API-Referenz*.
+  **Meldung:** Eine Aktion in Ihrem Meldermodell ist nicht erreichbar. Überprüfen Sie den Zustand, der die Aktion auslöst. 

#### Lösung
<a name="w2aac42c13c13b9c13b5c15b3b1b1"></a>

   Wenn eine Aktion in Ihrem Meldermodell nicht erreichbar ist, wird der Zustand des Ereignisses als falsch bewertet. Überprüfen Sie die Bedingung des Ereignisses, das die Aktion enthält, um sicherzustellen, dass sie als wahr ausgewertet wird. Wenn die Bedingung des Ereignisses als wahr ausgewertet wird, sollte die Aktion erreichbar sein.
+ **Meldung:** Ein Eingabeattribut wird gelesen, dies kann jedoch durch den Ablauf eines Timers verursacht werden.

#### Lösung
<a name="w2aac42c13c13b9c13b5c17b3b1b1"></a>

   Der Wert eines Eingabeattributs kann gelesen werden, wenn einer der folgenden Fälle eintritt: 
  + Ein neuer Eingabewert wurde empfangen.
  + Wenn ein Timer im Melder abgelaufen ist.

  

  Um sicherzustellen, dass ein Eingabeattribut nur ausgewertet wird, wenn der neue Wert für diese Eingabe empfangen wird, fügen Sie einen `triggerType(“Message”)` Funktionsaufruf wie folgt in Ihre Bedingung ein:

  Der ursprüngliche Zustand wird im Detektormodell ausgewertet: 

  ```
  if ($input.HeartBeat.status == “OFFLINE”)
  ```

  würde dem Folgenden ähnlich werden: 

  ```
  if ( triggerType("MESSAGE") &&  $input.HeartBeat.status == “OFFLINE”)
  ```

  wobei ein Aufruf der `triggerType(“Message”)` Funktion vor der in der Bedingung angegebenen ersten Eingabe erfolgt. Bei Verwendung dieser Technik ergibt die `triggerType("Message")` Funktion den Wert true und erfüllt die Bedingung, dass ein neuer Eingabewert empfangen wird. Weitere Informationen zur Verwendung der `triggerType` Funktion finden Sie `triggerType` im Abschnitt [Ausdrücke](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-expressions.html) im *AWS IoT Events Entwicklerhandbuch* 
+ **Meldung:** Ein Status in Ihrem Detektormodell ist nicht erreichbar. Überprüfen Sie den Zustand, der einen Übergang in den gewünschten Zustand bewirkt.

#### Lösung
<a name="w2aac42c13c13b9c13b5c19b3b1b1"></a>

   Wenn ein Zustand in Ihrem Detektormodell nicht erreichbar ist, wird eine Bedingung, die zu einem eingehenden Übergang in diesen Zustand führt, als falsch bewertet. Vergewissern Sie sich, dass die Bedingungen für die eingehenden Übergänge in diesen unerreichbaren Zustand in Ihrem Detektormodell als wahr gewertet werden, sodass der gewünschte Zustand erreichbar werden kann.
+ **Nachricht:** Ein ablaufender Timer kann dazu führen, dass eine unerwartete Anzahl von Nachrichten gesendet wird.

#### Lösung
<a name="w2aac42c13c13b9c13b5c21b3b1b1"></a>

   Um zu verhindern, dass Ihr Meldermodell in einen unendlichen Zustand übergeht und eine unerwartete Anzahl von Nachrichten sendet, weil ein Timer abgelaufen ist, sollten Sie einen `triggerType("Message")` Funktionsaufruf unter den folgenden Bedingungen Ihres Meldermodells in Betracht ziehen: 

  Der ursprüngliche Zustand wird im Meldermodell bewertet: 

  ```
  if (timeout("awake"))
  ```

  würde in einen Zustand umgewandelt werden, der dem folgenden ähnelt: 

  ```
   if (triggerType("MESSAGE") && timeout("awake")) 
  ```

  wobei ein Aufruf der `triggerType(“Message”)` Funktion vor der ersten Eingabe erfolgt, die in der Bedingung bereitgestellt wird.

  Diese Änderung verhindert, dass Timer-Aktionen in Ihrem Detektor ausgelöst werden, wodurch verhindert wird, dass eine Endlosschleife von Nachrichten gesendet wird. Weitere Informationen zur Verwendung von Timer-Aktionen in Ihrem Melder finden Sie auf der Seite [Verwenden integrierter Aktionen](https://docs.aws.amazon.com/iotevents/latest/developerguide/built-in-actions.html) im *AWS IoT Events Entwicklerhandbuch*

### `expression-syntax`
<a name="analyze-expression-syntax"></a>

Ein Analyseergebnis mit Informationen über`expression‐syntax`, entspricht den folgenden Fehlermeldungen: 
+ **Meldung:** Ihr Payload-Ausdruck \$1*expression*\$1 ist nicht gültig. Der definierte Payload-Typ ist JSON. Sie müssen also einen Ausdruck angeben, der AWS IoT Events eine Zeichenfolge ergibt.

#### Lösung
<a name="w2aac42c13c13b9c15b5b1b3b1b1"></a>

   Wenn der angegebene Payload-Typ JSON ist, wird AWS IoT Events zunächst geprüft, ob der Dienst Ihren Ausdruck als Zeichenfolge auswerten kann. Das ausgewertete Ergebnis darf weder ein Boolescher Wert noch eine Zahl sein. Wenn die Überprüfung nicht erfolgreich ist, erhalten Sie möglicherweise diesen Fehler.
+ **Nachricht:** `SetVariableAction.value` muss ein Ausdruck sein. Der Wert '' *variable-value* konnte nicht analysiert werden

#### Lösung
<a name="w2aac42c13c13b9c15b5b3b3b1b1"></a>

   Sie können es verwenden`SetVariableAction`, um eine Variable mit einem `name` und `value` zu definieren. Dabei `value` kann es sich um eine Zeichenfolge, eine Zahl oder einen booleschen Wert handeln. Sie können auch einen Ausdruck für die angeben. `value` Weitere Informationen finden Sie unter [SetVariableAction](https://docs.aws.amazon.com/iotevents/latest/apireference/API_SetVariableAction.html), in der *AWS IoT Events API-Referenz*.
+ **Meldung:** Wir konnten Ihren Ausdruck der Attribute (*attribute-name*) für die DynamoDB-Aktion nicht analysieren. Geben Sie den Ausdruck mit der richtigen Syntax ein.

#### Lösung
<a name="w2aac42c13c13b9c15b5b5b3b1b1"></a>

   Sie müssen Ausdrücke für alle Parameter in Ersatzvorlagen verwenden`DynamoDBAction`. Weitere Informationen finden Sie unter [Dynamo DBAction](https://docs.aws.amazon.com/iotevents/latest/apireference/API_DynamoDBAction.html) in der *AWS IoT Events API-Referenz*.
+ **Meldung:** Wir konnten Ihren Ausdruck des TableName-Ausdrucks für die DBv2 Dynamo-Aktion nicht analysieren. Geben Sie den Ausdruck mit der richtigen Syntax ein.

#### Lösung
<a name="w2aac42c13c13b9c15b5b7b3b1b1"></a>

   Die `tableName` Eingabe `DynamoDBv2Action` muss eine Zeichenfolge sein. Sie müssen einen Ausdruck für die verwenden`tableName`. Die Ausdrücke akzeptieren Literale, Operatoren, Funktionen, Referenzen und Substitutionsvorlagen. Weitere Informationen finden Sie unter [Dynamo DBv2 Action](https://docs.aws.amazon.com/iotevents/latest/apireference/API_DynamoDBv2Action.html) in der *AWS IoT Events API-Referenz.*
+ **Nachricht:** Wir konnten Ihren Ausdruck nicht als gültiges JSON-Format auswerten. Die DBv2 Dynamo-Aktion unterstützt nur den JSON-Nutzdatentyp.

#### Lösung
<a name="w2aac42c13c13b9c15b5b9b3b1b1"></a>

   Der Payload-Typ für `DynamoDBv2` muss JSON sein. Stellen Sie sicher, dass Ihr Inhaltsausdruck für die Nutzlast als gültiges JSON ausgewertet werden AWS IoT Events kann. Weitere Informationen finden Sie unter [Dynamo DBv2 Action](https://docs.aws.amazon.com/iotevents/latest/apireference/API_DynamoDBv2Action.html) in der *AWS IoT Events API-Referenz*. 
+ **Nachricht:** Wir konnten Ihren Inhaltsausdruck nicht nach der Payload von analysieren. *action-type* Geben Sie einen Inhaltsausdruck mit der richtigen Syntax ein.

#### Lösung
<a name="w2aac42c13c13b9c15b5c11b3b1b1"></a>

   Der Inhaltsausdruck kann Zeichenketten ('*string*') und Variablen (\$1variable) enthalten. *variable-name*), Eingabewerte (\$1input. *input-name*. *path-to-datum*), Zeichenkettenverkettungen und Zeichenketten, die enthalten. `${}` 
+ **Nachricht:** Benutzerdefinierte Payloads dürfen nicht leer sein.

#### Lösung
<a name="w2aac42c13c13b9c15b5c13b3b1b1"></a>

   Möglicherweise erhalten Sie diese Fehlermeldung, wenn Sie für Ihre Aktion „**Benutzerdefiniertes Payload**“ ausgewählt und keinen Inhaltsausdruck in der Konsole eingegeben haben. AWS IoT Events Wenn Sie **Benutzerdefinierter Payload** wählen, müssen Sie unter **Benutzerdefinierter** Payload einen Inhaltsausdruck eingeben. *Weitere Informationen finden Sie unter [Payload](https://docs.aws.amazon.com/iotevents/latest/apireference/API_Payload.html) in der AWS IoT Events API-Referenz.*
+ **Meldung:** Fehler beim Analysieren des Dauerausdrucks '' *duration-expression* für den Timer ''. *timer-name*

#### Lösung
<a name="w2aac42c13c13b9c15b5c15b3b1b1"></a>

   Das ausgewertete Ergebnis Ihres Dauerausdrucks für den Timer muss ein Wert zwischen 60 und 31622400 sein. Das ausgewertete Ergebnis der Dauer wird auf die nächste ganze Zahl abgerundet.
+ **Meldung: Der Ausdruck '**' für konnte nicht analysiert werden *expression* *action-name*

#### Lösung
<a name="w2aac42c13c13b9c15b5c17b3b1b1"></a>

   Möglicherweise erhalten Sie diese Meldung, wenn der Ausdruck für die angegebene Aktion eine falsche Syntax hat. Stellen Sie sicher, dass Sie einen Ausdruck mit der richtigen Syntax eingeben. Weitere Informationen finden Sie unter [Syntax zum Filtern von Gerätedaten und zum Definieren von Aktionen in AWS IoT Events](iotevents-expressions.md#expression-syntax).
+ **Nachricht:** Ihr *fieldName* Formular `IotSitewiseAction` konnte nicht analysiert werden. Sie müssen in Ihrem Ausdruck die richtige Syntax verwenden.

#### Lösung
<a name="w2aac42c13c13b9c15b5c19b3b1b1"></a>

   Möglicherweise erhalten Sie diesen Fehler, wenn Sie Ihre *fieldName* Form nicht analysieren AWS IoT Events konnten. `IotSitewiseAction` Stellen Sie sicher, dass der einen Ausdruck *fieldName* verwendet, der analysiert AWS IoT Events werden kann. Weitere Informationen finden Sie unter [IotSiteWiseAction](https://docs.aws.amazon.com/iotevents/latest/apireference/API_IotSiteWiseAction.html) in der *AWS IoT Events -API-Referenz*.

### `data-type`
<a name="analyze-data-type"></a>

Ein Analyseergebnis mit Informationen über`data‐type`, entspricht den folgenden Fehlermeldungen: 
+ **Meldung:** Der Ausdruck „Dauer“ *duration-expression* für den Timer *timer-name* ist ungültig. Er muss eine Zahl zurückgeben.

#### Lösung
<a name="w2aac42c13c13b9c17b5b1b3b1b1"></a>

   Möglicherweise erhalten Sie diese Fehlermeldung, wenn Sie den Dauerausdruck für Ihren Timer nicht als Zahl auswerten AWS IoT Events konnten. Stellen Sie sicher, dass Ihr Wert in eine Zahl umgewandelt werden `durationExpression` kann. Andere Datentypen, wie z. B. Boolean, werden nicht unterstützt. 
+ **Meldung:** *condition-expression* Der Ausdruck ist kein gültiger Bedingungsausdruck.

#### Lösung
<a name="w2aac42c13c13b9c17b5b3b3b1b1"></a>

   Möglicherweise erhalten Sie diese Fehlermeldung, wenn Sie Ihren Wert nicht `condition-expression` auf einen booleschen Wert auswerten AWS IoT Events konnten. Der boolesche Wert muss entweder oder sein. `TRUE` `FALSE` Stellen Sie sicher, dass Ihr Bedingungsausdruck in einen booleschen Wert konvertiert werden kann. Wenn das Ergebnis kein boolescher Wert ist, entspricht es den Aktionen, die im Ereignis angegeben wurden, `FALSE` und ruft diese nicht auf`nextState`.
+ **Meldung:** *reference* Im folgenden Ausdruck wurden inkompatible Datentypen [*inferred-types*] gefunden: *expression*

#### Lösung
<a name="w2aac42c13c13b9c17b5b5b3b1b1"></a>

   **Lösung**: Alle Ausdrücke für dasselbe Eingabeattribut oder dieselbe Variable im Detektormodell müssen auf denselben Datentyp verweisen. 

  Verwenden Sie die folgenden Informationen, um das Problem zu beheben:<a name="expression-reference-type-compatibility"></a>
  + Wenn Sie eine Referenz als Operanden mit einem oder mehreren Operatoren verwenden, stellen Sie sicher, dass alle Datentypen, auf die Sie verweisen, kompatibel sind.

    Im folgenden Ausdruck `2` ist Integer beispielsweise ein Operand sowohl der `==` Operatoren als auch. `&&` Um sicherzustellen, dass die Operanden kompatibel sind `$variable.testVariable + 1` und auf eine Ganzzahl oder Dezimalzahl verweisen `$variable.testVariable` müssen.

    Außerdem `1` ist Integer ein Operand des Operators`+`. `$variable.testVariable`Muss daher auf eine Ganzzahl oder Dezimalzahl verweisen.

    ```
    ‘$variable.testVariable + 1 == 2 && $variable.testVariable’
    ```
  + Wenn Sie eine Referenz als Argument verwenden, das an eine Funktion übergeben wird, stellen Sie sicher, dass die Funktion die Datentypen unterstützt, auf die Sie verweisen.

    Für die folgende `timeout("time-name")` Funktion ist beispielsweise eine Zeichenfolge mit doppelten Anführungszeichen als Argument erforderlich. Wenn Sie einen Verweis für den *timer-name* Wert verwenden, müssen Sie auf eine Zeichenfolge mit doppelten Anführungszeichen verweisen.

    ```
    timeout("timer-name")
    ```
**Anmerkung**  
Wenn Sie für die `convert(type, expression)` Funktion eine Referenz für den *type* Wert verwenden, muss das ausgewertete Ergebnis Ihrer Referenz `String``Decimal`, oder sein`Boolean`.

  Weitere Informationen finden Sie unter [AWS IoT Events Referenz für Eingaben und Variablen in Ausdrücken](iotevents-expressions.md#expression-reference).
+ **Meldung:** Inkompatible Datentypen [*inferred-types*] wurden mit verwendet*reference*. Dies kann zu einem Laufzeitfehler führen.

#### Lösung
<a name="w2aac42c13c13b9c17b5b7b3b1b1"></a>

   Möglicherweise erhalten Sie diese Warnmeldung, wenn zwei Ausdrücke für dasselbe Eingabeattribut oder dieselbe Variable auf zwei Datentypen verweisen. Stellen Sie sicher, dass Ihre Ausdrücke für dasselbe Eingabeattribut oder dieselbe Variable auf denselben Datentyp im Detektormodell verweisen.
+ **Meldung:** Die Datentypen [*inferred‐types*], die Sie für den Operator [*operator*] eingegeben haben, sind für den folgenden Ausdruck nicht kompatibel: '*expression*'

#### Lösung
<a name="w2aac42c13c13b9c17b5b9b3b1b1"></a>

   Möglicherweise erhalten Sie diese Fehlermeldung, wenn Ihr Ausdruck Datentypen kombiniert, die mit einem angegebenen Operator nicht kompatibel sind. Im folgenden Ausdruck `+` ist der Operator beispielsweise mit den Datentypen Integer, Decimal und String kompatibel, nicht jedoch mit Operanden des Booleschen Datentyps.

  ```
  true + false
  ```

  Sie müssen sicherstellen, dass die Datentypen, die Sie mit einem Operator verwenden, kompatibel sind.
+ **Meldung:** Die gefundenen Datentypen [*inferred‐types*] *input‐attribute* sind nicht kompatibel und können zu einem Laufzeitfehler führen.

#### Lösung
<a name="w2aac42c13c13b9c17b5c11b3b1b1"></a>

   Möglicherweise erhalten Sie diese Fehlermeldung, wenn zwei Ausdrücke für dasselbe Eingabeattribut auf zwei Datentypen verweisen, entweder für den `OnEnterLifecycle` eines Zustands oder für den `OnInputLifecycle` und `OnExitLifecycle` eines Zustands. Stellen Sie sicher, dass Ihre Ausdrücke in `OnEnterLifecycle` (oder, `OnInputLifecycle` sowohl als auch`OnExitLifecycle`) für jeden Status Ihres Detektormodells auf denselben Datentyp verweisen.
+ **Meldung:** Der Nutzdatenausdruck [*expression*] ist nicht gültig. Geben Sie einen Ausdruck an, der zur Laufzeit zu einer Zeichenfolge ausgewertet würde, da der Payload-Typ das JSON-Format ist.

#### Lösung
<a name="w2aac42c13c13b9c17b5c13b3b1b1"></a>

   Möglicherweise erhalten Sie diesen Fehler, wenn der angegebene Payload-Typ JSON ist, aber AWS IoT Events Sie können seinen Ausdruck nicht als Zeichenfolge  auswerten. Stellen Sie sicher, dass es sich bei dem ausgewerteten Ergebnis um eine Zeichenfolge handelt, nicht um einen booleschen Wert oder eine Zahl. 
+ **Meldung:** Ihr interpolierter Ausdruck \$1*interpolated-expression*\$1 muss zur Laufzeit entweder eine Ganzzahl oder einen booleschen Wert ergeben. Andernfalls kann Ihr Nutzdatenausdruck \$1*payload-expression*\$1 zur Laufzeit nicht als gültiges JSON analysiert werden.

#### Lösung
<a name="w2aac42c13c13b9c17b5c15b3b1b1"></a>

   Möglicherweise erhalten Sie diese Fehlermeldung, wenn Sie Ihren interpolierten Ausdruck nicht als Ganzzahl oder einen booleschen Wert auswerten AWS IoT Events konnten. Stellen Sie sicher, dass Ihr interpolierter Ausdruck in eine Ganzzahl oder einen booleschen Wert konvertiert werden kann, da andere Datentypen, wie z. B. Zeichenfolge, nicht unterstützt werden.
+ **Meldung:** Der Ausdruckstyp im `IotSitewiseAction` Feld *expression* ist als Typ definiert und wird als Typ *defined‐type* abgeleitet. *inferred‐type* Der definierte Typ und der abgeleitete Typ müssen identisch sein.

#### Lösung
<a name="w2aac42c13c13b9c17b5c17b3b1b1"></a>

   Möglicherweise erhalten Sie diese Fehlermeldung, wenn Ihr Ausdruck in `propertyValue` of einen Datentyp `IotSitewiseAction` hat, der anders definiert ist als der von abgeleitete Datentyp. AWS IoT Events Stellen Sie sicher, dass Sie für alle Instanzen dieses Ausdrucks in Ihrem Detektormodell denselben Datentyp verwenden.
+ **Meldung:** Die für die `setTimer` Aktion verwendeten Datentypen [*inferred-types*] ergeben nicht `Integer` den folgenden Ausdruck: *expression*

#### Lösung
<a name="w2aac42c13c13b9c17b5c19b3b1b1"></a>

   Möglicherweise erhalten Sie diese Fehlermeldung, wenn der abgeleitete Datentyp für Ihren Dauerausdruck nicht Integer oder Decimal ist. Stellen Sie sicher, dass Ihr `durationExpression` Wert in eine Zahl umgewandelt werden kann. Andere Datentypen wie Boolean und String werden nicht unterstützt.
+ **Meldung:** Die Datentypen [*inferred-types*], die mit Operanden des Vergleichsoperators [*operator*] verwendet werden, sind im folgenden Ausdruck nicht kompatibel: *expression*

#### Lösung
<a name="w2aac42c13c13b9c17b5c21b3b1b1"></a>

   Die abgeleiteten Datentypen für die Operanden von *operator* im bedingten Ausdruck (*expression*) Ihres Detektormodells stimmen nicht überein. Die Operanden müssen mit den passenden Datentypen in allen anderen Teilen Ihres Detektormodells verwendet werden.

**Tipp**  
Sie können sie verwenden`convert`, um den Datentyp eines Ausdrucks in Ihrem Detektormodell zu ändern. Weitere Informationen finden Sie unter [Funktionen zur Verwendung in Ausdrücken AWS IoT Events](iotevents-expressions.md#expression-function).

### `referenced-data`
<a name="analyze-referenced-data"></a>

Ein Analyseergebnis mit Informationen über`referenced‐data`, entspricht den folgenden Fehlermeldungen: 
+ **Meldung:** Defekter Timer erkannt: Timer *timer-name* wird in einem Ausdruck verwendet, aber nie gesetzt.

#### Lösung
<a name="w2aac42c13c13b9c19b5b1b3b1b1"></a>

   Möglicherweise erhalten Sie diese Fehlermeldung, wenn Sie einen Timer verwenden, der nicht eingestellt ist. Sie müssen einen Timer festlegen, bevor Sie ihn in einem Ausdruck verwenden können. Stellen Sie außerdem sicher, dass Sie den richtigen Timer-Namen eingeben.
+ **Meldung:** Fehlerhafte Variable erkannt: *variable-name* Die Variable wird in einem Ausdruck verwendet, aber nie gesetzt.

#### Lösung
<a name="w2aac42c13c13b9c19b5b3b3b1b1"></a>

   Möglicherweise erhalten Sie diese Fehlermeldung, wenn Sie eine Variable verwenden, die nicht gesetzt ist. Sie müssen eine Variable festlegen, bevor Sie sie in einem Ausdruck verwenden können. Stellen Sie außerdem sicher, dass Sie den richtigen Variablennamen eingeben.
+ **Meldung:** Fehlerhafte Variable erkannt: Eine Variable wird in einem Ausdruck verwendet, bevor sie auf einen Wert gesetzt wird.

#### Lösung
<a name="w2aac42c13c13b9c19b5b5b3b1b1"></a>

   Jeder Variablen muss ein Wert zugewiesen werden, bevor sie in einem Ausdruck ausgewertet werden kann. Legen Sie den Wert der Variablen vor jeder Verwendung fest, damit ihr Wert abgerufen werden kann. Stellen Sie außerdem sicher, dass Sie den richtigen Variablennamen eingeben.

### `referenced-resource`
<a name="analyze-referenced-resource"></a>

Ein Analyseergebnis mit Informationen über`referenced‐resource`, entspricht den folgenden Fehlermeldungen: 
+ **Meldung:** Die Detector Model Definition enthält einen Verweis auf Input, der nicht existiert.

#### Lösung
<a name="w2aac42c13c13b9c21b5b1b3b1b1"></a>

   Möglicherweise erhalten Sie diese Fehlermeldung, wenn Sie Ausdrücke verwenden, um auf eine Eingabe zu verweisen, die nicht existiert. Stellen Sie sicher, dass Ihr Ausdruck auf eine vorhandene Eingabe verweist, und geben Sie den richtigen Eingabenamen ein. Wenn Sie keine Eingabe haben, erstellen Sie zuerst eine.
+ **Meldung:** Die Modelldefinition des Detektors enthält folgende ungültige Angaben InputName: *input-name*

#### Lösung
<a name="w2aac42c13c13b9c21b5b3b3b1b1"></a>

   Möglicherweise erhalten Sie diese Fehlermeldung, wenn Ihr Detektormodell einen ungültigen Eingabenamen enthält. Stellen Sie sicher, dass Sie den richtigen Eingabenamen eingeben. Der Eingabename muss 1-128 Zeichen lang sein. Gültige Zeichen: a-z, A-Z, 0-9, \$1 (Unterstrich) und - (Bindestrich).

# Analysieren Sie ein Detektormodell für AWS IoT Events (Konsole)
<a name="analyze-api-console"></a>

AWS IoT Events ermöglicht es Ihnen, IoT-Daten zu überwachen und darauf zu reagieren, indem Sie Ereignisse erkennen und Aktionen mit der AWS IoT Events API auslösen. In den folgenden Schritten wird die AWS IoT Events Konsole verwendet, um ein Detektormodell zu analysieren.

**Anmerkung**  
Nachdem Sie AWS IoT Events mit der Analyse Ihres Detektormodells begonnen haben, haben Sie bis zu 24 Stunden Zeit, um die Analyseergebnisse abzurufen.

Eine Analyse des Detektormodells kann Ihnen helfen, Ihre Modelle zu optimieren, potenzielle Probleme zu identifizieren und sicherzustellen, dass sie wie vorgesehen funktionieren. In einem Windpark könnte die Analyse des Detektormodells beispielsweise aufzeigen, ob das Modell potenzielle Getriebeschäden aufgrund abnormaler Schwingungsmuster korrekt identifiziert. Oder ob das Modell präzise Wartungswarnungen auslöst, wenn die Windgeschwindigkeiten die sicheren Betriebsgrenzwerte überschreiten. Indem Sie ein auf der Analyse basierendes Modell verfeinern, können Sie die vorausschauende Wartung verbessern, Ausfallzeiten reduzieren und die Gesamteffizienz der Energieerzeugung verbessern.

**Um ein Detektormodell zu analysieren**

1. Melden Sie sich an der [AWS IoT Events -Konsole](https://console.aws.amazon.com/iotevents/) an.

1. Wählen Sie im Navigationsbereich die Option **Detektormodelle** aus.

1. Wählen Sie unter **Detektormodelle** das Zieldetektormodell aus.

1. Wählen Sie auf der Seite mit dem Meldermodell die Option **Bearbeiten** aus.

1. Wählen Sie in der oberen rechten Ecke die Option Analyse **ausführen** aus.  
![\[Screenshot der Analyse von Detektormodellen in der AWS IoT Events Konsole.\]](http://docs.aws.amazon.com/de_de/iotevents/latest/developerguide/images/analyzeAPI1.png)

   Im Folgenden finden Sie ein Beispiel für ein Analyseergebnis in der AWS IoT Events Konsole.  
![\[Screenshot der Analyse von Detektormodellen in der AWS IoT Events Konsole.\]](http://docs.aws.amazon.com/de_de/iotevents/latest/developerguide/images/analyzeAPI2.png)

# Analysieren Sie ein Detektormodell in AWS IoT Events (AWS CLI)
<a name="analyze-api-api"></a>

Die programmatische Analyse Ihrer AWS IoT Events Detektormodelle bietet wertvolle Einblicke in deren Struktur, Verhalten und Leistung. Dieser API-basierte Ansatz ermöglicht eine automatisierte Analyse, die Integration in Ihre bestehenden Workflows und die Möglichkeit, Massenoperationen über mehrere Detektormodelle hinweg durchzuführen. Durch die Nutzung der [StartDetectorModelAnalysis](https://docs.aws.amazon.com/iotevents/latest/apireference/API_StartDetectorModelAnalysis.html)API können Sie eingehende Untersuchungen Ihrer Modelle einleiten und so potenzielle Probleme identifizieren, logische Abläufe optimieren und sicherstellen, dass Ihre IoT-Ereignisverarbeitung Ihren Geschäftsanforderungen entspricht.

In den folgenden Schritten wird AWS CLI ein Detektormodell analysiert.

**Um ein Detektormodell zu analysieren mit AWS CLI**

1. Führen Sie den folgenden Befehl aus, um eine Analyse zu starten.

   ```
   aws iotevents start-detector-model-analysis --cli-input-json file://file-name.json
   ```
**Anmerkung**  
*file-name*Ersetzen Sie es durch den Namen der Datei, die die Definition des Detektormodells enthält.  
**Example Definition des Detektormodells**  

   ```
   {
       "detectorModelDefinition": {
           "states": [
               {
                   "stateName": "TemperatureCheck",
                   "onInput": {
                       "events": [
                           {
                               "eventName": "Temperature Received",
                               "condition": "isNull($input.TemperatureInput.sensorData.temperature)==false",
                               "actions": [
                                   {
                                       "iotTopicPublish": {
                                           "mqttTopic": "IoTEvents/Output"
                                       }
                                   }
                               ]
                           }
                       ],
                       "transitionEvents": []
                   },
                   "onEnter": {
                       "events": [
                           {
                               "eventName": "Init",
                               "condition": "true",
                               "actions": [
                                   {
                                       "setVariable": {
                                           "variableName": "temperatureChecked",
                                           "value": "0"
                                       }
                                   }
                               ]
                           }
                       ]
                   },
                   "onExit": {
                       "events": []
                   }
               }
           ],
           "initialStateName": "TemperatureCheck"
       }
   }
   ```

   Wenn Sie den verwenden AWS CLI , um ein vorhandenes Detektormodell zu analysieren,  wählen Sie eine der folgenden Optionen, um die Definition des Detektormodells abzurufen:
   + Wenn Sie die AWS IoT Events Konsole verwenden möchten, gehen Sie wie folgt vor:

     1. Wählen Sie im Navigationsbereich die Option **Detector models** aus.

     1. Wählen Sie unter **Detektormodelle** das Zieldetektormodell aus.

     1. Wählen Sie **unter **Aktion** die Option Detektormodell exportieren** aus, um das Detektormodell herunterzuladen. Das Detektormodell wird in JSON gespeichert.

     1. Öffnen Sie die JSON-Datei für das Detektormodell.

     1. Sie benötigen nur das `detectorModelDefinition` Objekt. Entfernen Sie Folgendes:
        + Die erste geschweifte Klammer (`{`) oben auf der Seite
        + Die Linie `detectorModel`
        + Das `detectorModelConfiguration`-Objekt
        + Die letzte geschweifte Klammer (`}`) unten auf der Seite

     1. Speichern Sie die Datei.
   + Wenn Sie den verwenden möchten AWS CLI, gehen Sie wie folgt vor:

     1. Führen Sie folgenden Befehl von einem Terminal aus.

        ```
        aws iotevents describe-detector-model --detector-model-name detector-model-name
        ```

     1. *detector-model-name*Ersetzen Sie es durch den Namen Ihres Meldermodells.

     1. Kopieren Sie das `detectorModelDefinition` Objekt in einen Texteditor.

     1. Fügen Sie geschweifte Klammern (`{}`) außerhalb von hinzu. `detectorModelDefinition`

     1. Speichern Sie die Datei in JSON.  
**Example Beispielantwort**  

   ```
   {
       "analysisId": "c1133390-14e3-4204-9a66-31efd92a4fed"
   }
   ```

1. Kopieren Sie die Analyse-ID aus der Ausgabe.

1. Führen Sie den folgenden Befehl aus, um den Status der Analyse abzurufen.

   ```
   aws iotevents describe-detector-model-analysis --analysis-id "analysis-id"
   ```
**Anmerkung**  
*analysis-id*Ersetzen Sie durch die Analyse-ID, die Sie kopiert haben.  
**Example Beispielantwort**  

   ```
   {
       "status": "COMPLETE"
   }
   ```

   Der Status kann einer der folgenden Werte sein:
   + `RUNNING`— AWS IoT Events analysiert Ihr Detektormodell. Dieser Vorgang kann bis zu einer Minute dauern.
   + `COMPLETE`— die Analyse Ihres Detektormodells AWS IoT Events abgeschlossen.
   + `FAILED`— AWS IoT Events konnte Ihr Detektormodell nicht analysieren. Bitte versuchen Sie es später erneut.

1. Führen Sie den folgenden Befehl aus, um ein oder mehrere Analyseergebnisse des Detektormodells abzurufen.
**Anmerkung**  
*analysis-id*Ersetzen Sie es durch die Analyse-ID, die Sie kopiert haben.

   ```
   aws iotevents get-detector-model-analysis-results --analysis-id "analysis-id"
   ```  
**Example Beispielantwort**  

   ```
   {
       "analysisResults": [
           {
               "type": "data-type",
               "level": "INFO",
               "message": "Inferred data types [Integer] for $variable.temperatureChecked",
               "locations": []
           },
           {
               "type": "referenced-resource",
               "level": "ERROR",
               "message": "Detector Model Definition contains reference to Input 'TemperatureInput' that does not exist.",
               "locations": [
                   {
                       "path": "states[0].onInput.events[0]"
                   }
               ]
           }
       ]
   }
   ```

**Anmerkung**  
Nachdem Sie AWS IoT Events mit der Analyse Ihres Detektormodells begonnen haben, haben Sie bis zu 24 Stunden Zeit, um die Analyseergebnisse abzurufen.