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 Core
Puede recopilar datos de dispositivos de IoT mediante AWS IoT Core y enrutar los datos a Amazon Timestream mediante acciones de reglas de IoT Core. AWS Las acciones de las reglas de IoT especifican qué hacer cuando se activa una regla. Puede definir acciones para enviar datos a una tabla de Amazon Timestream o a una base de datos de Amazon DynamoDB e invocar una función Lambda. AWS
La acción Timestream de las reglas de IoT se utiliza para insertar datos de los mensajes entrantes directamente en Timestream. La acción analiza los resultados de la SQL declaración IoT Core y almacena los datos en Timestream. Los nombres de los campos del conjunto de SQL resultados devuelto se utilizan como la medida: :nombre y el valor del campo es la medida: :valor.
Por ejemplo, considere la SQL declaración y la carga útil del mensaje de ejemplo:
SELECT temperature, humidity from 'iot/topic'
{ "dataFormat": 5, "rssi": -88, "temperature": 24.04, "humidity": 43.605, "pressure": 101082, "accelerationX": 40, "accelerationY": -20, "accelerationZ": 1016, "battery": 3007, "txPower": 4, "movementCounter": 219, "device_id": 46216, "device_firmware_sku": 46216 }
Si se crea una acción de regla básica de IoT para Timestream con la SQL declaración anterior, se agregarán dos registros a Timestream con nombres de medida de temperatura y humedad y valores de medición de 24,04 y 43,605, respectivamente.
Puede modificar el nombre de la medida de un registro que se va a añadir a Timestream utilizando el operador AS de la sentencia. SELECT La siguiente SQL declaración creará un registro con el nombre del mensaje temp en lugar de temperature.
El tipo de datos de la medida se deduce del tipo de datos del valor de la carga útil del mensaje. JSONlos tipos de datos, como entero, doble, booleano y cadena, se asignan a los tipos de datos Timestream de,, y, respectivamente. BIGINT DOUBLE BOOLEAN VARCHAR También se pueden forzar los datos a tipos de datos específicos mediante la función cast (). Puede especificar la marca de tiempo de la medida. Si la marca de tiempo se deja en blanco, se utiliza la hora a la que se procesó la entrada.
Para obtener más información, consulte la documentación sobre las reglas y acciones de Timestream
Para crear una acción de regla de IoT Core para almacenar datos en Timestream, siga los pasos que se indican a continuación:
Requisitos previos
-
Cree una base de datos en Amazon Timestream siguiendo las instrucciones que se describen en. Creación de una base de datos de
-
Cree una tabla en Amazon Timestream siguiendo las instrucciones que se describen en. Creación de una tabla
Uso de la consola
-
Use la consola AWS de administración de AWS IoT Core para crear una regla. Para ello, haga clic en Administrar > Enrutamiento de mensajes > Reglas y, a continuación, en Crear regla.
-
Defina el nombre de la regla con el nombre de su elección y SQL con el texto que se muestra a continuación
SELECT temperature as temp, humidity from 'iot/topic'
-
Selecciona Timestream en la lista de acciones
-
Especifique los nombres de la base de datos, las tablas y las dimensiones de Timestream junto con la función para escribir los datos en Timestream. Si el rol no existe, puede crear uno haciendo clic en Crear roles
-
Para probar la regla, siga las instrucciones que se muestran aquí.
Usando el CLI
Si no ha instalado la interfaz de línea de AWS comandos (AWS CLI), hágalo desde aquí
-
Guarda la siguiente carga útil de reglas en un JSON archivo llamado timestream_rule.json. Reemplazar
arn:aws:iam::123456789012:role/TimestreamRole
con tu rol arn, que otorga acceso a AWS IoT para almacenar datos en Amazon Timestream{ "actions": [ { "timestream": { "roleArn": "arn:aws:iam::123456789012:role/TimestreamRole", "tableName": "devices_metrics", "dimensions": [ { "name": "device_id", "value": "${clientId()}" }, { "name": "device_firmware_sku", "value": "My Static Metadata" } ], "databaseName": "record_devices" } } ], "sql": "select * from 'iot/topic'", "awsIotSqlVersion": "2016-03-23", "ruleDisabled": false }
-
Cree una regla temática con el siguiente comando
aws iot create-topic-rule --rule-name timestream_test --topic-rule-payload file://<path/to/timestream_rule.json> --region us-east-1
-
Recupere los detalles de la regla temática mediante el siguiente comando
aws iot get-topic-rule --rule-name timestream_test
-
Guarda la siguiente carga útil del mensaje en un archivo llamado timestream_msg.json
{ "dataFormat": 5, "rssi": -88, "temperature": 24.04, "humidity": 43.605, "pressure": 101082, "accelerationX": 40, "accelerationY": -20, "accelerationZ": 1016, "battery": 3007, "txPower": 4, "movementCounter": 219, "device_id": 46216, "device_firmware_sku": 46216 }
-
Pruebe la regla con el siguiente comando
aws iot-data publish --topic 'iot/topic' --payload file://<path/to/timestream_msg.json>
Aplicación de muestra
Para ayudarle a empezar a utilizar Timestream con AWS IoT Core, hemos creado una aplicación de muestra totalmente funcional que crea los artefactos necesarios en AWS IoT Core y Timestream para crear una regla temática y una aplicación de muestra para publicar datos sobre el tema.
-
Clone el GitHub repositorio de la aplicación de ejemplo
para la integración de AWS IoT Core siguiendo las instrucciones de GitHub -
Siga las instrucciones de la AWS CloudFormation plantilla README
para crear los artefactos necesarios en Amazon Timestream AWS e IoT Core y para publicar mensajes de muestra sobre el tema.
Tutorial en vídeo
En este vídeo