2016-10-10 82 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