AWS IoT Events esempi utilizzando AWS CLI - AWS Command Line Interface

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

AWS IoT Events esempi utilizzando AWS CLI

I seguenti esempi di codice mostrano come eseguire azioni e implementare scenari comuni utilizzando AWS Command Line Interface with AWS IoT Events.

Le azioni sono estratti di codice da programmi più grandi e devono essere eseguite nel contesto. Sebbene le azioni mostrino come richiamare le singole funzioni del servizio, è possibile visualizzarle contestualizzate negli scenari correlati.

Ogni esempio include un link al codice sorgente completo, in cui vengono fornite le istruzioni su come configurare ed eseguire il codice nel contesto.

Argomenti

Azioni

Il seguente esempio di codice mostra come utilizzarebatch-put-message.

AWS CLI

Per inviare messaggi (input) a AWS IoT Events

L'batch-put-messageesempio seguente invia una serie di messaggi al sistema AWS IoT Events. Ogni payload del messaggio viene trasformato nell’input specificato (inputName) e inserito in tutti i rilevatori che monitorano tale input. Se vengono inviati più messaggi, l’ordine in cui i messaggi vengono elaborati non è garantito. Per garantire l’ordine, è necessario inviare i messaggi uno alla volta e attendere una risposta corretta.

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

Contenuto di highPressureMessage.json:

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

Output:

{ "BatchPutMessageErrorEntries": [] }

Per ulteriori informazioni, consulta BatchPutMessagela sezione AWS IoT Events API Reference.

Il seguente esempio di codice mostra come utilizzarebatch-update-detector.

AWS CLI

Come aggiornare un rilevatore (istanza)

L’esempio batch-update-detector seguente aggiorna lo stato, i valori delle variabili e le impostazioni del timer di uno o più rilevatori (istanze) di un modello di rilevatore specificato.

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

Contenuto di budFulton-A32.json:

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

Output:

{ "batchUpdateDetectorErrorEntries": [] }

Per ulteriori informazioni, consulta BatchUpdateDetectorla sezione AWS IoT Events API Reference.

Il seguente esempio di codice mostra come utilizzarecreate-detector-model.

AWS CLI

Come creare un modello di rivelatore

L’esempio create-detector-model seguente crea un modello di rilevatore con la sua configurazione specificata da un file di parametri.

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

Contenuto di 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" }

Output:

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

Per ulteriori informazioni, consulta CreateDetectorModella sezione AWS IoT Events API Reference.

Il seguente esempio di codice mostra come utilizzarecreate-input.

AWS CLI

Come creare un input

L’esempio create-input seguente crea un input.

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

Contenuto di pressureInput.json:

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

Output:

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

Per ulteriori informazioni, consulta CreateInputla sezione AWS IoT Events API Reference.

Il seguente esempio di codice mostra come utilizzaredelete-detector-model.

AWS CLI

Come eliminare un modello di rilevatore

L’esempio delete-detector-model seguente elimina un modello di rilevatore specificato. Vengono eliminate anche tutte le istanze attive del modello di rilevatore.

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

Questo comando non produce alcun output.

Per ulteriori informazioni, consulta DeleteDetectorModella sezione AWS IoT Events API Reference.

Il seguente esempio di codice mostra come utilizzaredelete-input.

AWS CLI

Come eliminare un input

L’esempio delete-input seguente elimina l’input specificato.

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

Questo comando non produce alcun output.

Per ulteriori informazioni, consulta DeleteInputla sezione AWS IoT Events API Reference.

Il seguente esempio di codice mostra come utilizzaredescribe-detector-model.

AWS CLI

Come ottenere informazioni su un modello di rilevatore

L’esempio describe-detector-model seguente visualizza i dettagli di un modello di rilevatore specificato. Poiché il parametro version non è specificato, vengono restituite informazioni sulla versione più recente.

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

Output:

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

Per ulteriori informazioni, consulta DescribeDetectorModella sezione AWS IoT Events API Reference.

Il seguente esempio di codice mostra come utilizzaredescribe-detector.

AWS CLI

Come ottenere informazioni su un rilevatore (istanza).

L’esempio describe-detector seguente visualizza i dettagli del tipo di rilevatore (istanza) specificato.

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

Output:

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

Per ulteriori informazioni, consulta DescribeDetectorla sezione AWS IoT Events API Reference.

Il seguente esempio di codice mostra come utilizzaredescribe-input.

AWS CLI

Come ottenere informazioni su un input

L’esempio describe-input seguente visualizza i dettagli dell’input specificato.

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

Output:

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

Per ulteriori informazioni, consulta DescribeInputla sezione AWS IoT Events API Reference.

Il seguente esempio di codice mostra come utilizzaredescribe-logging-options.

AWS CLI

Come ottenere informazioni sulle impostazioni della registrazione di log

L'describe-logging-optionsesempio seguente recupera le impostazioni correnti delle opzioni di registrazione degli eventi AWS IoT.

aws iotevents describe-logging-options

Output:

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

Per ulteriori informazioni, consulta DescribeLoggingOptionsla sezione AWS IoT Events API Reference.

Il seguente esempio di codice mostra come utilizzarelist-detector-model-versions.

AWS CLI

Come ottenere informazioni sulle versioni di un modello di rilevatore

L’esempio list-detector-model-versions seguente elenca tutte le versioni di un modello di rilevatore. Vengono restituiti solo i metadati associati a ciascuna versione del modello di rivelatore.

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

Output:

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

Per ulteriori informazioni, consulta ListDetectorModelVersionsla sezione AWS IoT Events API Reference.

Il seguente esempio di codice mostra come utilizzarelist-detector-models.

AWS CLI

Come ottenere un elenco dei modelli di rilevatori

L’esempio list-detector-models seguente elenca i modelli di rilevatore creati. Vengono restituiti solo i metadati associati a ciascun modello di rivelatore.

aws iotevents list-detector-models

Output:

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

Per ulteriori informazioni, consulta ListDetectorModelsla sezione AWS IoT Events API Reference.

Il seguente esempio di codice mostra come utilizzarelist-detectors.

AWS CLI

Come ottenere un elenco di rilevatori per un modello di rilevatore

L’esempio list-detectors seguente elenca i rilevatori (le istanze di un modello di rilevatore) presenti nel tuo account.

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

Output:

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

Per ulteriori informazioni, consulta ListDetectorsla sezione AWS IoT Events API Reference.

Il seguente esempio di codice mostra come utilizzarelist-inputs.

AWS CLI

Come elencare gli input

L’esempio list-inputs seguente elenca gli input creati nel tuo account.

aws iotevents list-inputs

Questo comando non produce alcun output. Output:

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

Per ulteriori informazioni, consulta ListInputsla sezione AWS IoT Events API Reference.

Il seguente esempio di codice mostra come utilizzarelist-tags-for-resource.

AWS CLI

Come elencare i tag assegnati a una risorsa.

L’esempio list-tags-for-resource seguente elenca i nomi e i valori delle chiavi dei tag assegnati alla risorsa.

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

Output:

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

Per ulteriori informazioni, consulta ListTagsForResourcela sezione AWS IoT Events API Reference.

Il seguente esempio di codice mostra come utilizzareput-logging-options.

AWS CLI

Come impostare le opzioni di registrazione di log

L'put-logging-optionsesempio seguente imposta o aggiorna le opzioni di registrazione degli eventi AWS IoT. Se aggiorni il valore di un campo 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 (ad esempio per correggere un criterio non valido) possono essere necessari fino a cinque minuti per rendere effettiva la modifica.

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

Contenuto di logging-options.json:

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

Questo comando non produce alcun output.

Per ulteriori informazioni, consulta PutLoggingOptionsla sezione AWS IoT Events API Reference.

Il seguente esempio di codice mostra come utilizzaretag-resource.

AWS CLI

Come aggiungere tag a una risorsa

L’esempio tag-resource seguente aggiunge o modifica (se la chiave deviceType esiste già) il tag associato alla risorsa specificata.

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

Contenuto di pressureInput.tag.json:

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

Questo comando non produce alcun output.

Per ulteriori informazioni, consulta TagResourcela sezione AWS IoT Events API Reference.

Il seguente esempio di codice mostra come utilizzareuntag-resource.

AWS CLI

Come rimuovere tag da una risorsa

L’esempio untag-resource seguente rimuove il tag con il nome di chiave specificato dalla risorsa specificata.

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

Questo comando non produce alcun output.

Per ulteriori informazioni, consulta UntagResourcela sezione AWS IoT Events API Reference.

Il seguente esempio di codice mostra come utilizzareupdate-detector-model.

AWS CLI

Come aggiornare un modello di rivelatore

L’esempio update-detector-model seguente aggiorna il modello di rilevatore specificato. I rilevatori (istanze) generati dalla versione precedente vengono eliminati e quindi ricreati all’arrivo di nuovi input.

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

Contenuto di 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" }

Output:

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

Per ulteriori informazioni, consulta UpdateDetectorModella sezione AWS IoT Events API Reference.

Il seguente esempio di codice mostra come utilizzareupdate-input.

AWS CLI

Come aggiornare un input

L’esempio update-input seguente aggiorna l’input specificato con una nuova descrizione e definizione.

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

Contenuto di pressureInput.json:

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

Output:

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

Per ulteriori informazioni, consulta UpdateInputla sezione AWS IoT Events API Reference.