調査したこと
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 bucket
をONに設定して上で、下記のruleを設定
{
"source": ["aws.s3"],
"detail-type": ["Object Created"],
"detail": {
"bucket": {
"name": ["my-bucket-name"]
},
"object": {
"key": [{
"prefix": "prefix/test.csv"
}]
}
}
}
参考サイト
EventBridgeを使用してキー指定したS3のイベントをトリガーにLambdaを実行してみた