0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS EventBridgeでS3イベントのprefixとsuffixを設定する

Posted at

TL;DR

やりたいこと

S3のへの任意のディレクトリに対するファイル保存をイベントとしてEventBridgeを動作させる
prefixとsuffixを使った記述だと全ての通知が検知されてしまう

やったこと

  • S3のEventBridge通知設定をオン
  • EventBridgeのイベントパターンで検知したい通知をワイルドカードを使って絞る
  • 以下のイベントパターンを記載することで狙い通りの動作となった
{
  "detail-type": ["Object Created"],
  "source": ["aws.s3"],
  "detail": {
    "bucket": {
      "name": ["MY-BUCKET"]
    },
    "object": {
      "key": [{
        "wildcard": "my-directory/*"
      }]
    }
  }
}

日本語サイトを調べましたが、解決策は見当たらなかったため、記事にすることにしました。

概要

S3のへの任意のディレクトリに対するファイル保存をイベントとしてEventBridgeを動作させたいと考え、イベントパターンを以下のように記載したが、全ての通知を検知する状態となってしまった。

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

AWS公式の質問で同様の内容をを見つけ、書き方を以下のように変更したところ、狙いどおりの動作となりました。

{
  "detail-type": ["Object Created"],
  "source": ["aws.s3"],
  "detail": {
    "bucket": {
      "name": ["MY-BUCKET"]
    },
    "object": {
      "key": [{
        "wildcard": "my-directory/*"
      }]
    }
  }
}

suffixを指定したい場合は、wildcardなので"wildcard": "my-directory/*.jsonなどと変更すれば、suffixも指定可能です。

参考

AWS re:Post How to make EventBridge rule match on prefix AND suffix

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?