Event Bridge rule match on two specific directories from the same S3 Bucket

0

I want an Event Bridge rule to match on two different directories (prefixes) of the same S3 Bucket when a file is uploaded to any of the directories.

If I put two prefix objects under detail.object.key the rule only matches on the last one, as per the event pattern below:

{ 
  "source": ["aws.s3"],
  "detail-type": ["Object Created"],
  "detail": { 
    "bucket": { "name": ["some-bucket"] },
    "object": {
      "key": [
        { "prefix": "some-prefix/" },
        { "prefix": "some-other-prefix/" }
      ] 
    } 
  } 
}

The documentation is unclear about how to accomplish this.

1 Answer
1
Accepted Answer

I found a way to do it using Content-based filtering with $or matching.

https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns-content-based-filtering.html#eb-filtering-complex-example-or

Documentation is still unclear about the specific use case but after a couple of trials and errors I got it working by declaring the event pattern like this:

{
  "source": ["aws.s3"],
  "detail-type": ["Object Created"],
  "detail": {
    "bucket": {
      "name": ["some-bucket"]
    },
    "$or": [
      {
        "object": {
          "key": [{
            "prefix": "some-prefix/"
          }]
        }
      },
      {
        "object": {
          "key": [{
            "prefix": "some-other-prefix/"
          }]
        }
      }
    ]
  }
}

Hope it helps!

profile picture
jigle
answered 10 days ago
profile picture
EXPERT
reviewed 10 days ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions