我有一个用例,将文件插入到两个不同的S3存储桶中,例如s3-1和s3-2。当我在两个存储桶中都有必需的数据时,我需要调出一些批处理作业。
我使用S3事件调出Lambda函数,该函数检查两个S3存储桶是否都有相应的文件。插入到相应S3中的文件数量不同,并且不是固定的。但是可能存在并发问题,这可能导致两次提交批处理作业。
有没有办法有效地处理它们?
在这种情况下,我将使用DynamoDB Atomic Counters对正在上传的文件进行计数,并且当DynamoDB返回的计数与预期的计数匹配时(例如,如果您希望将10个文件放在一起,请等待计数为10) ,然后启动批处理作业。
DynamoDB原子计数器将确保只有一个进程将获得预期的计数,因此您不会多次触发批处理作业。