2

我有一個Lambda函數,多個DynamoDB流配置爲事件源,並且這是更大管道的一部分。在進行檢查時,我在其中一個下游組件中發現了一些缺失的數據。我想寫一個簡單的Lambda函數,它被配置爲前面提到的DynamoDB流之一的事件源。這會導致我的一個DynamoDB流擁有兩個讀取它的Lambda函數。我想知道這是好的嗎? Lamdba的兩個函數都保證能夠接收放在流中的所有記錄,並且還有我需要注意的任何資源(讀/寫吞吐量)限制。找不到這個AWS網站上的任何相關文件,但我沒有找到碎片單個DynamoDB流上的多個AWS Lambda函數

的這對於處理

內訪問流和處理流的記錄,你必須做 如下:

  • 確定您要訪問的流的唯一Amazon資源名稱(ARN)。
  • 確定流中的哪個分片包含您感興趣的流記錄。
  • 訪問分片並檢索所需的流記錄。

注意最多不要超過2個進程應該同時從同一個 流中讀取數據。每個分片有多於2個讀卡器 可能導致節流。

不確定上述情況如何與將Streams配置爲Lambdas的事件源相比,而不是使用API​​手動讀取Stream的情況。

+0

當你在這裏提到兩個lambda時,你是指同一個lambda函數的多個實例還是兩個lambda函數做不同的事情? – shrewquest

回答

2

您可以將多個Lambda使用相同的流作爲事件源。他們不會相互推斷。但正如文檔所述:「注意最多同時應從同一個Streams碎片中讀取不超過2個進程,每個碎片超過2個讀取器可能導致節流。」 因此,如果你嚴重利用你的流,你不應該有超過兩個Lambdas連接到他們。