Kan*_*gar 8 python amazon-s3 amazon-web-services aws-lambda
我正在使用AWS Lambda函数(用python编写)在对象上传到预设的S3存储桶时发送电子邮件.该对象通过AWS PHP SDK上传到S3存储桶,并使用分段上传.每当我测试我的代码(在Lambda代码编辑器页面内)它似乎工作正常,我只收到一封电子邮件.
但是当通过PHP SDK上传对象时,Lambda函数会运行两次并发送两封电子邮件,两封邮件都有不同的邮件ID.我尝试了不同的电子邮件地址,但每个地址只收到两封重复的电子邮件.
任何人都可以指导我哪里可能出错?我正在使用随示例python代码导入的boto3库来发送电子邮件.
smc*_*art 10
是的,我们也有这个,它没有链接到电子邮件,它链接到S3为单个上传触发多个事件.与许多消息传递系统一样,亚马逊不保证S3的"一次性交付"事件通知,因此您的Lambda函数需要自行处理.
不是最伟大的,但可行的.
某种形式的缓存,包含前几个请求的详细信息,因此您可以查看是否已经处理了特定事件消息.
小智 6
我也面临同样的问题,在我的情况下,在 S3 存储桶中的每个 PUT 事件上,一个 lambda 应该触发,它使用相同的aws_request_id和触发两次aws_lambda_arn。
要修复它,请在aws_request_id某处跟踪(此 id 对于每个 lambda 事件都是唯一的)并检查处理程序。如果相同aws_request_id,则什么都不做,否则照常处理。