2015-12-29 58 views
2

我有一個大文件正在上傳到S3上,並且對於文件中的每一行我都需要進行長時間運行的其餘API調用。我試圖找出分手的最好方法。我目前的流動的想法是並行AWS的最佳方式Lambda

拉姆達(打破由線文件) - > SNS(每行通知) - > LAMBDA(每行獨立/通知)

這似乎是它是一種常見的情況,但我找不到很多引用它,我錯過了什麼?是否有更好的選擇來分解我的工作並在合理的時間內完成工作?

+2

爲什麼不跳過中間步驟,從第一個lambda函數中調用第二個lambda函數?有點像這樣:http://stackoverflow.com/questions/31714788/can-an-aws-lambda-function-call-another – JohnAllen

+0

你的'長時間運行的休息API調用'多久? – helloV

回答

1

最好方式將是主觀的。您目前使用的方法是Lambda->SNS->Lambda,這是一種可能的方法。正如JohnAllen指出的,你可以簡單地做Lambda->Lambda

您的場景讓我想起this project,它有一個Lambda函數將項添加到Kinesis流中,然後觸發許多並行的Lambda函數。

我認爲Lambda->Kinesis->Lambda可能更適合您的使用情況,如果您生成大量的Lambda任務,則可能會比Lambda->SNS->Lambda更適合。我會擔心SNS實現會針對最大數量的併發Lambda函數運行,而Kinesis實現會將它們排隊並優雅地處理。