Amazon web services 如何监控所有aws lambda函数的执行是否正确完成

Amazon web services 如何监控所有aws lambda函数的执行是否正确完成,amazon-web-services,aws-lambda,Amazon Web Services,Aws Lambda,有一个以csv格式从Aurora复制到S3存储桶的表列表 对于每个S3 PUT事件,都会触发lambda函数,该函数处理相应的csv文件 如果我有50个csv文件,我如何跟踪它们是否都已成功处理 概念上的解决方案是有一个50个csv文件的列表,每个文件都与lambda执行id关联,当每个函数完成时,它会更新该文件中的相应条目 当正确处理所有文件时,将触发触发器并发送SNS消息 但是我真的不知道哪种工具或者什么是实现这样一个解决方案的最佳方式 谢谢您的时间。有几种方法可以做到这一点。一种方法是使用

有一个以csv格式从Aurora复制到S3存储桶的表列表

对于每个S3 PUT事件,都会触发lambda函数,该函数处理相应的csv文件

如果我有50个csv文件,我如何跟踪它们是否都已成功处理

概念上的解决方案是有一个50个csv文件的列表,每个文件都与lambda执行id关联,当每个函数完成时,它会更新该文件中的相应条目

当正确处理所有文件时,将触发触发器并发送SNS消息

但是我真的不知道哪种工具或者什么是实现这样一个解决方案的最佳方式


谢谢您的时间。

有几种方法可以做到这一点。一种方法是使用第二个lambda(称为L2)和SQS

在这个解决方案中,您的第一个lambda(L1)将由S3事件触发并处理csv文件。当csv处理与流程文件的元数据复杂化时,L1还将向SQS队列发布消息

SQS队列将触发L2。L2的唯一任务是检查是否所有文件都已处理,如果已处理,则向您发送SNS通知

“检查是否已处理所有文件”的确切详细信息是特定于应用程序的,取决于您如何将每个csv文件标记为进程。您可以将csv元数据存储在DynamoDB中,或者像现在一样存储在S3中

为了消除L2的并发问题,您可以将它的并发性限制为1,这样SQS消息只由一个函数处理(而不是由几个L2函数并行处理)

您可以通过第二个SQS扩展上述解决方案,即所谓的死信队列(DLQ)
,它将保存有关失败的csv进程的信息。通过这种方式,您的L2还可以根据DLQ确定是否出现故障

额外链接:


谢谢您的帮助。这似乎是一个有趣的方法。如果你有,你能分享一些文档或文章来展示这方面的例子吗?@Aleix嗨,我添加了链接。解决方案是定制的,因此没有详细解释一切的链接。不过,如果您有任何具体问题,请随时提出新的SO问题或在此提问。此外,如果我的回答有帮助,我们将不胜感激。