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-Data 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-Data.
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.
Temas
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-binary-format
raw-in-base64-out
\ --cli-input-jsonfile://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 la Guía para desarrolladores de AWS IoT Events (BatchPutMessageen inglés) *.
-
Para API obtener más información, consulte BatchPutMessage
la 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 la Guía para desarrolladores de AWS IoT Events (BatchUpdateDetectoren inglés) *.
-
Para API obtener más información, consulte BatchUpdateDetector
la 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.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 la Guía para desarrolladores de AWS IoT Events (CreateDetectorModelen inglés) *.
-
Para API obtener más información, consulte CreateDetectorModel
la 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 la Guía para desarrolladores de AWS IoT Events (CreateInputen inglés) *.
-
Para API obtener más información, consulte CreateInput
la 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
En el siguiente
delete-detector-model
ejemplo, se elimina un modelo de detector. 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 la Guía para desarrolladores de AWS IoT Events (DeleteDetectorModelen inglés) *.
-
Para API obtener más información, consulte DeleteDetectorModel
la 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 una entrada.aws iotevents delete-input \ --input-name
PressureInput
Este comando no genera ninguna salida.
Para obtener más información, consulte la Guía para desarrolladores de AWS IoT Events (DeleteInputen inglés) *.
-
Para API obtener más información, consulte DeleteInput
la 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 describe un modelo de detector. Si no se especifica elversion
parámetro, el comando devuelve información sobre la versión más reciente.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 la Guía para desarrolladores de AWS IoT Events (DescribeDetectorModelen inglés) *.
-
Para API obtener más información, consulte DescribeDetectorModel
la Referencia de AWS CLI comandos.
-
En el siguiente ejemplo de código se muestra cómo usar describe-detector
.
- AWS CLI
-
Para obtener información sobre un detector (instancia)
El siguiente
describe-detector
ejemplo devuelve información sobre el 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 la Guía para desarrolladores de AWS IoT Events (DescribeDetectoren inglés) *.
-
Para API obtener más información, consulte DescribeDetector
la 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 recuperan los detalles de una entrada.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 la Guía para desarrolladores de AWS IoT Events (DescribeInputen inglés) *.
-
Para API obtener más información, consulte DescribeInput
la 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 las opciones de registro actuales 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 la Guía para desarrolladores de AWS IoT Events (DescribeLoggingOptionsen inglés) *.
-
Para API obtener más información, consulte DescribeLoggingOptions
la Referencia de AWS CLI comandos.
-
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 la Guía para desarrolladores de AWS IoT Events (ListDetectorModelVersionsen inglés) *.
-
Para API obtener más información, consulte ListDetectorModelVersions
la Referencia de AWS CLI comandos.
-
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
En el siguiente
list-detector-models
ejemplo, se enumeran 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 la Guía para desarrolladores de AWS IoT Events (ListDetectorModelsen inglés) *.
-
Para API obtener más información, consulte ListDetectorModels
la 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).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 la Guía para desarrolladores de AWS IoT Events (ListDetectorsen inglés) *.
-
Para API obtener más información, consulte ListDetectors
la 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
En el siguiente
list-inputs
ejemplo, se enumeran las entradas que ha creado.aws iotevents list-inputs
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 la Guía para desarrolladores de AWS IoT Events (ListInputsen inglés) *.
-
Para API obtener más información, consulte ListInputs
la 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 las etiquetas (metadatos) 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 la Guía para desarrolladores de AWS IoT Events (ListTagsForResourceen inglés) *.
-
Para API obtener más información, consulte ListTagsForResource
la 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
list-tags-for-resource
ejemplo establece o actualiza las opciones de registro de AWS IoT Events. Si actualiza el valor de cualquier campologgingOptions
, los cambios tardarán hasta un minuto en surtir efecto. Además, si cambias la política asociada a la función que especificaste en elroleArn
campo (por ejemplo, para corregir una política no válida), el cambio 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 la Guía para desarrolladores de AWS IoT Events (PutLoggingOptionsen inglés) *.
-
Para API obtener más información, consulte PutLoggingOptions
la 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
El siguiente
tag-resource
ejemplo agrega o modifica las etiquetas del recurso dado. Las etiquetas son metadatos que se pueden usar para administrar un recurso.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 la Guía para desarrolladores de AWS IoT Events (TagResourceen inglés) *.
-
Para API obtener más información, consulte TagResource
la 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
El siguiente
untag-resource
ejemplo elimina las etiquetas especificadas del recurso.aws iotevents untag-resource \ --cli-input-json
file://pressureInput.untag.json
Contenidos de
pressureInput.untag.json
:{ "resourceArn": "arn:aws:iotevents:us-west-2:123456789012:input/PressureInput", "tagKeys": [ "deviceType" ] }
Este comando no genera ninguna salida.
Para obtener más información, consulte la Guía para desarrolladores de AWS IoT Events (UntagResourceen inglés) *.
-
Para API obtener más información, consulte UntagResource
la 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 un modelo de detector. 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
Contenido de .update.json motorDetectorModel:
{ "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 la Guía para desarrolladores de AWS IoT Events (UpdateDetectorModelen inglés) *.
-
Para API obtener más información, consulte UpdateDetectorModel
la 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
En el siguiente
update-input
ejemplo, se actualiza una entrada.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 la Guía para desarrolladores de AWS IoT Events (UpdateInputen inglés) *.
-
Para API obtener más información, consulte UpdateInput
la Referencia de AWS CLI comandos.
-