我在AWS上有一个事件驱动的数据管道,该管道处理数百万个文件。 s3存储桶中的每个文件都会触发一个lambda。 lambda处理文件中的数据,并将处理后的数据转储到s3存储桶,这又触发了另一个lambda等。
在管道的下游,我有一个lambda来创建Athena数据库和表。一旦将对象转储到我的s3存储桶的相应键下,就会触发该lambda。只需调用一次仅创建一次Athena数据库和表的lambda即可。
如何避免让我的Labda多次触发?
答案 0 :(得分:1)
这是您现有的流程:
您的第3步甚至没有执行,您正在执行一个事件。
我建议您执行以下流程:
仅两个步骤,处理文件的Lambda应该使用Athena SDK,并检查所需的表是否已经存在,只有在不存在的情况下,才调用创建Athena表的Lambda。交付S3不应触发雅典娜的lambda。