如何將多個 lambda 函數訂閱到同一個 SQS 佇列

如何將多個 lambda 函數訂閱到同一個 SQS 佇列

我想要實現的是使用 lambda 函數而不是「自架」訂閱者來擴展已定義隊列的消費者數量。

對於給定的情況,event-queue我希望多個消費者處理來自同一隊列的唯一訊息,就像我簡單地處理一組進程一樣,但我想使用雲端託管的 lambda 函數。到目前為止,我只是找到瞭如何使用單一功能進行訂閱,而無需縮放選項。

答案1

我發現這篇非常有用的文章來自雲遊俠(作者:Andreas Wittig),這舉例說明了一種針對多個 AWS Lambda 使用者的方法:

整合 SQS 和 Lambda:適用於非同步工作負載的無伺服器架構

要擴展 Andreas 的解決方案,您可以使用AWS CloudWatch 警報來自您的 AWS SQS 佇列和 tiggerAWS 雲形成(和/或AWS 無伺服器應用程式儲存庫)以在需要時啟動更多 AWS Lambda 使用者。

另一種方法是使用亞馬遜MQ

如果你使用亞馬遜簡單通知服務 (SNS)或者AWS 運動,相同的訊息將觸發不同的 lambda,並且您可能會在 lambda 之間獲得重複的操作。

[更新]

現在可以使用 Amazon Simple Queue Service 作為 AWS Lambda 的觸發器:

更多資訊請點這裡:https://aws.amazon.com/blogs/aws/aws-lambda-adds-amazon-simple-queue-service-to-supported-event-sources/

相關內容