AWS IoT Events Beispiele mit AWS CLI - AWS SDKCode-Beispiele

Weitere AWS SDK Beispiele sind im Repo AWS Doc SDK Examples GitHub verfügbar.

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.

AWS IoT Events Beispiele mit AWS CLI

Die folgenden Codebeispiele zeigen Ihnen, wie Sie mithilfe von AWS Command Line Interface with Aktionen ausführen und allgemeine Szenarien implementieren AWS IoT Events.

Aktionen sind Codeauszüge aus größeren Programmen und müssen im Kontext ausgeführt werden. Aktionen zeigen Ihnen zwar, wie Sie einzelne Servicefunktionen aufrufen, aber Sie können Aktionen im Kontext der zugehörigen Szenarien sehen.

Jedes Beispiel enthält einen Link zum vollständigen Quellcode, in dem Sie Anweisungen zum Einrichten und Ausführen des Codes im Kontext finden.

Themen

Aktionen

Das folgende Codebeispiel zeigt die Verwendungbatch-put-message.

AWS CLI

Um Nachrichten (Eingaben) an AWS IoT Events zu senden

Das folgende batch-put-message Beispiel sendet eine Reihe von Nachrichten an das AWS IoT Events Events-System. Jede Nachrichtennutzlast wird in die von Ihnen angegebene Eingabe (inputName) umgewandelt und in alle Detektoren aufgenommen, die diese Eingabe überwachen. Wenn mehrere Nachrichten gesendet werden, kann die Reihenfolge, in der die Nachrichten verarbeitet werden, nicht garantiert werden. Um die Bestellung zu garantieren, müssen Sie Nachrichten nacheinander senden und auf eine erfolgreiche Antwort warten.

aws iotevents-data batch-put-message \ --cli-input-json file://highPressureMessage.json

Inhalt von highPressureMessage.json:

{ "messages": [ { "messageId": "00001", "inputName": "PressureInput", "payload": "{\"motorid\": \"Fulton-A32\", \"sensorData\": {\"pressure\": 80, \"temperature\": 39} }" } ] }

Ausgabe:

{ "BatchPutMessageErrorEntries": [] }

Weitere Informationen finden Sie BatchPutMessagein der APIReferenz zu AWS IoT Events.

Das folgende Codebeispiel zeigt die Verwendungbatch-update-detector.

AWS CLI

Um einen Detektor (Instanz) zu aktualisieren

Das folgende batch-update-detector Beispiel aktualisiert den Status, die Variablenwerte und die Timer-Einstellungen eines oder mehrerer Detektoren (Instanzen) eines bestimmten Meldermodells.

aws iotevents-data batch-update-detector \ --cli-input-json file://budFulton-A32.json

Inhalt von budFulton-A32.json:

{ "detectors": [ { "messageId": "00001", "detectorModelName": "motorDetectorModel", "keyValue": "Fulton-A32", "state": { "stateName": "Normal", "variables": [ { "name": "pressureThresholdBreached", "value": "0" } ], "timers": [ ] } } ] }

Ausgabe:

{ "batchUpdateDetectorErrorEntries": [] }

Weitere Informationen finden Sie BatchUpdateDetectorin der APIReferenz zu AWS IoT Events.

Das folgende Codebeispiel zeigt die Verwendungcreate-detector-model.

AWS CLI

Um ein Detektormodell zu erstellen

Im folgenden create-detector-model Beispiel wird ein Detektormodell erstellt, dessen Konfiguration durch eine Parameterdatei spezifiziert wird.

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

Inhalt von motorDetectorModel.json:

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

Ausgabe:

{ "detectorModelConfiguration": { "status": "ACTIVATING", "lastUpdateTime": 1560796816.077, "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole", "creationTime": 1560796816.077, "detectorModelArn": "arn:aws:iotevents:us-west-2:123456789012:detectorModel/motorDetectorModel", "key": "motorid", "detectorModelName": "motorDetectorModel", "detectorModelVersion": "1" } }

Weitere Informationen finden Sie CreateDetectorModelin der APIReferenz zu AWS IoT Events.

Das folgende Codebeispiel zeigt die Verwendungcreate-input.

AWS CLI

Um eine Eingabe zu erstellen

Das folgende create-input Beispiel erstellt eine Eingabe.

aws iotevents create-input \ --cli-input-json file://pressureInput.json

Inhalt von pressureInput.json:

{ "inputName": "PressureInput", "inputDescription": "Pressure readings from a motor", "inputDefinition": { "attributes": [ { "jsonPath": "sensorData.pressure" }, { "jsonPath": "motorid" } ] } }

Ausgabe:

{ "inputConfiguration": { "status": "ACTIVE", "inputArn": "arn:aws:iotevents:us-west-2:123456789012:input/PressureInput", "lastUpdateTime": 1560795312.542, "creationTime": 1560795312.542, "inputName": "PressureInput", "inputDescription": "Pressure readings from a motor" } }

Weitere Informationen finden Sie CreateInputin der APIReferenz zu AWS IoT Events.

  • APIEinzelheiten finden Sie CreateInputunter AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendungdelete-detector-model.

AWS CLI

Um ein Detektormodell zu löschen

Im folgenden delete-detector-model Beispiel wird das angegebene Detektormodell gelöscht. Alle aktiven Instanzen des Detektormodells werden ebenfalls gelöscht.

aws iotevents delete-detector-model \ --detector-model-name motorDetectorModel

Mit diesem Befehl wird keine Ausgabe zurückgegeben.

Weitere Informationen finden Sie DeleteDetectorModelin der APIReferenz zu AWS IoT Events.

Das folgende Codebeispiel zeigt die Verwendungdelete-input.

AWS CLI

Um eine Eingabe zu löschen

Im folgenden delete-input Beispiel wird die angegebene Eingabe gelöscht.

aws iotevents delete-input \ --input-name PressureInput

Mit diesem Befehl wird keine Ausgabe zurückgegeben.

Weitere Informationen finden Sie DeleteInputin der APIReferenz zu AWS IoT Events.

  • APIEinzelheiten finden Sie DeleteInputunter AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendungdescribe-detector-model.

AWS CLI

Um Informationen über ein Detektormodell zu erhalten

Im folgenden describe-detector-model Beispiel werden Details für das angegebene Detektormodell angezeigt. Da der version Parameter nicht angegeben ist, werden Informationen über die neueste Version zurückgegeben.

aws iotevents describe-detector-model \ --detector-model-name motorDetectorModel

Ausgabe:

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

Weitere Informationen finden Sie DescribeDetectorModelin der APIReferenz zu AWS IoT Events.

Das folgende Codebeispiel zeigt die Verwendungdescribe-detector.

AWS CLI

Um Informationen über einen Detektor (Instanz) zu erhalten.

Im folgenden describe-detector Beispiel werden Details für den angegebenen Detektor (Instanz) angezeigt.

aws iotevents-data describe-detector \ --detector-model-name motorDetectorModel \ --key-value "Fulton-A32"

Ausgabe:

{ "detector": { "lastUpdateTime": 1560797852.776, "creationTime": 1560797852.775, "state": { "variables": [ { "name": "pressureThresholdBreached", "value": "3" } ], "stateName": "Dangerous", "timers": [] }, "keyValue": "Fulton-A32", "detectorModelName": "motorDetectorModel", "detectorModelVersion": "1" } }

Weitere Informationen finden Sie DescribeDetectorin der APIReferenz zu AWS IoT Events.

Das folgende Codebeispiel zeigt die Verwendungdescribe-input.

AWS CLI

Um Informationen über eine Eingabe zu erhalten

Im folgenden describe-input Beispiel werden Details für die angegebene Eingabe angezeigt.

aws iotevents describe-input \ --input-name PressureInput

Ausgabe:

{ "input": { "inputConfiguration": { "status": "ACTIVE", "inputArn": "arn:aws:iotevents:us-west-2:123456789012:input/PressureInput", "lastUpdateTime": 1560795312.542, "creationTime": 1560795312.542, "inputName": "PressureInput", "inputDescription": "Pressure readings from a motor" }, "inputDefinition": { "attributes": [ { "jsonPath": "sensorData.pressure" }, { "jsonPath": "motorid" } ] } } }

Weitere Informationen finden Sie DescribeInputin der APIReferenz zu AWS IoT Events.

  • APIEinzelheiten finden Sie DescribeInputunter AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendungdescribe-logging-options.

AWS CLI

Um Informationen zu den Protokollierungseinstellungen zu erhalten

Im folgenden describe-logging-options Beispiel werden die aktuellen Einstellungen der Protokollierungsoptionen für AWS IoT Events abgerufen.

aws iotevents describe-logging-options

Ausgabe:

{ "loggingOptions": { "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole", "enabled": false, "level": "ERROR" } }

Weitere Informationen finden Sie DescribeLoggingOptionsin der APIReferenz zu AWS IoT Events.

Das folgende Codebeispiel zeigt die Verwendunglist-detector-model-versions.

AWS CLI

Um Informationen über Versionen eines Detektormodells zu erhalten

Das folgende list-detector-model-versions Beispiel listet alle Versionen eines Detektormodells auf. Es werden nur die Metadaten für die jeweilige Detektormodellversion zurückgegeben.

aws iotevents list-detector-model-versions \ --detector-model-name motorDetectorModel

Ausgabe:

{ "detectorModelVersionSummaries": [ { "status": "ACTIVE", "lastUpdateTime": 1560796816.077, "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole", "creationTime": 1560796816.077, "detectorModelArn": "arn:aws:iotevents:us-west-2:123456789012:detectorModel/motorDetectorModel", "detectorModelName": "motorDetectorModel", "detectorModelVersion": "1" } ] }

Weitere Informationen finden Sie ListDetectorModelVersionsin der APIReferenz zu AWS IoT Events.

Das folgende Codebeispiel zeigt die Verwendunglist-detector-models.

AWS CLI

Um eine Liste Ihrer Detektormodelle zu erhalten

Das folgende list-detector-models Beispiel listet die von Ihnen erstellten Meldermodelle auf. Es werden nur die Metadaten für das jeweilige Detektormodell zurückgegeben.

aws iotevents list-detector-models

Ausgabe:

{ "detectorModelSummaries": [ { "detectorModelName": "motorDetectorModel", "creationTime": 1552072424.212 "detectorModelDescription": "Detect overpressure in a motor." } ] }

Weitere Informationen finden Sie ListDetectorModelsin der APIReferenz zu AWS IoT Events.

Das folgende Codebeispiel zeigt die Verwendunglist-detectors.

AWS CLI

Um eine Liste von Detektoren für ein Detektormodell zu erhalten

Das folgende list-detectors Beispiel listet die Detektoren (die Instanzen eines Meldermodells) in Ihrem Konto auf.

aws iotevents-data list-detectors \ --detector-model-name motorDetectorModel

Ausgabe:

{ "detectorSummaries": [ { "lastUpdateTime": 1558129925.2, "creationTime": 1552073155.527, "state": { "stateName": "Normal" }, "keyValue": "Fulton-A32", "detectorModelName": "motorDetectorModel", "detectorModelVersion": "1" } ] }

Weitere Informationen finden Sie ListDetectorsin der APIReferenz zu AWS IoT Events.

  • APIEinzelheiten finden Sie ListDetectorsunter AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendunglist-inputs.

AWS CLI

Um Eingaben aufzulisten

Das folgende list-inputs Beispiel listet die Eingaben auf, die Sie in Ihrem Konto erstellt haben.

aws iotevents list-inputs

Mit diesem Befehl wird keine Ausgabe zurückgegeben. Ausgabe:

{ { "status": "ACTIVE", "inputArn": "arn:aws:iotevents:us-west-2:123456789012:input/PressureInput", "lastUpdateTime": 1551742986.768, "creationTime": 1551742986.768, "inputName": "PressureInput", "inputDescription": "Pressure readings from a motor" } }

Weitere Informationen finden Sie ListInputsin der APIReferenz zu AWS IoT Events.

  • APIEinzelheiten finden Sie ListInputsunter AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendunglist-tags-for-resource.

AWS CLI

Um Tags aufzulisten, die einer Ressource zugewiesen sind.

Das folgende list-tags-for-resource Beispiel listet die Namen und Werte der Tag-Schlüssel auf, die Sie der Ressource zugewiesen haben.

aws iotevents list-tags-for-resource \ --resource-arn "arn:aws:iotevents:us-west-2:123456789012:input/PressureInput"

Ausgabe:

{ "tags": [ { "value": "motor", "key": "deviceType" } ] }

Weitere Informationen finden Sie ListTagsForResourcein der APIReferenz zu AWS IoT Events.

Das folgende Codebeispiel zeigt die Verwendungput-logging-options.

AWS CLI

Um Protokollierungsoptionen festzulegen

Im folgenden put-logging-options Beispiel werden die Protokollierungsoptionen für AWS IoT Events festgelegt oder aktualisiert. Wenn Sie den Wert eines loggingOptions` field, it can take up to one minute for the change to take effect. Also, if you change the policy attached to the role you specified in the ``roleArn Felds aktualisieren (z. B. um eine ungültige Richtlinie zu korrigieren), kann es bis zu fünf Minuten dauern, bis diese Änderung wirksam wird.

aws iotevents put-logging-options \ --cli-input-json file://logging-options.json

Inhalt von logging-options.json:

{ "loggingOptions": { "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole", "level": "DEBUG", "enabled": true, "detectorDebugOptions": [ { "detectorModelName": "motorDetectorModel", "keyValue": "Fulton-A32" } ] } }

Mit diesem Befehl wird keine Ausgabe zurückgegeben.

Weitere Informationen finden Sie PutLoggingOptionsin der APIReferenz zu AWS IoT Events.

Das folgende Codebeispiel zeigt die Verwendungtag-resource.

AWS CLI

Um einer Ressource Tags hinzuzufügen

Im folgenden tag-resource Beispiel wird das der angegebenen Ressource zugeordnete Tag hinzugefügt oder geändert (falls der Schlüssel deviceType bereits vorhanden ist).

aws iotevents tag-resource \ --cli-input-json file://pressureInput.tag.json

Inhalt von pressureInput.tag.json:

{ "resourceArn": "arn:aws:iotevents:us-west-2:123456789012:input/PressureInput", "tags": [ { "key": "deviceType", "value": "motor" } ] }

Mit diesem Befehl wird keine Ausgabe zurückgegeben.

Weitere Informationen finden Sie TagResourcein der APIReferenz zu AWS IoT Events.

  • APIEinzelheiten finden Sie TagResourceunter AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendunguntag-resource.

AWS CLI

Um Tags aus einer Ressource zu entfernen

Im folgenden untag-resource Beispiel wird das Tag mit dem angegebenen Schlüsselnamen aus der angegebenen Ressource entfernt.

aws iotevents untag-resource \ --resource-arn arn:aws:iotevents:us-west-2:123456789012:input/PressureInput \ --tagkeys deviceType

Mit diesem Befehl wird keine Ausgabe zurückgegeben.

Weitere Informationen finden Sie UntagResourcein der APIReferenz zu AWS IoT Events.

  • APIEinzelheiten finden Sie UntagResourceunter AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendungupdate-detector-model.

AWS CLI

Um ein Detektormodell zu aktualisieren

Im folgenden update-detector-model Beispiel wird das angegebene Detektormodell aktualisiert. Von der vorherigen Version erzeugte Detektoren (Instanzen) werden gelöscht und dann neu erstellt, sobald neue Eingaben eintreffen.

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

Inhalt von motorDetectorModel.update.json:

{ "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" }, "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole" }

Ausgabe:

{ "detectorModelConfiguration": { "status": "ACTIVATING", "lastUpdateTime": 1560799387.719, "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole", "creationTime": 1560799387.719, "detectorModelArn": "arn:aws:iotevents:us-west-2:123456789012:detectorModel/motorDetectorModel", "key": "motorid", "detectorModelName": "motorDetectorModel", "detectorModelVersion": "2" } }

Weitere Informationen finden Sie UpdateDetectorModelin der APIReferenz zu AWS IoT Events.

Das folgende Codebeispiel zeigt die Verwendungupdate-input.

AWS CLI

Um eine Eingabe zu aktualisieren

Im folgenden update-input Beispiel wird die angegebene Eingabe mit einer neuen Beschreibung und Definition aktualisiert.

aws iotevents update-input \ --cli-input-json file://pressureInput.json

Inhalt von pressureInput.json:

{ "inputName": "PressureInput", "inputDescription": "Pressure readings from a motor", "inputDefinition": { "attributes": [ { "jsonPath": "sensorData.pressure" }, { "jsonPath": "motorid" } ] } }

Ausgabe:

{ "inputConfiguration": { "status": "ACTIVE", "inputArn": "arn:aws:iotevents:us-west-2:123456789012:input/PressureInput", "lastUpdateTime": 1560795976.458, "creationTime": 1560795312.542, "inputName": "PressureInput", "inputDescription": "Pressure readings from a motor" } }

Weitere Informationen finden Sie UpdateInputin der APIReferenz zu AWS IoT Events.

  • APIEinzelheiten finden Sie UpdateInputunter AWS CLI Befehlsreferenz.