【问题标题】:AWS S3 Put event is not working in lower level directoryAWS S3 Put 事件在较低级别的目录中不起作用
【发布时间】:2015-08-17 07:28:15
【问题描述】:

我以以下格式将应用程序日志存储到 AWS S3。

/MyBucket/TestApplication/Year/Month/Date/mylogs.log

我启用了 S3 存储桶“MyBucket”的事件。

查看活动设置

但是当新日志进入日志文件“mylogs.log”时事件没有触发

【问题讨论】:

  • 您的 Lambda 日志中显示了什么?如果手动触发,Lambda 函数是否正常工作?您是在覆盖对象,还是创建新对象?
  • 我想在 S3 存储桶中保存新日志时调用 lambda 函数,仅此而已。 Lambda 函数的调用计数为零,Cloudwatch 中没有日志。
  • AWS Lambda - 仅在 S3 存储桶的根上的事件 stackoverflow.com/questions/29809473/…
  • 您可能应该使用s3:ObjectCreated:*,而不是仅限于Put。将对象存储在存储桶中的方法不止一种,最可能的解释是严格来说它不是“放置”操作,因此您将其过滤掉。
  • 我为 lambda 函数设置了事件源(s3 存储桶名称和事件类型)。事件源类型:S3 Bucket:S3-Lambda 事件类型:Put 查看截图i.imgur.com/swVeucO.png

标签: amazon-web-services amazon-s3


【解决方案1】:

我们在 S3 存储桶中使用事件类型:ObjectCreated(All),然后从存储桶的较低级别目录触发 Lambda 函数。

【讨论】:

  • 您在 s3 存储桶上手动上传还是使用任何其他客户端?因为我正在手动上传,但触发器不起作用。
【解决方案2】:

您必须在 S3 存储桶中使用事件类型:ObjectCreated(All),然后 Lambda 函数将触发。如果在任何情况下它都不起作用,请检查您在 lambda 上定义的您的角色策略。此角色必须具有读/写 s3 的策略。

【讨论】:

    猜你喜欢
    • 2016-04-28
    • 2018-12-19
    • 2020-01-18
    • 2021-05-21
    • 1970-01-01
    • 2020-07-21
    • 1970-01-01
    • 1970-01-01
    • 2019-11-19
    相关资源
    最近更新 更多