2017-06-12 35 views
1

我有一個案例,我從SNS收到一些AWS Lambda函數的消息。在這個lambda函數中,我正在轉換消息,然後將其推送到Dynamo Db。但是如果我直接將它推到迪納摩Db,那麼它可能會扼殺迪納摩Db。所以,我想批量傳入的請求,然後將其推送到Dynamo Db。據我所知,無法在AWS Lambda中進行批處理,因爲它是無狀態的。那麼,有人可以提出一些建議,我可以在批量請求的AWS Lambda之後使用哪些建議?或者,如果有任何方法,我可以在AWS Lambda中執行此操作?我會做什麼AWS組件可用於批量處理請求?

回答

2

一種方法是:

  • SNS - > LAMBDA - > SQS
  • 按需拉姆達(SQS - > DynamoDB)

由於SQS不能觸發LAMBDA,進度LAMBDA定期從SQS讀取並將其推送到DynamoDB。

+1

或稍有不同:Lambda會推送到DynamoDB,但如果由於帶寬限制而被拒絕,請將其放入SQS以便稍後(定時)處理。這樣,DynamoDB吞吐量可以基於*平均*吞吐量而不是*峯值*吞吐量。 –