Lambda函数触发多次

时间:2019-12-28 11:26:29

标签: amazon-web-services aws-lambda apache-camel-aws-kinesis

我正在尝试在AWS上创建以下架构。 AWS architecture

我有3台设备连接到Iot核心:

-温度计

-空调

-Lambda函数

温度计应每5秒钟将温度发送到Core,然后将遥测发送到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;

它产生平均温度,然后将其发送给Lambda函数。

此功能仅连接到IoT Core,并发送有关主题的消息。空调已订阅了相同的主题,等待消息打开或关闭。

问题

几乎所有功能都可以正常工作,问题在于,即使查询每分钟仅产生一个结果,Lambda函数也每分钟会多次接收到一次结果,如下面的屏幕截图所示:

Problem screenshot

Lambda代码与Kinesis输出模板相同

0 个答案:

没有答案