擅长:python、mysql、java
<p>我相信您已经在S3上创建了一个事件触发器,并将其与Lambda关联,当您替换文件时,会触发Lambda,它将成为一个循环</p>
<p>有两种方法可以处理它:</p>
<p>1.配置PUT或POST事件类型(适合您的情况)以触发lambda。现在将更新后的文件保存到另一个位置,然后将其复制到原始位置。执行此操作s3将生成一个“s3:ObjectCreated:Copy”事件,该事件将不会再次调用Lambda</p>
<pre><code> # Copying file from secondary location to original location
copy_sr = {
"Bucket":bucket,
"Key" :file_key_copy
}
s3_resource.meta.client.copy(copy_sr,
final_bucket,file_key_copy
)
#Deleting the file from the secondary location
s3_client.delete_object(Bucket=bucket,
Key=file_key_copy
)
</code></pre>
<p>2.使用SQS队列,并将其配置为在指定的时间段内不处理两次收到的任何消息(取决于文件更新的频率)</p>