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

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. 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-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 Referenz zur AWS IoT Events API.

  • Einzelheiten zur API finden Sie BatchPutMessageunter 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 BatchUpdateDetectorin der Referenz zur AWS IoT Events API.

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, 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 Referenz zur AWS IoT Events API.

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 CreateInputin der Referenz zur AWS IoT Events API.

  • Einzelheiten zur API finden Sie CreateInputunter 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 das angegebene 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 DeleteDetectorModelin der Referenz zur AWS IoT Events API.

Das folgende Codebeispiel zeigt die Verwendungdelete-input.

AWS CLI

Um eine Eingabe zu löschen

Im folgenden Beispiel für delete-input 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 Referenz zur AWS IoT Events API.

  • Einzelheiten zur API finden Sie DeleteInputunter 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 werden die Details zum angegebenen Detektormodell angezeigt. Da der Parameter version nicht festgelegt 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 Referenz zur AWS IoT Events API.

Das folgende Codebeispiel zeigt die Verwendungdescribe-detector.

AWS CLI

So rufen Sie Informationen zu einem Detektor (Instance) ab

Im folgenden Beispiel für describe-detector werden Details zum angegebenen Detektor (Instance) 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 Referenz zur AWS IoT Events API.

  • Einzelheiten zur API finden Sie DescribeDetectorunter 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 Details für die festgelegte 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 Referenz zur AWS IoT Events API.

  • Einzelheiten zur API finden Sie DescribeInputunter 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 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 Referenz zur AWS IoT Events API.

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 ListDetectorModelVersionsin der Referenz zur AWS IoT Events API.

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 ListDetectorModelsin der Referenz zur AWS IoT Events API.

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 die Detektoren (die Instances eines Detektormodells) in Ihrem Konto 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 ListDetectorsin der Referenz zur AWS IoT Events API.

  • Einzelheiten zur API finden Sie ListDetectorsunter 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 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 Referenz zur AWS IoT Events API.

  • Einzelheiten zur API finden Sie ListInputsunter 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 Tag-Schlüsselnamen und -Werte 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 ListTagsForResourcein der Referenz zur AWS IoT Events API.

Das folgende Codebeispiel zeigt die Verwendungput-logging-options.

AWS CLI

So legen Sie Protokollierungsoptionen fest

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 Referenz zur AWS IoT Events API.

Das folgende Codebeispiel zeigt die Verwendungtag-resource.

AWS CLI

So fügen Sie einer Ressource Tags hinzu

Im folgenden Beispiel für tag-resource wird das Tag, das an die angegebene Ressource angehängt ist, 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 Referenz zur AWS IoT Events API.

  • Einzelheiten zur API finden Sie TagResourceunter 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 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 Referenz zur AWS IoT Events API.

  • Einzelheiten zur API finden Sie UntagResourceunter 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 das angegebene 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 UpdateDetectorModelin der Referenz zur AWS IoT Events API.

Das folgende Codebeispiel zeigt die Verwendungupdate-input.

AWS CLI

So aktualisieren Sie eine Eingabe

Im folgenden Beispiel für update-input 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 Referenz zur AWS IoT Events API.

  • Einzelheiten zur API finden Sie UpdateInputunter AWS CLI Befehlsreferenz.