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