2016-01-16 32 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