AWS IoT Core - Amazon Timestream

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

AWS IoT Core

Sie können mithilfe von IoT Core Daten von AWS IoT-Geräten sammeln und die Daten über IoT Core-Regelaktionen an Amazon Timestream weiterleiten. AWS IoT-Regelaktionen geben an, was zu tun ist, wenn eine Regel ausgelöst wird. Sie können Aktionen definieren, um Daten an eine Amazon Timestream Timestream-Tabelle, eine Amazon DynamoDB DynamoDB-Datenbank zu senden und eine Lambda-Funktion aufzurufen. AWS

Die Timestream-Aktion in IoT-Regeln wird verwendet, um Daten aus eingehenden Nachrichten direkt in Timestream einzufügen. Die Aktion analysiert die Ergebnisse der IoT SQL Core-Anweisung und speichert Daten in Timestream. Die Namen der Felder aus der zurückgegebenen SQL Ergebnismenge werden als Measure: :Name verwendet, und der Wert des Feldes ist Measure: :value.

Betrachten Sie zum Beispiel die SQL Anweisung und die Payload der Beispielnachricht:

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 }

Wenn mit der obigen SQL Anweisung eine IoT Core-Regelaktion für Timestream erstellt wird, werden zwei Datensätze mit den Messnamen Temperatur und Luftfeuchtigkeit und den Messwerten 24,04 bzw. 43,605 zu Timestream hinzugefügt.

Sie können den Messnamen eines Datensatzes, der zu Timestream hinzugefügt wird, ändern, indem Sie den AS-Operator in der Anweisung verwenden. SELECT Mit der folgenden SQL Anweisung wird ein Datensatz mit dem Nachrichtennamen temp anstelle von temperature erstellt.

Der Datentyp der Messgröße wird aus dem Datentyp des Werts der Nachrichtennutzlast abgeleitet. JSONDatentypen wie Integer, Double, Boolean und String werden jeweils den Timestream-Datentypen,, und zugeordnet. BIGINT DOUBLE BOOLEAN VARCHAR Mit der Funktion cast () können Daten auch bestimmten Datentypen zugewiesen werden. Sie können den Zeitstempel der Kennzahl angeben. Wenn der Zeitstempel leer gelassen wird, wird die Zeit verwendet, zu der der Eintrag verarbeitet wurde.

Weitere Informationen finden Sie in der Dokumentation zur Aktion Timestream-Regeln

Gehen Sie wie folgt vor, um eine IoT Core-Regelaktion zum Speichern von Daten in Timestream zu erstellen:

Voraussetzungen

  1. Erstellen Sie mithilfe der unter beschriebenen Anweisungen eine Datenbank in Amazon Timestream. Erstellen einer -Datenbank

  2. Erstellen Sie eine Tabelle in Amazon Timestream anhand der unter beschriebenen Anweisungen. Erstellen einer Tabelle

Verwenden der Konsole

  1. Verwenden Sie die AWS Managementkonsole für AWS IoT Core, um eine Regel zu erstellen, indem Sie auf Verwalten > Nachrichtenweiterleitung > Regeln und anschließend auf Regel erstellen klicken.

  2. Geben Sie als Regelnamen einen Namen Ihrer Wahl und anschließend SQL den unten angezeigten Text ein

    SELECT temperature as temp, humidity from 'iot/topic'
  3. Wählen Sie Timestream aus der Aktionsliste

  4. Geben Sie die Namen der Timestream-Datenbank, der Tabelle und der Dimension sowie die Rolle zum Schreiben von Daten in Timestream an. Wenn die Rolle nicht existiert, können Sie eine erstellen, indem Sie auf Rollen erstellen klicken

  5. Folgen Sie den hier angezeigten Anweisungen, um die Regel zu testen.

Mit dem CLI

Wenn Sie die AWS Befehlszeilenschnittstelle (AWS CLI) nicht installiert haben, tun Sie dies von hier aus.

  1. Speichern Sie die folgende Regelnutzlast in einer JSON Datei namens timestream_rule.json. Ersetzen arn:aws:iam::123456789012:role/TimestreamRole mit Ihrer Rolle arn, die AWS IoT-Zugriff zum Speichern von Daten in Amazon Timestream gewährt

    { "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. Erstellen Sie mit dem folgenden Befehl eine Themenregel

    aws iot create-topic-rule --rule-name timestream_test --topic-rule-payload file://<path/to/timestream_rule.json> --region us-east-1
  3. Rufen Sie mit dem folgenden Befehl Details zur Themenregel ab

    aws iot get-topic-rule --rule-name timestream_test
  4. Speichern Sie die folgende Nachrichten-Payload in einer Datei namens 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. Testen Sie die Regel mit dem folgenden Befehl

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

Beispielanwendung

Um Ihnen den Einstieg in die Verwendung von Timestream mit AWS IoT Core zu erleichtern, haben wir eine voll funktionsfähige Beispielanwendung erstellt, die die erforderlichen Artefakte in AWS IoT Core und Timestream für die Erstellung einer Themenregel und eine Beispielanwendung für die Veröffentlichung von Daten zum Thema erstellt.

  1. Klonen Sie das GitHub Repository für die Beispielanwendung für die AWS IoT Core-Integration gemäß den Anweisungen von GitHub

  2. Folgen Sie den Anweisungen im README, um mithilfe einer AWS CloudFormation Vorlage die erforderlichen Artefakte in Amazon Timestream und AWS IoT Core zu erstellen und Beispielnachrichten zum Thema zu veröffentlichen.

Video-Tutorial

In diesem Video wird erklärt, wie IoT Core mit Timestream funktioniert.