AWS IoT Events-Data 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-Data 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-Data.

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-binary-format raw-in-base64-out \ --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 BatchPutMessageim AWS IoT Events Developer Guide*.

  • APIEinzelheiten finden Sie BatchPutMessagein der AWS CLI Befehlsreferenz.

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 BatchUpdateDetectorim AWS IoT Events Developer Guide*.

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.

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 CreateDetectorModelim AWS IoT Events Developer Guide*.

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 CreateInputim AWS IoT Events Developer Guide*.

  • APIEinzelheiten finden Sie CreateInputin der 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 ein 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 DeleteDetectorModelim AWS IoT Events Developer Guide*.

Das folgende Codebeispiel zeigt die Verwendungdelete-input.

AWS CLI

Um eine Eingabe zu löschen

Das folgende delete-input Beispiel löscht eine Eingabe.

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

Mit diesem Befehl wird keine Ausgabe zurückgegeben.

Weitere Informationen finden Sie DeleteInputim AWS IoT Events Developer Guide*.

  • APIEinzelheiten finden Sie DeleteInputin der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendungdescribe-detector-model.

AWS CLI

Um Informationen über ein Detektormodell zu erhalten

Das folgende describe-detector-model Beispiel beschreibt ein Detektormodell. Wenn der version Parameter nicht angegeben ist, gibt der Befehl Informationen über die neueste Version zurück.

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 DescribeDetectorModelim AWS IoT Events Developer Guide*.

Das folgende Codebeispiel zeigt die Verwendungdescribe-detector.

AWS CLI

Um Informationen über einen Detektor (Instanz) zu erhalten

Das folgende describe-detector Beispiel gibt Informationen über den angegebenen Detektor (Instanz) zurück.

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 DescribeDetectorim AWS IoT Events Developer Guide*.

Das folgende Codebeispiel zeigt die Verwendungdescribe-input.

AWS CLI

Um Informationen über eine Eingabe zu erhalten

Im folgenden describe-input Beispiel werden die Details einer Eingabe abgerufen.

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 DescribeInputim AWS IoT Events Developer Guide*.

  • APIEinzelheiten finden Sie DescribeInputin der 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 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 DescribeLoggingOptionsim AWS IoT Events Developer Guide*.

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 ListDetectorModelVersionsim AWS IoT Events Developer Guide*.

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 Meldermodelle auf, die Sie erstellt haben. 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 ListDetectorModelsim AWS IoT Events Developer Guide*.

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 Detektoren (die Instanzen eines Detektormodells) 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 ListDetectorsim AWS IoT Events Developer Guide*.

  • APIEinzelheiten finden Sie ListDetectorsin der 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 erstellt haben.

aws iotevents list-inputs

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 ListInputsim AWS IoT Events Developer Guide*.

  • APIEinzelheiten finden Sie ListInputsin der AWS CLI Befehlsreferenz.

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

AWS CLI

Um Tags aufzulisten, die einer Ressource zugewiesen sind

Im folgenden list-tags-for-resource Beispiel werden die Tags (Metadaten) aufgeführt, 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 ListTagsForResourceim AWS IoT Events Developer Guide*.

Das folgende Codebeispiel zeigt die Verwendungput-logging-options.

AWS CLI

Um Protokollierungsoptionen festzulegen

Im folgenden list-tags-for-resource Beispiel werden die Protokollierungsoptionen für AWS IoT Events festgelegt oder aktualisiert. Wenn Sie den Wert eines loggingOptions Felds aktualisieren, dauert es bis zu einer Minute, bis die Änderung wirksam wird. Wenn Sie außerdem die Richtlinie ändern, die der Rolle zugeordnet ist, die Sie im roleArn Feld angegeben haben (z. B. um eine ungültige Richtlinie zu korrigieren), dauert es bis zu fünf Minuten, 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 PutLoggingOptionsim AWS IoT Events Developer Guide*.

Das folgende Codebeispiel zeigt die Verwendungtag-resource.

AWS CLI

Um einer Ressource Tags hinzuzufügen

Im folgenden tag-resource Beispiel werden die Tags der angegebenen Ressource hinzugefügt oder geändert. Tags sind Metadaten, die zur Verwaltung einer Ressource verwendet werden können.

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 TagResourceim AWS IoT Events Developer Guide*.

  • APIEinzelheiten finden Sie TagResourcein der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendunguntag-resource.

AWS CLI

Um Tags aus einer Ressource zu entfernen

Im folgenden untag-resource Beispiel werden die angegebenen Tags aus der Ressource entfernt.

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

Inhalt von pressureInput.untag.json:

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

Mit diesem Befehl wird keine Ausgabe zurückgegeben.

Weitere Informationen finden Sie UntagResourceim AWS IoT Events Developer Guide*.

  • APIEinzelheiten finden Sie UntagResourcein der 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 ein 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 .update.json motorDetectorModel:

{ "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 UpdateDetectorModelim AWS IoT Events Developer Guide*.

Das folgende Codebeispiel zeigt die Verwendungupdate-input.

AWS CLI

Um eine Eingabe zu aktualisieren

Das folgende update-input Beispiel aktualisiert eine Eingabe.

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 UpdateInputim AWS IoT Events Developer Guide*.

  • APIEinzelheiten finden Sie UpdateInputin der AWS CLI Befehlsreferenz.