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 Melderinstanz einen Druckwert von 70 oder mehr empfängt, wechselt sie in den Status Dangerous
"" und sendet eine SNS Amazon-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 SNS Amazon-Nachricht als Entwarnung.
Dieses Beispiel-Detektormodell geht davon aus, dass Sie zwei SNS Amazon-Themen erstellt haben, deren Amazon-Ressourcennamen (ARNs) in der Definition als "targetArn":
"arn:aws:sns:us-east-1:123456789012:underPressureAction"
und angezeigt werden"targetArn":
"arn:aws:sns:us-east-1:123456789012:pressureClearedAction"
.
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 Reference.
In diesem Beispiel wird auch davon ausgegangen, dass Sie eine Rolle AWS Identity and Access Management (IAM) mit den entsprechenden Berechtigungen erstellt haben. Der ARN Wert 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 die ARN 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" }