Allgemeine AWS IoT Events Probleme und Lösungen - AWS IoT Events

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.

Allgemeine AWS IoT Events Probleme und Lösungen

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

Fehler bei der Erstellung des Detektormodells

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

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ürtransitionEvents. Es ist optional für OnEnterOnInput, und OnExit Ereignisse.

  • Wenn das condition Feld leer ist, entspricht das ausgewertete Ergebnis des Bedingungsausdruckstrue.

  • 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 Einschränkungen und Einschränkungen des Detektormodells.

Aktualisierungen aus einem gelöschten Meldermodell

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.

Wenn Sie ein Detektormodell aktualisieren, löschen oder neu erstellen (siehe UpdateDetectorModell), 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)

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

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.

Fehler beim Auslösen einer Aktion (bei Überschreitung eines Schwellenwerts)

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

Wenn Sie setVariable füronInput, onEnter oder aktualisierenonExit, 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 istSERIAL, 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

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

Wenn Sie BatchPutMessage verwenden, um mehrere Nachrichten an Eingänge zu 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 MalBatchPutMessage, bis Sie den Erfolg bestätigen.

Verbindungsnachricht

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

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

Ich erhalte UpdateDetectorModel APIs, InvalidRequestException wenn ich versuche CreateDetectorModel aufzurufen.

Überprüfen Sie Folgendes, um das Problem zu lösen. Weitere Informationen finden Sie unter CreateDetectorModell und UpdateDetectorModell.

  • 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

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 als Zahl ausgewertet werden.

    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.

    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 Dauerausdrucks 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.

    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.

    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.

    Sehen Sie sich die SetTimerAktion 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.

CloudWatch Amazon-Payload-Fehler

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.

    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.

    Der Inhaltsausdruck kann Zeichenfolgen ('string'), Variablen ($variable.variable-name), Eingabewerte ($input.input-name.path-to-datum), Zeichenkettenverkettungen und Zeichenfolgen enthalten, die enthalten. ${}

  • Fehler: Ihr Payload-Ausdruck {expression} ist nicht gültig. Der definierte Payload-Typ ist JSON. Sie müssen also einen Ausdruck angeben, der AWS IoT Events eine Zeichenfolge ergibt.

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

    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.

Inkompatible Datentypen

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

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:

  • 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.testVariableMuss 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 eine Referenz 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 Typwert verwenden, muss das ausgewertete Ergebnis Ihrer ReferenzString,Decimal, oder sein. Boolean

Weitere Informationen finden Sie unter Referenzen.

Nachricht konnte nicht gesendet werden an AWS IoT Events

Nachricht: Nachricht konnte nicht an Iot Events gesendet werden

Dieser Fehler kann aus den folgenden Gründen auftreten:

  • Die Nutzlast der Eingabenachricht enthält nicht dieInput 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.

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, Eine Eingabe im Navigationsbereich erstellen um zu erfahren, wie Sie Eingaben definieren AWS IoT Events .