【问题标题】:Cloudwatch event rule listen to s3 bucket with specific keypathCloudwatch 事件规则侦听具有特定 keypath 的 s3 存储桶
【发布时间】:2020-10-07 04:27:51
【问题描述】:

有没有办法收听 s3 存储桶,但只能在特定的“文件夹”内收听,例如,如果我有一个名为 input 的文件夹,我会说在“s3://bucket-name/folder1/*”上收听? 现在好像只能听整个bucket了 这是我的流程: CloudTrail (monitor s3://bucket/path) -> CloudWatch (将有一个事件规则用于该 s3://bucket/path 中的任何 PUT) 触发器 -> StepFunction-> LambdaFunctions 我还尝试将其限制为 CloudWatch 角色,以便仅授予特定 S3 存储桶路径的权限,而没有运气。 这是我的活动规则:

{ "source": [ "aws.s3" ], "detail-type": [ "AWS API Call via CloudTrail" ], "detail": { "eventSource": [ "s3.amazonaws.com" ], "eventName": [ "PutObject" ], "requestParameters": { "bucketName": [ " bucketname" ] } } }

有什么解决办法吗?

【问题讨论】:

    标签: amazon-web-services amazon-cloudwatch


    【解决方案1】:

    截至撰写本文之日,我目前还不知道有什么方法可以按照规则完成任务。该规则可能有解决方法,但我没有找到它...

    ...但是: 这可以通过使用CloudTrail 来完成。

    1. 从您拥有的事件规则对象中删除键,并保留存储桶名称
    2. 转至 CloudTrail。如果所有数据事件都已开启,请禁用它们并创建您自己的跟踪。
    3. 在 CloudTrail 中,创建一个新的 Trail。指定对象或存储桶级别的操作
    4. 启用 S3 数据事件 - 假设您想监听 putObject 或类似事件
    5. 指定您的存储桶,当它显示单个存储桶选择时,输入存储桶名称和您要监控的路径。 bucketname/folder1/folder2
    6. 指定是否要将读取和写入操作记录到跟踪中。

    现在您只有该路径的日志跟踪。 cloudwatch 规则或 eventBridge 规则现在可以指定存储桶以及您要监控的任何操作。

    【讨论】:

      【解决方案2】:

      尝试添加

      "requestParameters": { "bucketName": [ " bucketname" ],"key":["folder1"] }
      

      可能是工作。

      【讨论】:

      • 这对你有用吗?因为这种方法对我不起作用。
      • 这对我也不起作用。 @AlanBullpitt 你找到可行的解决方案了吗?
      • @fuzzi 不,我不得不重新设计如何处理数据。我创建了一个编排任务,它根据键启动单个作业。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-07
      • 2020-02-27
      • 2022-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多