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-jsonfile://highPressureMessage.jsonContenuto 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.
-
Per i dettagli sull'API, consulta BatchPutMessage AWS CLI
Command Reference.
-
Il seguente esempio di codice mostra come utilizzarebatch-update-detector.
- AWS CLI
-
Come aggiornare un rilevatore (istanza)
L’esempio
batch-update-detectorseguente 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-jsonfile://budFulton-A32.jsonContenuto 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.
-
Per i dettagli sull'API, consulta BatchUpdateDetector AWS CLI
Command Reference.
-
Il seguente esempio di codice mostra come utilizzarecreate-detector-model.
- AWS CLI
-
Come creare un modello di rivelatore
L’esempio
create-detector-modelseguente crea un modello di rilevatore con la sua configurazione specificata da un file di parametri.aws iotevents create-detector-model \ --cli-input-jsonfile://motorDetectorModel.jsonContenuto 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.
-
Per i dettagli sull'API, consulta CreateDetectorModel AWS CLI
Command Reference.
-
Il seguente esempio di codice mostra come utilizzarecreate-input.
- AWS CLI
-
Come creare un input
L’esempio
create-inputseguente crea un input.aws iotevents create-input \ --cli-input-jsonfile://pressureInput.jsonContenuto 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.
-
Per i dettagli sull'API, consulta CreateInput AWS CLI
Command Reference.
-
Il seguente esempio di codice mostra come utilizzaredelete-detector-model.
- AWS CLI
-
Come eliminare un modello di rilevatore
L’esempio
delete-detector-modelseguente elimina un modello di rilevatore specificato. Vengono eliminate anche tutte le istanze attive del modello di rilevatore.aws iotevents delete-detector-model \ --detector-model-namemotorDetectorModelQuesto comando non produce alcun output.
Per ulteriori informazioni, consulta DeleteDetectorModella sezione AWS IoT Events API Reference.
-
Per i dettagli sull'API, consulta DeleteDetectorModel AWS CLI
Command Reference.
-
Il seguente esempio di codice mostra come utilizzaredelete-input.
- AWS CLI
-
Come eliminare un input
L’esempio
delete-inputseguente elimina l’input specificato.aws iotevents delete-input \ --input-namePressureInputQuesto comando non produce alcun output.
Per ulteriori informazioni, consulta DeleteInputla sezione AWS IoT Events API Reference.
-
Per i dettagli sull'API, consulta DeleteInput AWS CLI
Command 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-modelseguente visualizza i dettagli di un modello di rilevatore specificato. Poiché il parametroversionnon è specificato, vengono restituite informazioni sulla versione più recente.aws iotevents describe-detector-model \ --detector-model-namemotorDetectorModelOutput:
{ "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.
-
Per i dettagli sull'API, consulta DescribeDetectorModel AWS CLI
Command Reference.
-
Il seguente esempio di codice mostra come utilizzaredescribe-detector.
- AWS CLI
-
Come ottenere informazioni su un rilevatore (istanza).
L’esempio
describe-detectorseguente visualizza i dettagli del tipo di rilevatore (istanza) specificato.aws iotevents-data describe-detector \ --detector-model-namemotorDetectorModel\ --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.
-
Per i dettagli sull'API, consulta DescribeDetector AWS CLI
Command Reference.
-
Il seguente esempio di codice mostra come utilizzaredescribe-input.
- AWS CLI
-
Come ottenere informazioni su un input
L’esempio
describe-inputseguente visualizza i dettagli dell’input specificato.aws iotevents describe-input \ --input-namePressureInputOutput:
{ "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.
-
Per i dettagli sull'API, consulta DescribeInput AWS CLI
Command 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-optionsOutput:
{ "loggingOptions": { "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole", "enabled": false, "level": "ERROR" } }Per ulteriori informazioni, consulta DescribeLoggingOptionsla sezione AWS IoT Events API Reference.
-
Per i dettagli sull'API, consulta DescribeLoggingOptions AWS CLI
Command 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-versionsseguente 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-namemotorDetectorModelOutput:
{ "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.
-
Per i dettagli sull'API, consulta ListDetectorModelVersions AWS CLI
Command 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-modelsseguente elenca i modelli di rilevatore creati. Vengono restituiti solo i metadati associati a ciascun modello di rivelatore.aws iotevents list-detector-modelsOutput:
{ "detectorModelSummaries": [ { "detectorModelName": "motorDetectorModel", "creationTime": 1552072424.212 "detectorModelDescription": "Detect overpressure in a motor." } ] }Per ulteriori informazioni, consulta ListDetectorModelsla sezione AWS IoT Events API Reference.
-
Per i dettagli sull'API, consulta ListDetectorModels AWS CLI
Command 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-detectorsseguente elenca i rilevatori (le istanze di un modello di rilevatore) presenti nel tuo account.aws iotevents-data list-detectors \ --detector-model-namemotorDetectorModelOutput:
{ "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.
-
Per i dettagli sull'API, consulta ListDetectors AWS CLI
Command Reference.
-
Il seguente esempio di codice mostra come utilizzarelist-inputs.
- AWS CLI
-
Come elencare gli input
L’esempio
list-inputsseguente elenca gli input creati nel tuo account.aws iotevents list-inputsQuesto 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.
-
Per i dettagli sull'API, consulta ListInputs AWS CLI
Command 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-resourceseguente 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.
-
Per i dettagli sull'API, consulta ListTagsForResource AWS CLI
Command 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 campologgingOptions` 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-jsonfile://logging-options.jsonContenuto 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.
-
Per i dettagli sull'API, consulta PutLoggingOptions AWS CLI
Command Reference.
-
Il seguente esempio di codice mostra come utilizzaretag-resource.
- AWS CLI
-
Come aggiungere tag a una risorsa
L’esempio
tag-resourceseguente aggiunge o modifica (se la chiavedeviceTypeesiste già) il tag associato alla risorsa specificata.aws iotevents tag-resource \ --cli-input-jsonfile://pressureInput.tag.jsonContenuto 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.
-
Per i dettagli sull'API, consulta TagResource AWS CLI
Command Reference.
-
Il seguente esempio di codice mostra come utilizzareuntag-resource.
- AWS CLI
-
Come rimuovere tag da una risorsa
L’esempio
untag-resourceseguente rimuove il tag con il nome di chiave specificato dalla risorsa specificata.aws iotevents untag-resource \ --resource-arnarn:aws:iotevents:us-west-2:123456789012:input/PressureInput\ --tagkeysdeviceTypeQuesto comando non produce alcun output.
Per ulteriori informazioni, consulta UntagResourcela sezione AWS IoT Events API Reference.
-
Per i dettagli sull'API, consulta UntagResource AWS CLI
Command Reference.
-
Il seguente esempio di codice mostra come utilizzareupdate-detector-model.
- AWS CLI
-
Come aggiornare un modello di rivelatore
L’esempio
update-detector-modelseguente 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-jsonfile://motorDetectorModel.update.jsonContenuto 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.
-
Per i dettagli sull'API, consulta UpdateDetectorModel AWS CLI
Command Reference.
-
Il seguente esempio di codice mostra come utilizzareupdate-input.
- AWS CLI
-
Come aggiornare un input
L’esempio
update-inputseguente aggiorna l’input specificato con una nuova descrizione e definizione.aws iotevents update-input \ --cli-input-jsonfile://pressureInput.jsonContenuto 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.
-
Per i dettagli sull'API, consulta UpdateInput AWS CLI
Command Reference.
-