Receber notificações de dados atrasadas por meio do Amazon CloudWatch Events - AWS IoT Analytics

Para recursos semelhantes AWS IoT Analytics, explore o Amazon Kinesis, o Amazon S3 e o Amazon Athena. Esses serviços fornecem escalabilidade e flexibilidade adicionais para atender aos seus requisitos de análise em evolução. Saiba como fazer isso aqui.

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á.

Receber notificações de dados atrasadas por meio do Amazon CloudWatch Events

Quando você cria conteúdo do conjunto de dados usando dados da mensagem de um período especificado, alguns dados da mensagem ainda podem não chegar a tempo para serem processados. Para permitir um atraso, você pode especificar um deslocamento de deltaTime para o QueryFilter ao criar um conjunto de dados aplicando uma queryAction (uma consulta SQL). AWS IoT Analytics ainda processa os dados que chegam dentro do tempo delta, e o conteúdo do conjunto de dados tem um intervalo de tempo. O atributo de notificação atrasada de dados permite ao AWS IoT Analytics enviar notificações por meio do Amazon CloudWatch Events quando os dados chegam após o horário delta.

Você pode usar o console AWS IoT Analytics, a API, AWS Command Line Interface(AWS CLI) ou o SDK da AWS para especificar regras de dados atrasados para um conjunto de dados.

Na API AWS IoT Analytics, o objeto LateDataRuleConfiguration representa as configurações da regra de dados atrasados de um conjunto de dados. Esse objeto faz parte do objeto Dataset associado a CreateDataset e às operações da API UpdateDataset.

Parâmetros

Ao criar uma regra de dados atrasados para um conjunto de dados com AWS IoT Analytics, é necessário especificar as seguintes informações:

ruleConfiguration (LateDataRuleConfiguration)

Uma estrutura que contém as informações de configuração de uma regra de dados atrasada.

deltaTimeSessionWindowConfiguration

Uma estrutura que contém as informações de configuração de uma janela de sessão de tempo delta.

DeltaTime especifica um intervalo de tempo. Você pode usar DeltaTime para criar conteúdo de conjunto de dados com dados que chegaram ao armazenamento de dados desde a última execução. Para obter um exemplo de DeltaTime, consulte Criação de um conjunto de dados SQL com uma janela delta (CLI).

timeoutInMinutes

Um intervalo de tempo. Você pode usar timeoutInMinutes de forma que o AWS IoT Analytics possa agrupar notificações de dados atrasadas que foram geradas desde a última execução. O AWS IoT Analytics envia um lote de notificações para o CloudWatch Events ao mesmo tempo.

Tipo: inteiro

Intervalo válido: 1-60

ruleName

O nome da regra de dados atrasados.

Tipo: sequência

Importante

Para especificar lateDataRules, o conjunto de dados deve usar um filtro DeltaTime.

Configurar regras de dados atrasados (console)

O procedimento a seguir mostra como configurar a regra de dados atrasados de um conjunto de dados no console AWS IoT Analytics.

Para configurar regras de dados atrasados
  1. Faça login no console do AWS IoT Analytics.

  2. No painel de navegação, escolha Conjunto de dados.

  3. Em Conjuntos de dados, escolha o conjunto de dados de destino.

  4. No painel de navegação, escolha Detalhes.

  5. Na seção Janela delta, escolha Editar.

  6. Em Configurar filtro de seleção de dados, faça o seguinte:

    1. Em Janela de seleção de dados, escolha Hora delta.

    2. Em Deslocamento, insira um período de tempo e escolha uma unidade.

    3. Em Expressão de timestamp, insira uma expressão. Pode ser o nome de um campo de timestamp ou uma expressão SQL que pode derivar a hora, como from_unixtime(time).

      Para obter mais informações sobre como escrever uma expressão timestamp, consulte Funções de data e hora e operadores, na Documentação do Presto 0.172.

    4. Para Notificação de dados atrasada, escolha Ativo.

    5. Em Hora delta, insira um número inteiro. O intervalo válido é 1-60.

    6. Escolha Save (Salvar).

    Configure o filtro de seleção de dados no console AWS IoT Analytics.

Configurar regras de dados atrasada (CLI)

Na API AWS IoT Analytics, o objeto LateDataRuleConfiguration representa as configurações da regra de dados atrasados de um conjunto de dados. Esse objeto faz parte do objeto Dataset associado a CreateDataset e UpdateDataset. Você pode usar a API, AWS CLI ou AWSSDK para especificar regras de dados atrasados para um conjunto de dados. O exemplo a seguir usa a AWS CLI.

Para criar o conjunto de dados com regras de dados atrasados especificadas, execute o comando a seguir. O comando a seguir pressupõe que o arquivo dataset.json esteja no diretório atual.

nota

Você pode usar a API UpdateDataset para atualizar um conjunto de dados existente.

aws iotanalytics create-dataset --cli-input-json file://dataset.json

O arquivo dataset.json deve conter o seguinte:

  • Substitua demo_dataset pelo nome do conjunto de dados de destino.

  • Substitua demo_datastore pelo nome do datastore de destino.

  • Substitua from_unixtime(time) pelo nome de um campo de timestamp ou uma expressão SQL que possa derivar a hora.

    Para obter mais informações sobre como escrever uma expressão timestamp, consulte Funções de data e hora e operadores, na Documentação do Presto 0.172.

  • Substitua o tempo limite por um número inteiro entre 1-60.

  • Substitua demo_rule por qualquer nome.

{ "datasetName": "demo_dataset", "actions": [ { "actionName": "myDatasetAction", "queryAction": { "filters": [ { "deltaTime": { "offsetSeconds": -180, "timeExpression": "from_unixtime(time)" } } ], "sqlQuery": "SELECT * FROM demo_datastore" } } ], "retentionPeriod": { "unlimited": false, "numberOfDays": 90 }, "lateDataRules": [ { "ruleConfiguration": { "deltaTimeSessionWindowConfiguration": { "timeoutInMinutes": timeout } }, "ruleName": "demo_rule" } ] }

Assinando para receber notificações de dados atrasados

Você pode criar regras no CloudWatch Events que definem como processar notificações de dados atrasadas enviadas de AWS IoT Analytics. Quando o CloudWatch Events recebe as notificações, ele invoca as ações do destino especificadas nas suas regras.

Pré-requisitos para criar regras do CloudWatch Events

Antes de criar uma regra do CloudWatch Events para o AWS IoT Analytics, é necessário:

  • Familiarize-se com os eventos, as regras e os destinos no CloudWatch Events.

  • Crie e configure os destinos invocados por suas regras do CloudWatch Events. As regras podem invocar muitos tipos de destinos, como:

    • Amazon Kinesis Streams

    • Funções do AWS Lambda

    • Amazon Simple Notification Service (Amazon SNS) topics

    • Filas do Amazon Simple Queue Service (Amazon SQS)

    Sua regra do CloudWatch Events e os destinos associados devem estar na região da AWS em que você criou seus recursos AWS IoT Analytics. Para obter mais informações, consulte Endpoints e cotas do serviço na Referência geral da AWS.

Para obter mais informações, consulte O que é o CloudWatch Events? e Conceitos básicos do Amazon CloudWatch Events no Guia do usuário do Amazon CloudWatch Events.

Evento de notificação de dados atrasados

O evento para notificações de dados atrasados usa o formato a seguir.

{ "version": "0", "id": "7f51dfa7-ffef-97a5-c625-abddbac5eadd", "detail-type": "IoT Analytics Dataset Lifecycle Notification", "source": "aws.iotanalytics", "account": "123456789012", "time": "2020-05-14T02:38:46Z", "region": "us-east-2", "resources": ["arn:aws:iotanalytics:us-east-2:123456789012:dataset/demo_dataset"], "detail": { "event-detail-version": "1.0", "dataset-name": "demo_dataset", "late-data-rule-name": "demo_rule", "version-ids": ["78244852-8737-4650-aa4d-3071a01338fa"], "message": null } }

Criar uma regra do CloudWatch Events para receber notificações de dados atrasados

O procedimento a seguir mostra como criar uma regra que envia notificações de dados AWS IoT Analytics atrasados para uma fila do Amazon SQS.

Para criar uma regra do CloudWatch Events
  1. Faça login no console do Amazon CloudWatch.

  2. No painel de navegação, em Events (Eventos), escolha Rules (Regras).

  3. Na página Regras, selecione Criar uma regra.

  4. Em Fonte do evento, selecione Padrão do evento.

  5. Na seção Construir padrão de eventos para corresponder a eventos por serviço, faça o seguinte:

    1. Em Nome do serviço, escolha IoT Analytics

    2. Em Tipo de evento, escolha Notificação do ciclo de vida do conjunto de dados do IoT Analytics.

    3. Escolha nome(s) específicos do conjunto de dados e, em seguida, insira o nome do conjunto de dados de destino.

  6. Em Destinos, escolha Adicionar destino*.

  7. Selecione Fila do SQS e faça o seguinte:

    1. Em Fila*, escolha a fila de destino.

  8. Escolha Configure details (Configurar detalhes).

  9. Na página Etapa 2: Configurar detalhes da regra insira um nome e uma descrição.

  10. Escolha Create rule (Criar regra).