2016-10-10 81 views
0

有一個我希望傾聽的SNS主題,並且我明白,我可以使用SQF和SWF來處理每個事件,或讓AWS Lambda直接訂閱SNS以使其工作在每個事件到達時。對於每個事件,我打算做的是提取某些信息並將其存儲到彈性搜索中。 我的問題是我什麼時候會使用一種方法而不是另一種?處理錯誤是否更好?何時使用AWS Lambda與SWF

回答

1

對於您的使用情況,您絕對想要Lambda。

SWF要複雜得多,專爲較長的流程而設計,需要多個步驟,可能需要數天才能完成。對於SWF,我通常會想到諸如客戶在網站上下訂單等使用案例,這會觸發一個工作流程,通過開票,製造,包裝,運輸等過程的所有步驟完成訂單。

+0

這很有道理,但我也想知道有關數據重試的信息,比如說我的ES出現故障,我無法將信息寫入羣集。你認爲哪個更容易回填未寫的事件?由於有一個死信隊列,我假設SQS。 – jem4687

+0

Lambda中存在一些錯誤重試功能,但我不確定SNS事件的具體情況,我認爲它沒有很好地記錄。像你說的那樣,SQS對於錯誤處理會更好。儘管SQS並沒有很好地與Lambda集成,並且僅僅使用SWF才能使用SQS,但這種方式過度。您可以創建一個檢查SQS的Lambda函數,並通過Lambda調度事件定期觸發它。另一種選擇可能是使用Kinesis。 –

+0

計劃的lambda事件是一個有趣的想法。至於kinesis已經做了一些研究,但是對於在這種情況下如何處理錯誤有點困惑,因爲如果一個事件未能被正確處理,似乎會阻止其餘的流 – jem4687