Analyse und Diagnoseinformationen zu Detektormodellen - 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.

Analyse und Diagnoseinformationen zu Detektormodellen

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 Warnungsergebnis 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. Wenn 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 für einige Kontingente eine Erhöhung beantragen, während andere Kontingente nicht erhöht werden können. Weitere Informationen finden Sie unter Kontingente.

  • structure— Das Detektormodell 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 anweisen, in den Status einzutreten.

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

    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

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.

Location

Ein Analyseergebnis mit Informationen überLocation, entspricht der folgenden Fehlermeldung:

  • Meldung — Enthält zusätzliche Informationen zum Analyseergebnis. Dies kann eine Information, Warnung oder Fehlermeldung sein.

    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 unterUnterstützte Aktionen zum Empfangen von Daten und Auslösen von Aktionen.

supported-actions

Ein Analyseergebnis mit Informationen übersupported‐actions, entspricht den folgenden Fehlermeldungen:

  • Meldung: Ungültiger Aktionstyp in der Aktionsdefinition vorhanden: action-definition.

    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 unterUnterstützte Aktionen zum Empfangen von Daten und Auslösen von Aktionen.

  • Meldung: Die DetectorModel Definition hat eine aws-Dienst Aktion, aber die AWS-Service Der Dienst wird in der Region nicht unterstützt region-name.

    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

Ein Analyseergebnis mit Informationen überservice‐limits, entspricht den folgenden Fehlermeldungen:

  • Meldung: Der in der Nutzlast zulässige Inhaltsausdruck hat das Limit überschritten content-expression-size Byte im Ereignis event-name im Bundesstaat state-name.

    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 überschritten states-per-detector-model.

    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 sein minimum-timer-duration Sekunden lang.

    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 überschritten actions-per-event in der Definition des Detektormodells

    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 überschritten transition-events-per-state in der Definition des Detektormodells.

    Möglicherweise erhalten Sie diese Fehlermeldung, wenn der Status mehr als 20 Übergangsereignisse hat. 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 überschritten events-per-state in der Definition des Detektormodells

    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. Eingabe input-name wird verwendet in detector-models-per-input Detektor modelliert Routen.

    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

Ein Analyseergebnis mit Informationen überstructure, entspricht den folgenden Fehlermeldungen:

  • Meldung: Für Aktionen ist möglicherweise nur ein Typ definiert, aber es wurde eine Aktion gefunden mit number-of-types Typen. Bitte teilen Sie es in separate Aktionen auf.

    Möglicherweise erhalten Sie diese Fehlermeldung, wenn Sie zwei oder mehr Aktionen in einem einzigen Feld angegeben haben, indem Sie API Operationen zum Erstellen oder Aktualisieren Ihres Meldermodells verwendet haben. 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 nicht existierenden Zustand state-name.

    Möglicherweise erhalten Sie diese Fehlermeldung, wenn Sie den nächsten Status, auf den Ihr Übergangsereignis verwiesen hat, nicht finden AWS IoT Events konnten. Stellen Sie sicher, dass der nächste Status definiert ist und dass Sie den richtigen Statusnamen eingegeben haben.

  • Meldung: Der DetectorModelDefinition hatte einen gemeinsamen Statusnamen: Zustand gefunden state-name mit number-of-states Wiederholungen.

    Möglicherweise erhalten Sie diese Fehlermeldung, wenn Sie denselben Namen für einen oder mehrere Bundesstaaten 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, _ (Unterstrich) und - (Bindestrich).

  • Nachricht: Die Definition initialStateName initial-state-name entsprach keinem definierten Bundesstaat.

    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.

    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.

  • Nachricht: Nur eine von Sekunden und durationExpression kann eingegeben werden SetTimer.

    Möglicherweise erhalten Sie diese Fehlermeldung, wenn Sie seconds sowohl als auch durationExpression für Ihren Timer verwendet haben. Stellen Sie sicher, dass Sie entweder seconds oder durationExpression als Parameter von verwendenSetTimerAction. Weitere Informationen finden Sie SetTimerActionin der AWS IoT Events APIReferenz.

  • Meldung: Eine Aktion in Ihrem Meldermodell ist nicht erreichbar. Überprüfen Sie den Zustand, der die Aktion auslöst.

    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.

    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 im AWS IoT Events Entwicklerhandbuch

  • Meldung: Ein Status in Ihrem Detektormodell ist nicht erreichbar. Überprüfen Sie den Zustand, der zu einem Übergang in den gewünschten Zustand führen wird.

    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. Prüfen Sie, ob die Bedingungen für eingehende Übergänge in diesen unerreichbaren Zustand in Ihrem Detektormodell als wahr ausgewertet 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.

    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 im AWS IoT Events Entwicklerhandbuch

expression-syntax

Ein Analyseergebnis mit Informationen überexpression‐syntax, entspricht den folgenden Fehlermeldungen:

  • Nachricht: Ihr Payload-Ausdruck {expression} ist nicht gültig. Der definierte Payload-Typ istJSON, Sie müssen also einen Ausdruck angeben, der eine Zeichenfolge ergeben AWS IoT Events würde.

    Wenn der angegebene Nutzdatentyp „ist“JSON, 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 '' konnte nicht analysiert werdenvariable-value'

    Sie können es verwendenSetVariableAction, 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, in der AWS IoT Events APIReferenz.

  • Nachricht: Wir konnten Ihren Ausdruck der Attribute nicht analysieren (attribute-name) für die DynamoDB-Aktion. Geben Sie einen Ausdruck mit der richtigen Syntax ein.

    Sie müssen Ausdrücke für alle Parameter in Ersatzvorlagen verwendenDynamoDBAction. Weitere Informationen finden Sie unter D ynamoDBAction in der AWS IoT Events APIReferenz.

  • Nachricht: Wir konnten Ihren Ausdruck tableName für die Aktion D ynamoDBv 2 nicht analysieren. Geben Sie den Ausdruck mit der richtigen Syntax ein.

    tableName Bei der Eingabe DynamoDBv2Action muss es sich um eine Zeichenfolge handeln. Sie müssen einen Ausdruck für die verwendentableName. Die Ausdrücke akzeptieren Literale, Operatoren, Funktionen, Referenzen und Substitutionsvorlagen. Weitere Informationen finden Sie unter D ynamoDBv 2Action in der AWS IoT Events APIReferenz.

  • Nachricht: Wir konnten Ihren Ausdruck nicht als gültig JSON bewerten. Die D ynamoDBv 2-Aktion unterstützt nur den JSON Payload-Typ.

    Der Payload-Typ für DynamoDBv2 muss sein. JSON Stellen Sie sicher, dass Ihr Inhaltsausdruck geprüft werden AWS IoT Events kann, damit die Payload gültig ist. JSON Weitere Informationen finden Sie unter D ynamoDBv 2Action 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.

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

  • Nachricht: Benutzerdefinierte Payloads dürfen nicht leer sein.

    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 in der Referenz unter Payload.AWS IoT Events API

  • Meldung: Fehler beim Analysieren des Ausdrucks für die Dauer 'duration-expression'für den Timer'timer-name'.

    Das ausgewertete Ergebnis Ihres Dauerausdrucks für den Timer muss ein Wert zwischen 60—31622400 sein. Das ausgewertete Ergebnis der Dauer wird auf die nächste ganze Zahl abgerundet.

  • Meldung: Der Ausdruck 'konnte nicht analysiert werdenexpression'für action-name

    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.

  • Nachricht: Ihr fieldName denn IotSitewiseAction konnte nicht analysiert werden. Sie müssen in Ihrem Ausdruck die richtige Syntax verwenden.

    Möglicherweise erhalten Sie diesen Fehler, wenn Sie AWS IoT Events Ihren nicht analysieren konnten fieldName für IotSitewiseAction. Stellen Sie sicher, dass fieldName verwendet einen Ausdruck, der analysiert AWS IoT Events werden kann. Weitere Informationen finden Sie IotSiteWiseActionin der AWS IoT Events APIReferenz.

data-type

Ein Analyseergebnis mit Informationen überdata‐type, entspricht den folgenden Fehlermeldungen:

  • Meldung: Ausdruck für die Dauer duration-expression für Timer timer-name ist nicht gültig, es muss eine Zahl zurückgegeben werden.

    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.

  • Nachricht: Ausdruck condition-expression ist kein gültiger Bedingungsausdruck.

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

  • Meldung: Inkompatible Datentypen [inferred-types] gefunden für reference im folgenden Ausdruck: expression

    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:

    • 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 die verwenden timer-name Wert, Sie müssen auf eine Zeichenfolge mit doppelten Anführungszeichen verweisen.

      timeout("timer-name")
      Anmerkung

      Für die convert(type, expression) Funktion, wenn Sie eine Referenz für die type Wert, das ausgewertete Ergebnis Ihrer Referenz muss StringDecimal, oder seinBoolean.

    Weitere Informationen finden Sie unter Referenz für Eingaben und Variablen in Ausdrücken.

  • Meldung: Inkompatible Datentypen [inferred-types] verwendet mit reference. Dies kann zu einem Laufzeitfehler führen.

    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 [eingegeben habenoperator] sind für den folgenden Ausdruck nicht kompatibel: 'expression'

    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 Datentypen [inferred‐types] gefunden für input‐attribute sind nicht kompatibel und können zu einem Laufzeitfehler führen.

    Diese Fehlermeldung wird möglicherweise angezeigt, 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 auchOnExitLifecycle) für jeden Status Ihres Detektormodells auf denselben Datentyp verweisen.

  • Nachricht: Der Payload-Ausdruck [expression] ist nicht gültig. Geben Sie einen Ausdruck an, der zur Laufzeit zu einer Zeichenfolge ausgewertet wird, da der Nutzdatentyp JSON Format ist.

    Möglicherweise erhalten Sie diesen Fehler, wenn der angegebene Payload-Typ zwar lautetJSON, aber AWS IoT Events Sie können seinen Ausdruck nicht als Zeichenfolge auswerten. Stellen Sie sicher, dass das ausgewertete Ergebnis eine Zeichenfolge und kein boolescher Wert oder eine Zahl ist.

  • Nachricht: Ihr interpolierter Ausdruck {interpolated-expression} muss zur Laufzeit entweder eine Ganzzahl oder einen booleschen Wert ergeben. Andernfalls ist Ihr Payload-Ausdruck {payload-expression} kann zur Laufzeit nicht als gültig analysiert werden. JSON

    Möglicherweise erhalten Sie diese Fehlermeldung, wenn Sie Ihren interpolierten Ausdruck nicht zu einer Ganzzahl oder einem 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 Feld IotSitewiseAction expression ist als Typ definiert defined‐type und als Typ abgeleitet inferred‐type. Der definierte Typ und der abgeleitete Typ müssen identisch sein.

    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 Datentypen [inferred-types], die für eine setTimer Aktion verwendet werden, werden nicht Integer für den folgenden Ausdruck ausgewertet: expression

    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] wird mit Operanden des Vergleichsoperators [verwendetoperator] sind im folgenden Ausdruck nicht kompatibel: expression

    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 verwendenconvert, um den Datentyp eines Ausdrucks in Ihrem Detektormodell zu ändern. Weitere Informationen finden Sie unter Funktionen zur Verwendung in Ausdrücken.

referenced-data

Ein Analyseergebnis mit Informationen überreferenced‐data, entspricht den folgenden Fehlermeldungen:

  • Meldung: Defekter Timer: Timer erkannt timer-name wird in einem Ausdruck verwendet, aber nie gesetzt.

    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: Fehlerhaft erkannt Variable: Variable variable-name wird in einem Ausdruck verwendet, aber nie gesetzt.

    Möglicherweise erhalten Sie diese Fehlermeldung, wenn Sie eine Variable verwenden, die nicht festgelegt 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.

    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

Ein Analyseergebnis mit Informationen überreferenced‐resource, entspricht den folgenden Fehlermeldungen:

  • Meldung: Die Detector Model Definition enthält einen Verweis auf Input, der nicht existiert.

    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

    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, _ (Unterstrich) und - (Bindestrich).