Créez un modèle de détecteur pour représenter les états des appareils dans AWS IoT Events - AWS IoT Events

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Créez un modèle de détecteur pour représenter les états des appareils dans AWS IoT Events

DansCréation d'une AWS IoT Events entrée pour capturer les données de l'appareil, vous avez créé un message input basé sur un message qui rapporte les données de pression d'un moteur. Pour continuer avec l'exemple, voici un modèle de détecteur qui répond à un événement de surpression dans un moteur.

Vous créez deux états : Normal « » et « Dangerous ». Chaque détecteur (instance) passe à l'état Normal « » lors de sa création. L'instance est créée lorsqu'une entrée avec une valeur unique pour le key « motorid » arrive.

Si l'instance du détecteur reçoit une valeur de pression supérieure ou égale à 70, elle passe à l'état Dangerous « » et envoie un SNS message Amazon en guise d'avertissement. Si les relevés de pression reviennent à la normale (moins de 70) pour trois entrées consécutives, le détecteur revient à l'état « Normal » et envoie un autre SNS message Amazon indiquant que tout est clair.

Cet exemple de modèle de détecteur suppose que vous avez créé deux SNS rubriques Amazon dont les noms de ressources Amazon (ARNs) apparaissent dans la définition sous la forme "targetArn": "arn:aws:sns:us-east-1:123456789012:underPressureAction" et"targetArn": "arn:aws:sns:us-east-1:123456789012:pressureClearedAction".

Pour plus d'informations, consultez le guide du développeur Amazon Simple Notification Service et, plus précisément, la documentation de l'CreateTopicopération dans le manuel Amazon Simple Notification Service API Reference.

Cet exemple suppose également que vous avez créé un rôle AWS Identity and Access Management (IAM) avec les autorisations appropriées. Ce rôle est indiqué dans la définition du modèle de détecteur sous la forme"roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole". ARN Suivez les étapes décrites Configuration des autorisations pour AWS IoT Events pour créer ce rôle et copiez-le à ARN l'endroit approprié dans la définition du modèle de détecteur.

Vous pouvez créer le modèle de détecteur à l'aide de la AWS CLI commande suivante.

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

Le fichier "motorDetectorModel.json" contient les éléments suivants.

{ "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" }