Лямбда-функция срабатывает более одного раза

Я пытаюсь создать на AWS следующую архитектуру. Архитектура AWS

У меня к ядру Iot подключено 3 устройства:

-Термометр

-Кондиционер

-Лямбда-функция

Термометр должен каждые 5 секунд отправлять данные о температуре в ядро, затем данные телеметрии отправляются в поток Kinesis и в Kinesis Analytics.

Вот запрос, который группирует данные, поступающие в 60-секундные окна.

Запрос:

CREATE OR REPLACE STREAM "TEMPSTREAM" ( 
   "avg_temp" BIGINT NOT NULL, 
   "dateTime" TIMESTAMP,
   "sender_id" VARCHAR(64));

CREATE OR REPLACE PUMP "SAMPLEPUMP" AS 
INSERT INTO "TEMPSTREAM" ("avg_temp","dateTime","
    SELECT STREAM AVG("temperature") as "avg_temp",ROWTIME,"sender"
    FROM "SOURCE_SQL_STREAM_001"
    GROUP BY "sender",STEP("SOURCE_SQL_STREAM_001".ROWTIME BY INTERVAL '60' SECOND)
    having AVG("temperature")>=27;

Он выдает среднее значение температуры и отправляет его в лямбда-функцию.

Эта функция просто подключается к IoT Core и отправляет сообщение по теме. Кондиционер подписан на эту же тему, ожидая сообщения о включении или выключении.

Проблема

Почти все работает нормально, проблема в том, что даже если запрос дает только один результат в минуту, функция Lambda получает его чаще, чем раз в минуту, как вы можете видеть на снимке экрана ниже:

Скриншот проблемы

Лямбда-код аналогичен шаблону вывода Kinesis.

0 ответов

Другие вопросы по тегам