如何为单个对象和/或特定对象键触发S3事件通知?



Terraform文档提供了添加过滤前缀或后缀的选项。在一个完整的对象键中,前缀在桶名本身之后。

resource "aws_s3_bucket_notification" "bucket_notification" {
bucket = aws_s3_bucket.bucket.id
lambda_function {
lambda_function_arn = aws_lambda_function.func.arn
events              = ["s3:ObjectCreated:*"]
filter_prefix       = "AWSLogs/"
filter_suffix       = ".log"
}
depends_on = [aws_lambda_permission.allow_bucket]
}

是否可以在事件通知配置中使用完整的s3对象键来确保只考虑对特定文件的更改,而不是仅仅使用前缀?

例如,我想用mybucketname/AWSLogs/file.txt代替filter_prefix"AWSLogs/"

令人惊讶的是,正如您所发现的,没有内置的方法可以仅在一个对象上触发S3事件通知。

如果您控制插入AWSLogs/file.txt对象的进程,请尝试将其插入只包含该文件&设置前缀

如果您不控制该过程,将前缀和后缀设置为AWSLogs/file.txt将是唯一的破解方法。

使用Amazon EventBridge也不能工作,因为没有精确匹配的类型,所以它只会增加复杂性。

AWS应该加入这个功能,早该加入了。

相关内容

  • 没有找到相关文章

最新更新