AWS IoT Core - Amazon Timestream

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

AWS IoT Core

Vous pouvez collecter des données à partir d'appareils IoT à l'aide d'AWS IoT Core et les acheminer vers Amazon Timestream via des actions de règles IoT Core. AWS Les actions relatives aux règles de l'IoT spécifient ce qu'il faut faire lorsqu'une règle est déclenchée. Vous pouvez définir des actions pour envoyer des données vers une table Amazon Timestream, une base de données Amazon DynamoDB et appeler une fonction Lambda. AWS

L'action Timestream dans IoT Rules est utilisée pour insérer les données des messages entrants directement dans Timestream. L'action analyse les résultats de la SQL déclaration IoT Core et stocke les données dans Timestream. Les noms des champs du jeu de SQL résultats renvoyé sont utilisés comme measure : :name et la valeur du champ est la measure : :value.

Par exemple, considérez l'SQLinstruction et la charge utile de l'exemple de message :

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 une action de règle IoT Core pour Timestream est créée avec l'SQLinstruction ci-dessus, deux enregistrements seront ajoutés à Timestream avec les noms de mesure température et humidité et les valeurs de mesure de 24,04 et 43,605, respectivement.

Vous pouvez modifier le nom de mesure d'un enregistrement ajouté à Timestream en utilisant l'opérateur AS dans l'SELECTinstruction. La SQL déclaration ci-dessous créera un enregistrement avec le nom du message temp au lieu de temperature.

Le type de données de la mesure est déduit du type de données de la valeur de la charge utile du message. JSONles types de données tels que entier, double, booléen et chaîne sont mappés aux types de données Timestream deBIGINT,, DOUBLE et respectivement. BOOLEAN VARCHAR Les données peuvent également être forcées vers des types de données spécifiques à l'aide de la fonction cast (). Vous pouvez spécifier l'horodatage de la mesure. Si l'horodatage est laissé vide, l'heure à laquelle l'entrée a été traitée est utilisée.

Vous pouvez consulter la documentation relative aux règles et aux actions de Timestream pour plus de détails.

Pour créer une action de règle IoT Core afin de stocker des données dans Timestream, suivez les étapes ci-dessous :

Prérequis

  1. Créez une base de données dans Amazon Timestream en suivant les instructions décrites dans. Créer une base de données

  2. Créez un tableau dans Amazon Timestream en suivant les instructions décrites dans. Créer une table

Utilisation de la console

  1. Utilisez la console AWS de gestion pour AWS IoT Core pour créer une règle en cliquant sur Gérer > Routage des messages > Règles, puis sur Créer une règle.

  2. Définissez le nom de la règle sur le SQL nom de votre choix et sur le texte ci-dessous

    SELECT temperature as temp, humidity from 'iot/topic'
  3. Sélectionnez Timestream dans la liste des actions

  4. Spécifiez les noms de la base de données, de la table et des dimensions Timestream, ainsi que le rôle pour écrire les données dans Timestream. Si le rôle n'existe pas, vous pouvez en créer un en cliquant sur Créer des rôles

  5. Pour tester la règle, suivez les instructions indiquées ici.

À l'aide du CLI

Si vous n'avez pas installé l'interface de ligne de AWS commande (AWS CLI), faites-le à partir d'ici.

  1. Enregistrez la charge utile de la règle suivante dans un JSON fichier appelé timestream_rule.json. Remplacez arn:aws:iam::123456789012:role/TimestreamRole avec votre rôle arn qui permet à AWS l'IoT d'accéder aux données de stockage dans 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 }
  2. Créez une règle de rubrique à l'aide de la commande suivante

    aws iot create-topic-rule --rule-name timestream_test --topic-rule-payload file://<path/to/timestream_rule.json> --region us-east-1
  3. Récupérez les détails de la règle du sujet à l'aide de la commande suivante

    aws iot get-topic-rule --rule-name timestream_test
  4. Enregistrez la charge utile du message suivant dans un fichier appelé 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 }
  5. Testez la règle à l'aide de la commande suivante

    aws iot-data publish --topic 'iot/topic' --payload file://<path/to/timestream_msg.json>

Exemple d'application

Pour vous aider à commencer à utiliser Timestream avec AWS IoT Core, nous avons créé un exemple d'application entièrement fonctionnel qui crée les artefacts nécessaires dans AWS IoT Core et Timestream pour créer une règle de sujet, ainsi qu'un exemple d'application pour publier des données sur le sujet.

  1. Clonez le GitHub référentiel de l'exemple d'application pour l'intégration de l' AWS IoT Core en suivant les instructions de GitHub

  2. Suivez les instructions du READMEpour utiliser un AWS CloudFormation modèle afin de créer les artefacts nécessaires dans Amazon Timestream AWS et IoT Core et pour publier des exemples de messages sur le sujet.

Tutoriel vidéo

Cette vidéo explique comment IoT Core fonctionne avec Timestream.