首页 > 解决方案 > 如何在强制 Lambda 函数运行两次的 AWS Lambda 中强制打印异常和错误?

问题描述

我有一个 AWS lambda 函数(用 python 3.7 编写),当特定 JSON 文件从服务器上传到 s3 存储桶时触发。目前,我在 AWS lambda 上为具有文件特定后缀的 PUT 请求设置了触发器。

问题是每次将 JSON 文件上传到 s3 存储桶时,lambda 函数都会运行两次。我通过 cloudwatch 确认,任何额外运行的每个实例大约相隔 10 秒到 1 分钟,并且每次运行都有一个唯一的 requestID。

为了排除故障,我确认 JSON 输入来自一个存储桶,而输出被写入完全独立的存储桶。我消除了来自 pandas 的所有警告,并且没有看到在 cloudwatch 中弹出的代码中会出现任何错误。我还将重试次数从 2 更改为 0。

该函数在运行时还具有以下指标,超时设置为 40 秒,内存大小设置为 1920MB。应该有足够的时间和内存供函数使用:

Duration: 1216.03 ms    Billed Duration: 1300 ms    Memory Size: 1920 MB    Max Memory Used: 164 MB 

我对自己做错了什么感到茫然。

如何强制 AWS Lambda 显示它遇到的问题或错误,这些问题或错误迫使 Lambda 函数在我的 python 代码中运行多次,或者问题发生在哪里?

标签: python-3.xamazon-web-servicesamazon-s3aws-lambda

解决方案


问题是我的代码抛出错误,但由于某种原因 cloudwatch 没有显示错误。


推荐阅读