2016-01-16 36 views
0

我有一个外部数据源作为ActiveMQ主题。我只能连接和使用消息。他们很少出现,每10-30秒钟发送一条消息。从ActiveMQ主题获取AWS Lambda

我想收集所有的消息并将它们放入数据库中。 另外我想有一个活跃的网页,可以通过WebSockets接收新消息并绘制图表。

我有使用Python /瓶/ MongoDB的/ SocketIO,建立了一个原型...

我想用亚马逊AWS云基础设施,以避免处理在服务器上的数据。

我相信AWS Lambda可以接受消息并将它们存储到数据库(DynamoDB?)中,并发送一个通知(也许使用SQS)转换为WebSocket消息。 (并非所有事情都很清楚,也许简单的Ajax轮询就足够了)。

下面是一个问题:如何从外部ActiveMQ主题消费消息并使用AWS Lambda进行处理?

我一直在寻找的室壁运动,但看起来它仅支持数据被推到它,但不轮询某些协议的数据...

回答

1

您可以使用lambda作为一个cron般的设施和按计划轮询。见Lambda Scheduled Events

+0

嗯,这将是一个很好的解决方案,谢谢,但我希望在消息到达后尽可能快地收到通知。如果我每1分钟轮询一次队列 - 反正不会太频繁。而且太多无用的lambda调用。 – baldr

+3

Lambda是使用AWS服务和无服务器执行此操作的唯一可能方式。重要的是要记住,Lambda函数只能按照每5分钟的时间进行调度,但如果每个调用实际连接到ActiveMQ并长时间轮询(不仅仅是检查和断开连接),还会立即为接下来的5个消息提供服务分钟,然后终止,你可能有一个合理可行的无服务器解决方案。 –

+0

是的,这也是一个好主意。但是如果我为长时间工作的Lambda收费,这不会太昂贵吗?我想也许有一个微EC2实例,而不是服务使用消息并将它们存储到数据库中会更便宜。 – baldr