S3 bucketに変更があった場合のEventBridge検知

調査したこと

S3 bucketにファイル作成、ファイル削除された場合にEventBridgeで検知したい場合の設定方法を探していました。ネットを漂っていると設定方法は2種類あるようなので、備忘録として残しておきます。
検知方法はCloud Watch経由で検知、S3から直接検知の2種類

  • Cloud Watch経由(従来の方法)
  • S3から直接検知(2021年に追加された機能)

設定方法

それぞれEventRuleの設定に違いがあるので残しておきます

Cloud Watch経由

{
  "detail-type": [
    "AWS API Call via CloudTrail"
  ],
  "source": [
    "aws.s3"
  ],
  "detail": {
    "eventSource": [
      "s3.amazonaws.com"
    ],
    "requestParameters": {
      "bucketName": [
        "my-bucket-name"
      ],
      "key": [
        {
          "prefix": "prefix/"
        }
      ]
    },
    "eventName": [
      "CopyObject",
      "PutObject",
      "CompleteMultipartUpload"
    ]
  }
}

S3から直接検知

S3 bucketの設定Send notifications to Amazon EventBridge for all events in this bucketONに設定して上で、下記のruleを設定

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

参考サイト

EventBridgeを使用してキー指定したS3のイベントをトリガーにLambdaを実行してみた