Erstellen Sie ein Meldermodell zur Darstellung von Gerätezuständen in AWS IoT Events - AWS IoT Events

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.

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.

Erstellen Sie ein Meldermodell zur Darstellung von Gerätezuständen in AWS IoT Events

Erstellen Sie einen AWS IoT Events Eingang zur Erfassung von GerätedatenIn haben Sie auf der input Grundlage einer Nachricht eine erstellt, die Druckdaten eines Motors meldet. Um mit dem Beispiel fortzufahren: Hier ist ein Detektormodell, das auf ein Überdruckereignis in einem Motor reagiert.

Sie erstellen zwei Zustände: "Normal„und"Dangerous“. Jeder Detektor (Instanz) geht bei seiner Erstellung in den Zustand Normal "" über. Die Instanz wird erstellt, wenn eine Eingabe mit einem eindeutigen Wert für key "motorid" eingeht.

Wenn die Melder-Instance einen Druckwert von 70 oder mehr empfängt, wechselt sie in den Status Dangerous "" und sendet eine Amazon SNS SNS-Nachricht als Warnung. Wenn die Druckwerte bei drei aufeinanderfolgenden Eingängen wieder normal sind (weniger als 70), kehrt der Detektor in den Zustand "Normal" zurück und sendet eine weitere Amazon SNS SNS-Meldung als Entwarnung.

Dieses Beispiel-Detektormodell geht davon aus, dass Sie zwei Amazon SNS SNS-Themen erstellt haben, deren Amazon-Ressourcennamen (ARNs) in der Definition als "targetArn": "arn:aws:sns:us-east-1:123456789012:underPressureAction" und "targetArn": "arn:aws:sns:us-east-1:123456789012:pressureClearedAction" angezeigt werden.

Weitere Informationen finden Sie im Amazon Simple Notification Service Developer Guide und insbesondere in der Dokumentation des CreateTopicVorgangs in der Amazon Simple Notification Service API-Referenz.

In diesem Beispiel wird auch davon ausgegangen, dass Sie eine AWS Identity and Access Management (IAM-) Rolle mit den entsprechenden Berechtigungen erstellt haben. Der ARN dieser Rolle wird in der Definition des Detektormodells als angezeigt"roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole". Folgen Sie den Schritten unterBerechtigungen einrichten für AWS IoT Events, um diese Rolle zu erstellen, und kopieren Sie den ARN der Rolle an die entsprechende Stelle in der Definition des Detektormodells.

Sie können das Detektormodell mit dem folgenden AWS CLI Befehl erstellen.

aws iotevents create-detector-model --cli-input-json file://motorDetectorModel.json

Die Datei "motorDetectorModel.json" enthält Folgendes.

{ "detectorModelName": "motorDetectorModel", "detectorModelDefinition": { "states": [ { "stateName": "Normal", "onEnter": { "events": [ { "eventName": "init", "condition": "true", "actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "0" } } ] } ] }, "onInput": { "transitionEvents": [ { "eventName": "Overpressurized", "condition": "$input.PressureInput.sensorData.pressure > 70", "actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "$variable.pressureThresholdBreached + 3" } } ], "nextState": "Dangerous" } ] } }, { "stateName": "Dangerous", "onEnter": { "events": [ { "eventName": "Pressure Threshold Breached", "condition": "$variable.pressureThresholdBreached > 1", "actions": [ { "sns": { "targetArn": "arn:aws:sns:us-east-1:123456789012:underPressureAction" } } ] } ] }, "onInput": { "events": [ { "eventName": "Overpressurized", "condition": "$input.PressureInput.sensorData.pressure > 70", "actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "3" } } ] }, { "eventName": "Pressure Okay", "condition": "$input.PressureInput.sensorData.pressure <= 70", "actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "$variable.pressureThresholdBreached - 1" } } ] } ], "transitionEvents": [ { "eventName": "BackToNormal", "condition": "$input.PressureInput.sensorData.pressure <= 70 && $variable.pressureThresholdBreached <= 1", "nextState": "Normal" } ] }, "onExit": { "events": [ { "eventName": "Normal Pressure Restored", "condition": "true", "actions": [ { "sns": { "targetArn": "arn:aws:sns:us-east-1:123456789012:pressureClearedAction" } } ] } ] } } ], "initialStateName": "Normal" }, "key" : "motorid", "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole" }