AWS IoT Events-Data Beispiele mit AWS CLI - AWS Command Line Interface

Diese Dokumentation bezieht sich AWS CLI nur auf Version 1 von. Dokumentation zu Version 2 von finden Sie im Benutzerhandbuch für Version 2. AWS CLI

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. Während Aktionen Ihnen zeigen, wie Sie einzelne Service-Funktionen aufrufen, können Sie Aktionen im Kontext der zugehörigen Szenarien anzeigen.

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

Themen

Aktionen

Das folgende Codebeispiel zeigt, wie Siebatch-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. Die Nutzdaten jeder Nachricht werden in die von Ihnen festgelegte Eingabe (inputName) transformiert und in allen Detektoren erfasst, die diese Eingabe überwachen. Wenn mehrere Nachrichten gesendet werden, kann die Reihenfolge, in der die Nachrichten verarbeitet werden, nicht garantiert werden. Um die Reihenfolge 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*.

  • Einzelheiten zur API finden Sie BatchPutMessagein der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendungbatch-update-detector.

AWS CLI

So aktualisieren Sie einen Detektor (Instance)

Im folgenden Beispiel für batch-update-detector werden der Zustand, die Variablenwerte und die Timer-Einstellungen eines oder mehrerer Detektoren (Instances) eines bestimmten Detektormodells aktualisiert.

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

So erstellen Sie ein Detektormodell

Im folgenden Beispiel für create-detector-model 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

So erstellen Sie eine Eingabe

Im folgenden Beispiel für create-input wird eine Eingabe erstellt.

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*.

  • Einzelheiten zur API finden Sie CreateInputin der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendungdelete-detector-model.

AWS CLI

So löschen Sie ein Detektormodell

Im folgenden Beispiel für delete-detector-model wird ein Detektormodell gelöscht. Alle aktiven Instances 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

Im folgenden Beispiel für delete-input wird eine Eingabe gelöscht.

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*.

  • Einzelheiten zur API finden Sie DeleteInputin der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendungdescribe-detector-model.

AWS CLI

So rufen Sie Informationen zu einem Detektormodell ab

Im folgenden Beispiel für describe-detector-model wird ein Detektormodell beschrieben. Wenn der Parameter version nicht festgelegt 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

So rufen Sie Informationen zu einem Detektor (Instance) ab

Das folgende Beispiel für describe-detector gibt Informationen zum angegebenen Detektor (Instance) 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*.

  • Einzelheiten zur API finden Sie DescribeDetectorin der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendungdescribe-input.

AWS CLI

So rufen Sie Informationen zu einer Eingabe ab

Im folgenden Beispiel für describe-input 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*.

  • Einzelheiten zur API finden Sie DescribeInputin der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendungdescribe-logging-options.

AWS CLI

So rufen Sie Informationen zu den Protokollierungseinstellungen ab

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

So rufen Sie Informationen zu den Versionen eines Detektormodells ab

Im folgenden Beispiel für list-detector-model-versions werden alle Versionen eines Detektormodells aufgelistet. 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

So rufen Sie eine Liste Ihrer Detektormodelle ab

Im folgenden Beispiel für list-detector-models werden die Detektormodelle aufgelistet, 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

So rufen Sie eine Liste mit Detektoren für ein Detektormodell ab

Im folgenden Beispiel für list-detectors werden Detektoren (die Instances eines Detektormodells) aufgelistet.

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*.

  • Einzelheiten zur API finden Sie ListDetectorsin der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendunglist-inputs.

AWS CLI

So listen Sie Eingaben auf

Im folgenden Beispiel für list-inputs werden die Eingaben aufgelistet, 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*.

  • Einzelheiten zur API finden Sie ListInputsin der AWS CLI Befehlsreferenz.

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

AWS CLI

So listen Sie Tags auf, die einer Ressource zugeordnet sind

Im folgenden Beispiel für list-tags-for-resource werden die Tags (Metadaten) aufgelistet, 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

So legen Sie Protokollierungsoptionen fest

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. Außerdem gilt: Wenn Sie die an die Rolle angefügte Richtlinie ändern, die Sie im roleArn-Feld angegeben haben (z. B. zur Korrektur einer ungültigen Richtlinie), dauert es bis zu fünf Minuten, bis die Ä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

So fügen Sie einer Ressource Tags hinzu

Im folgenden Beispiel für tag-resource werden die Tags zur angegebenen Ressource hinzugefügt oder geändert. Tags sind Metadaten, die Sie zum Verwalten einer Ressource verwenden 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*.

  • Einzelheiten zur API finden Sie TagResourcein der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendunguntag-resource.

AWS CLI

So entfernen Sie Tags aus einer Ressource

Im folgenden Beispiel für untag-resource 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*.

  • Einzelheiten zur API finden Sie UntagResourcein der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendungupdate-detector-model.

AWS CLI

So aktualisieren Sie ein Detektormodell

Im folgenden Beispiel für update-detector-model wird ein Detektormodell aktualisiert. Von der vorherigen Version erzeugte Detektoren (Instances) 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 UpdateDetectorModelim AWS IoT Events Developer Guide*.

Das folgende Codebeispiel zeigt die Verwendungupdate-input.

AWS CLI

So aktualisieren Sie eine Eingabe

Im folgenden Beispiel für update-input wird eine Eingabe 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 UpdateInputim AWS IoT Events Developer Guide*.

  • Einzelheiten zur API finden Sie UpdateInputin der AWS CLI Befehlsreferenz.