目前,我正在實施一個基於S3,Lambda和DynamoDB的解決方案。 我的用例是,當一個新對象上傳到S3上時,第一個Lambda函數被調用,下載新文件,將其分割成大約100(或更多)個部分,併爲每個部分添加額外的信息。下一步,每個部分都將被第二個Lambda函數處理,在某些情況下,將在DynamoDB中執行插入。AWS Lambda更快的處理方式
我的問題只是關於調用「第二lambda」的最佳方式。我的意思是,更快的方式。我想要同時執行100個Lambda函數(如果我要處理100個零件)。
我知道有不同的可能性:
1)我的第一拉姆達功能可以推動每一部分如在室壁運動流和項目我的第二拉姆達功能會發生反應,檢索項目和處理它。在這種情況下,我不知道AWS每次在流中有剩餘項目時是否會啓動新的Lambda函數。也許有一些限制...
2)我的第一個Lambda函數可以推動SNS主題中的每個部分,然後我的第二個Lambda會對每條新消息作出反應。在這種情況下,我對延遲(通過SNS主題發送消息的操作與執行第二個Lambda函數的時間之間的時間間隔)有一些懷疑。
3)我的第一個Lambda函數可以通過執行API調用並傳遞信息直接啓動第二個函數。在這種情況下,我不知道我是否可以同時啓動100個Lambda功能。我認爲我會受到針對AWS API的費率限制(我說,我想!)
有人對我的使用案例有反饋,也許建議?再一次,對我來說最重要的是擁有更快的處理方式。
感謝
...或者您可以使用與第一個Lambda相同的方法。將你的作品放入另一個S3存儲桶中,在對象元數據中保存附加信息並將第二個Lambda附加到第二個存儲桶中。 –
這是另一種解決方案,但我不確定這是更快的方法.... – Matt