AWS IoT Core - Amazon Timestream

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

AWS IoT Core

Você pode coletar dados de dispositivos de IoT usando o IoT Core e rotear os dados AWS para o Amazon Timestream por meio de ações de regras do IoT Core. AWS As ações das regras de IoT especificam o que fazer quando uma regra é acionada. Você pode definir ações para enviar dados para uma tabela do Amazon Timestream, um banco de dados do Amazon DynamoDB e invocar uma função Lambda. AWS

A ação Timestream nas Regras de IoT é usada para inserir dados de mensagens recebidas diretamente no Timestream. A ação analisa os resultados da declaração do IoT SQL Core e armazena dados no Timestream. Os nomes dos campos do conjunto de SQL resultados retornado são usados como a medida: :nome e o valor do campo é a medida: :valor.

Por exemplo, considere a SQL declaração e o exemplo de carga útil da mensagem:

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 uma ação de regra do IoT Core para Timestream for criada com a SQL declaração acima, dois registros serão adicionados ao Timestream com nomes de medidas temperatura e umidade e valores de medida de 24,04 e 43,605, respectivamente.

Você pode modificar o nome da medida de um registro que está sendo adicionado ao Timestream usando o operador AS na SELECT instrução. A SQL declaração abaixo criará um registro com o nome da mensagem temp em vez de temperature.

O tipo de dados da medida é inferido do tipo de dados do valor da carga da mensagem. JSONtipos de dados como inteiro, duplo, booleano e string são mapeados para os tipos de dados Timestream deBIGINT,, e, DOUBLE respectivamente. BOOLEAN VARCHAR Os dados também podem ser forçados a tipos de dados específicos usando a função cast (). Você pode especificar a data e hora da medida. Se o carimbo de data/hora for deixado em branco, a hora em que a entrada foi processada será usada.

Você pode consultar a documentação de ação das regras do Timestream para obter detalhes adicionais.

Para criar uma ação de regra do IoT Core para armazenar dados no Timestream, siga as etapas abaixo:

Pré-requisitos

  1. Crie um banco de dados no Amazon Timestream usando as instruções descritas em. Criar um banco de dados do

  2. Crie uma tabela no Amazon Timestream usando as instruções descritas em. Criar uma tabela

Uso do console

  1. Use o console AWS de gerenciamento do AWS IoT Core para criar uma regra clicando em Gerenciar > Roteamento de mensagens > Regras seguido por Criar regra.

  2. Defina o nome da regra como um nome de sua escolha e SQL o texto mostrado abaixo

    SELECT temperature as temp, humidity from 'iot/topic'
  3. Selecione Timestream na lista de ações

  4. Especifique os nomes do banco de dados, da tabela e da dimensão do Timestream junto com a função para gravar dados no Timestream. Se a função não existir, você pode criar uma clicando em Criar funções

  5. Para testar a regra, siga as instruções mostradas aqui.

Usando o CLI

Se você não instalou a interface de linha de AWS comando (AWS CLI), faça isso aqui.

  1. Salve a carga útil da regra a seguir em um JSON arquivo chamado timestream_rule.json. Substituir arn:aws:iam::123456789012:role/TimestreamRole com sua função arn, que concede acesso à AWS IoT para armazenar dados no 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. Crie uma regra de tópico usando o seguinte comando

    aws iot create-topic-rule --rule-name timestream_test --topic-rule-payload file://<path/to/timestream_rule.json> --region us-east-1
  3. Recupere detalhes da regra do tópico usando o seguinte comando

    aws iot get-topic-rule --rule-name timestream_test
  4. Salve a seguinte carga de mensagem em um arquivo chamado 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. Teste a regra usando o seguinte comando

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

Aplicação de exemplo

Para ajudar você a começar a usar o Timestream com o AWS IoT Core, criamos um aplicativo de amostra totalmente funcional que cria os artefatos necessários no AWS IoT Core e no Timestream para criar uma regra de tópico e um aplicativo de amostra para publicar dados no tópico.

  1. Clone o GitHub repositório do aplicativo de amostra para integração com o AWS IoT Core seguindo as instruções de GitHub

  2. Siga as instruções em READMEPara usar um AWS CloudFormation modelo para criar os artefatos necessários no Amazon AWS Timestream e no IoT Core e para publicar mensagens de exemplo sobre o tópico.

Tutorial em vídeo

Este vídeo explica como o IoT Core funciona com o Timestream.