繁体   English   中英

如何让Lambda不触发多次?

[英]How to keep Lambda from triggering multiple times?

TechStack:salesforce 数据 ->Aws Appflow->s3 ->databricks 作业

你好。 我有一个 appflow 流程正在抓取 salesforce 数据并将其上传到包含多个镶木地板文件的文件夹中的 s3。 我有一个 lambda 正在侦听此文件夹被删除的前缀。 这个 lambda 然后触发了一个数据块作业,这是我创建的一个摄取过程。

我的主要问题是,当这些文件被上传到 s3 时,每个上传的文件都会触发我的 lambda 1 次,并且很好奇我如何才能让 lambda 只运行一次。

Amazon AppFlow 在流程完成时发布流程通知 - Amazon AppFlow

Amazon AppFlow 与 Amazon CloudWatch Events 集成以发布与流状态相关的事件。 以下流事件发布到您的默认事件总线。

AppFlow 结束流程运行报告:此事件在流程运行完成时发布。

您可以在发布此事件时触发 Lambda function。 这样,它仅在 Flow 完成时触发。

我希望我已经正确理解了您的问题,但如果您将它设置为每次将文件放入 S3 存储桶时运行,那么听起来您的 Lambda 工作正常,因为 S3 触发器将在每次上传时调用 Lambda。

如果您想减少 Lambda 运行的时间,请设置一个事件桥触发器来检查存储桶中的新文件,您可以在事件桥 CRON 上运行它以按定义的时间表 ping Lambda。 然后,您可以将所有文件批量发送到您的数据块块,而不是单独发送。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM