【发布时间】:2020-05-16 00:11:02
【问题描述】:
我对 AWS Lambda 和 S3 有疑问。
我使用 terraform 部署所有 AWS 架构。我有一个存储桶,我可以在其中上传 XML 文件,该文件触发 lambda 来处理这些文件(事件被充分告知)。
问题是,在部署我的架构之后,当我将一个 XML 文件放入我的存储桶中时,前几次什么都没有发生。好像我上传的第一个文件没有被考虑在内,S3 也没有向 Lambda 发送通知。
有时我必须在开始考虑之前将几个文件发送到 S3,或者我使用 GUI 修改 S3 控制台中的通知,而不进行任何更改,只需单击“保存”即可。我不知道如何调查这个问题。
你能告诉我是否有人遇到过类似的情况吗? 另外,您是否知道是否可以查看 S3 存储桶上发生的所有事情的历史记录(上传的文件、发送的事件……)来调查我的问题?
提前致谢。
【问题讨论】:
-
您是否为 Lambda 启用了 Cloudwatch? S3 存储桶上的 PutObject 触发器到 Lambda 应该在每个事件上触发,因此在 Cloudwatch 中跟踪这些事件发生的情况将是我首先要看的事情
-
你怎么知道 lambda 没有被触发?是因为 lambda 应该执行的操作尚未执行,还是因为您检查了 lambda cloudwatch 日志并且可以看到 lambda 尚未被调用?两者之间有天壤之别。我怀疑是前者,这将是由于该 lambda 代码中的问题,并且可以解释它间歇性失败。
-
能分享一下bucket的配置吗?当您启用对 Lambda 的通知时。关注:Bucket > Properties > Events 最好的问候。
-
您好,感谢您的回答。我说当我上传第一个对象时不会触发 lambda,因为当我查看 lambda 的 CloudWatch 日志时,没有日志,我们可以看到没有调用 lambda。
-
我的bucket事件是在上传/扩展名为“.xml”的文件夹上创建的每个对象上,触发lambda
标签: amazon-web-services amazon-s3 aws-lambda terraform-provider-aws eventtrigger