AWS IoT Events ejemplos que utilizan AWS CLI - AWS SDKEjemplos de código

Hay más AWS SDK ejemplos disponibles en el GitHub repositorio de AWS Doc SDK Examples.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

AWS IoT Events ejemplos que utilizan AWS CLI

Los siguientes ejemplos de código muestran cómo realizar acciones e implementar escenarios comunes mediante el uso del AWS Command Line Interface with AWS IoT Events.

Las acciones son extractos de código de programas más grandes y deben ejecutarse en contexto. Mientras las acciones muestran cómo llamar a las funciones de servicio individuales, es posible ver las acciones en contexto en los escenarios relacionados.

Cada ejemplo incluye un enlace al código fuente completo, donde puede encontrar instrucciones sobre cómo configurar y ejecutar el código en su contexto.

Acciones

En el siguiente ejemplo de código se muestra cómo usar batch-put-message.

AWS CLI

Para enviar mensajes (entradas) a AWS IoT Events

El siguiente batch-put-message ejemplo envía un conjunto de mensajes al sistema AWS IoT Events. La carga útil de cada mensaje se transforma en la entrada que especifique (inputName) y se ingiere en cualquier detector que supervise esa entrada. Si se envían varios mensajes, no se garantiza el orden en que se procesan los mensajes. Para garantizar el pedido, debes enviar los mensajes de uno en uno y esperar a que te respondan correctamente.

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

Contenidos de highPressureMessage.json:

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

Salida:

{ "BatchPutMessageErrorEntries": [] }

Para obtener más información, consulte BatchPutMessagela APIReferencia de eventos de AWS IoT.

  • Para API obtener más información, consulte BatchPutMessagela Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar batch-update-detector.

AWS CLI

Para actualizar un detector (instancia)

El siguiente batch-update-detector ejemplo actualiza el estado, los valores de las variables y la configuración del temporizador de uno o más detectores (instancias) de un modelo de detector específico.

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

Contenidos de budFulton-A32.json:

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

Salida:

{ "batchUpdateDetectorErrorEntries": [] }

Para obtener más información, consulte BatchUpdateDetectorla APIReferencia de eventos de AWS IoT.

  • Para API obtener más información, consulte BatchUpdateDetectorla Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar create-detector-model.

AWS CLI

Para crear un modelo de detector

El siguiente create-detector-model ejemplo crea un modelo de detector con su configuración especificada en un archivo de parámetros.

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

Contenidos de 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" }

Salida:

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

Para obtener más información, consulte CreateDetectorModella APIReferencia de eventos de AWS IoT.

  • Para API obtener más información, consulte CreateDetectorModella Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar create-input.

AWS CLI

Para crear una entrada

En el siguiente create-input ejemplo se crea una entrada.

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

Contenidos de pressureInput.json:

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

Salida:

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

Para obtener más información, consulte CreateInputla APIReferencia de eventos de AWS IoT.

  • Para API obtener más información, consulte CreateInputla Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar delete-detector-model.

AWS CLI

Para eliminar un modelo de detector

El siguiente delete-detector-model ejemplo elimina el modelo de detector especificado. También se eliminan todas las instancias activas del modelo de detector.

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

Este comando no genera ninguna salida.

Para obtener más información, consulte DeleteDetectorModella APIReferencia de eventos de AWS IoT.

  • Para API obtener más información, consulte DeleteDetectorModella Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar delete-input.

AWS CLI

Para eliminar una entrada

En el siguiente delete-input ejemplo, se elimina la entrada especificada.

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

Este comando no genera ninguna salida.

Para obtener más información, consulte DeleteInputla APIReferencia de eventos de AWS IoT.

  • Para API obtener más información, consulte DeleteInputla Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar describe-detector-model.

AWS CLI

Para obtener información sobre un modelo de detector

El siguiente describe-detector-model ejemplo muestra los detalles del modelo de detector especificado. Como el version parámetro no está especificado, se devuelve información sobre la última versión.

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

Salida:

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

Para obtener más información, consulte DescribeDetectorModella APIReferencia de eventos de AWS IoT.

En el siguiente ejemplo de código se muestra cómo usar describe-detector.

AWS CLI

Para obtener información sobre un detector (instancia).

En el siguiente describe-detector ejemplo, se muestran los detalles del detector (instancia) especificado.

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

Salida:

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

Para obtener más información, consulte DescribeDetectorla APIReferencia de eventos de AWS IoT.

  • Para API obtener más información, consulte DescribeDetectorla Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar describe-input.

AWS CLI

Para obtener información sobre una entrada

En el siguiente describe-input ejemplo, se muestran los detalles de la entrada especificada.

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

Salida:

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

Para obtener más información, consulte DescribeInputla APIReferencia de eventos de AWS IoT.

  • Para API obtener más información, consulte DescribeInputla Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar describe-logging-options.

AWS CLI

Para obtener información sobre la configuración de registro

El siguiente describe-logging-options ejemplo recupera la configuración actual de las opciones de registro de AWS IoT Events.

aws iotevents describe-logging-options

Salida:

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

Para obtener más información, consulte DescribeLoggingOptionsla APIReferencia de eventos de AWS IoT.

En el siguiente ejemplo de código se muestra cómo usar list-detector-model-versions.

AWS CLI

Para obtener información sobre las versiones de un modelo de detector

En el siguiente list-detector-model-versions ejemplo se enumeran todas las versiones de un modelo de detector. Solo se devuelven los metadatos asociados a cada versión de modelo de detector.

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

Salida:

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

Para obtener más información, consulte ListDetectorModelVersionsla APIReferencia de eventos de AWS IoT.

En el siguiente ejemplo de código se muestra cómo usar list-detector-models.

AWS CLI

Para obtener una lista de sus modelos de detectores

El siguiente list-detector-models ejemplo muestra una lista de los modelos de detectores que ha creado. Solo se devuelven los metadatos asociados a cada modelo de detector.

aws iotevents list-detector-models

Salida:

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

Para obtener más información, consulte ListDetectorModelsla APIReferencia de eventos de AWS IoT.

  • Para API obtener más información, consulte ListDetectorModelsla Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar list-detectors.

AWS CLI

Para obtener una lista de detectores para un modelo de detector

En el siguiente list-detectors ejemplo, se enumeran los detectores (las instancias de un modelo de detector) de su cuenta.

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

Salida:

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

Para obtener más información, consulte ListDetectorsla APIReferencia de eventos de AWS IoT.

  • Para API obtener más información, consulte ListDetectorsla Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar list-inputs.

AWS CLI

Para enumerar las entradas

El siguiente list-inputs ejemplo muestra las entradas que ha creado en su cuenta.

aws iotevents list-inputs

Este comando no genera ninguna salida. Salida:

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

Para obtener más información, consulte ListInputsla APIReferencia de eventos de AWS IoT.

  • Para API obtener más información, consulte ListInputsla Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar list-tags-for-resource.

AWS CLI

Para enumerar las etiquetas asignadas a un recurso.

En el siguiente list-tags-for-resource ejemplo, se enumeran los nombres y valores de las claves de etiquetas que ha asignado al recurso.

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

Salida:

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

Para obtener más información, consulte ListTagsForResourcela APIReferencia de eventos de AWS IoT.

  • Para API obtener más información, consulte ListTagsForResourcela Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar put-logging-options.

AWS CLI

Para configurar las opciones de registro

El siguiente put-logging-options ejemplo establece o actualiza las opciones de registro de AWS IoT Events. Si actualizas el valor de cualquier 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 campo (por ejemplo, para corregir una política no válida), el cambio puede tardar hasta cinco minutos en surtir efecto.

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

Contenidos de logging-options.json:

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

Este comando no genera ninguna salida.

Para obtener más información, consulte PutLoggingOptionsla APIReferencia de eventos de AWS IoT.

  • Para API obtener más información, consulte PutLoggingOptionsla Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar tag-resource.

AWS CLI

Para añadir etiquetas a un recurso

En el siguiente tag-resource ejemplo, se agrega o modifica (si la clave deviceType ya existe) la etiqueta adjunta al recurso especificado.

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

Contenidos de pressureInput.tag.json:

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

Este comando no genera ninguna salida.

Para obtener más información, consulte TagResourcela APIReferencia de eventos de AWS IoT.

  • Para API obtener más información, consulte TagResourcela Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar untag-resource.

AWS CLI

Cómo eliminar etiquetas de un recurso

En el siguiente untag-resource ejemplo, se elimina la etiqueta con el nombre de clave especificado del recurso especificado.

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

Este comando no genera ninguna salida.

Para obtener más información, consulte UntagResourcela APIReferencia de eventos de AWS IoT.

  • Para API obtener más información, consulte UntagResourcela Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar update-detector-model.

AWS CLI

Para actualizar un modelo de detector

El siguiente update-detector-model ejemplo actualiza el modelo de detector especificado. Los detectores (instancias) generados por la versión anterior se eliminan y, a continuación, se vuelven a crear a medida que llegan nuevas entradas.

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

Contenidos de 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" }

Salida:

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

Para obtener más información, consulte UpdateDetectorModella APIReferencia de eventos de AWS IoT.

  • Para API obtener más información, consulte UpdateDetectorModella Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar update-input.

AWS CLI

Para actualizar una entrada

El siguiente update-input ejemplo actualiza la entrada especificada con una nueva descripción y definición.

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

Contenidos de pressureInput.json:

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

Salida:

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

Para obtener más información, consulte UpdateInputla APIReferencia de eventos de AWS IoT.

  • Para API obtener más información, consulte UpdateInputla Referencia de AWS CLI comandos.