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
-
Crie um banco de dados no Amazon Timestream usando as instruções descritas em. Criar um banco de dados do
-
Crie uma tabela no Amazon Timestream usando as instruções descritas em. Criar uma tabela
Uso do console
-
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.
-
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'
-
Selecione Timestream na lista de ações
-
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
-
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
-
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 }
-
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
-
Recupere detalhes da regra do tópico usando o seguinte comando
aws iot get-topic-rule --rule-name timestream_test
-
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 }
-
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.
-
Clone o GitHub repositório do aplicativo de amostra
para integração com o AWS IoT Core seguindo as instruções de GitHub -
Siga as instruções em README
Para 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