python - AWS Lambda 函数触发两次

标签 python amazon-web-services amazon-s3 aws-lambda

我正在使用 AWS Lambda 函数(用 Python 编写)在将对象上传到预设 S3 存储桶时发送电子邮件。该对象通过 AWS PHP SDK 上传到 S3 存储桶中,并使用分段上传。每当我测试我的代码(在 Lambda 代码编辑器页面中)时,它似乎工作正常,我只收到一封电子邮件。

但是,当对象通过 PHP SDK 上传时,Lambda 函数运行两次并发送两封电子邮件,两封邮件都具有不同的消息 ID。我尝试过不同的电子邮件地址,但每个地址都收到两封重复的电子邮件。

任何人都可以指导我哪里会出错吗?我正在使用随示例 python 代码一起导入的 boto3 库来发送电子邮件。

最佳答案

是的,我们也有这个,它没有链接到电子邮件,它链接到 S3 为单个上传触发多个事件。与许多消息传递系统一样,Amazon 不保证来自 S3 的事件通知“仅传递一次”,因此您的 Lambda 函数需要自行处理。

不是最好的,但是可行的。

某种形式的缓存,其中包含前几个请求的详细信息,因此您可以查看您是否已经处理了特定的事件消息。

关于python - AWS Lambda 函数触发两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34785863/

相关文章:

python - 多处理 Python 中的 request.urlretrieve 卡住了

python - Python 中的协程与 Lua 中的协程相比如何?

python - Django 中的反向重定向

php - 使用 Docker 将 Elastic Beanstalk 环境变量公开给 Laravel 的 artisan

python - 动态设置函数调用中包含的内容

amazon-s3 - 授予经过身份验证的用户组对文件的读取权限

python - 通过 SQLALchemy 在 Postgres 中插入加密数据

amazon-web-services - 增加 AWS 对 cloudformation 堆栈总数的限制是否需要任何成本?

amazon-web-services - 如何将所有资源/堆栈复制到另一个aws帐户?

amazon-web-services - “指定的存储桶不存在”错误 - S3 存储桶的策略禁止从特定 IP 上传