AWS IoT Core - Amazon Timestream

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

AWS IoT Core

Puoi raccogliere dati dai dispositivi IoT utilizzando AWS IoT Core e indirizzarli ad Amazon Timestream tramite azioni delle regole IoT Core. AWS Le azioni delle regole IoT specificano cosa fare quando viene attivata una regola. Puoi definire azioni per inviare dati a una tabella Amazon Timestream, a un database Amazon DynamoDB e richiamare una funzione Lambda. AWS

L'azione Timestream in IoT Rules viene utilizzata per inserire i dati dai messaggi in arrivo direttamente in Timestream. L'azione analizza i risultati dell'SQListruzione IoT Core e archivia i dati in Timestream. I nomi dei campi del set di SQL risultati restituito vengono utilizzati come measure: :name e il valore del campo è measure: :value.

Ad esempio, considera l'SQListruzione e il payload del messaggio di esempio:

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 }

Se viene creata un'azione della regola IoT Core per Timestream con l'SQListruzione precedente, verranno aggiunti due record a Timestream con i nomi delle misure temperatura e umidità e valori di misura rispettivamente di 24,04 e 43,605.

È possibile modificare il nome della misura di un record aggiunto a Timestream utilizzando l'operatore AS nell'istruzione. SELECT L'SQListruzione seguente creerà un record con il nome del messaggio temp anziché temperature.

Il tipo di dati della misura viene dedotto dal tipo di dati del valore del payload del messaggio. JSONi tipi di dati come integer, double, boolean e string vengono mappati ai tipi di dati Timestream di,, e rispettivamente. BIGINT DOUBLE BOOLEAN VARCHAR I dati possono anche essere impostati su tipi di dati specifici utilizzando la funzione cast (). È possibile specificare il timestamp della misura. Se il timestamp viene lasciato vuoto, viene utilizzata l'ora in cui la voce è stata elaborata.

Puoi fare riferimento alla documentazione sulle regole e le azioni di Timestream per ulteriori dettagli

Per creare un'azione della regola IoT Core per archiviare i dati in Timestream, procedi nel seguente modo:

Prerequisiti

  1. Crea un database in Amazon Timestream utilizzando le istruzioni descritte in. Creazione di un database

  2. Crea una tabella in Amazon Timestream utilizzando le istruzioni descritte in. Creare una tabella

Utilizzo della console

  1. Utilizza la console di AWS gestione per AWS IoT Core per creare una regola facendo clic su Gestisci > Routing dei messaggi > Regole seguito da Crea regola.

  2. Imposta il nome della regola su un nome a tua scelta e poi sul testo SQL mostrato di seguito

    SELECT temperature as temp, humidity from 'iot/topic'
  3. Seleziona Timestream dall'elenco delle azioni

  4. Specificate il database, la tabella e i nomi delle dimensioni Timestream insieme al ruolo per scrivere i dati in Timestream. Se il ruolo non esiste, puoi crearne uno facendo clic su Crea ruoli

  5. Per testare la regola, segui le istruzioni mostrate qui.

Usando il CLI

Se non hai installato l'interfaccia a riga di AWS comando (AWS CLI), fallo da qui.

  1. Salva il seguente payload della regola in un JSON file chiamato timestream_rule.json. Replace (Sostituisci) arn:aws:iam::123456789012:role/TimestreamRole con il tuo ruolo arn che garantisce l'accesso AWS IoT per archiviare i dati in 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. Crea una regola tematica utilizzando il seguente comando

    aws iot create-topic-rule --rule-name timestream_test --topic-rule-payload file://<path/to/timestream_rule.json> --region us-east-1
  3. Recupera i dettagli della regola dell'argomento utilizzando il seguente comando

    aws iot get-topic-rule --rule-name timestream_test
  4. Salva il seguente payload di messaggi in un file chiamato 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. Verificate la regola utilizzando il seguente comando

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

Applicazione di esempio

Per aiutarti a iniziare a utilizzare Timestream con AWS IoT Core, abbiamo creato un'applicazione di esempio completamente funzionale che crea gli artefatti necessari in AWS IoT Core e Timestream per creare una regola tematica e un'applicazione di esempio per la pubblicazione di dati sull'argomento.

  1. Clona il GitHub repository per l'applicazione di esempio per l'integrazione AWS IoT Core seguendo le istruzioni di GitHub

  2. Segui le istruzioni riportate nella sezione READMEper utilizzare un AWS CloudFormation modello per creare gli elementi necessari in Amazon Timestream e AWS IoT Core e pubblicare messaggi di esempio sull'argomento.

Tutorial video

Questo video spiega come IoT Core funziona con Timestream.