LoginSignup
1
1

More than 1 year has passed since last update.

作業先のS3バケットがLambdaのトリガーとなっていないかを確認する方法

Posted at

背景

S3へのオブジェクト作成をトリガーを利用してLambdaを活用することは多いと思います。
そうすると、S3にファイルを作成する処理を書くときに

「あれ、このバケットのこの場所、トリガーになってないよね、、、?」

と思うことが出てきました。
さっと確認できると安心感も増すものです。

解決方法

API レベル (s3api) コマンドにこれを満たす get-bucket-notification-configuration というものがあります。

参考:API レベル (s3 api) コマンド

具体的な方法

せっかくなので
・S3の条件(Prefixとか)
・S3のパス
・Lambda関数のARN

が1行で一覧で出力できるようなjqを書いてみました(あと一歩スマートな書き方があるかもです)

aws s3api  get-bucket-notification-configuration --bucket ★バケット名★ |jq  '.LambdaFunctionConfigurations[] |[.Filter[].FilterRules[].Name,.Filter[].FilterRules[].Value,.LambdaFunctionArn]|@tsv' -r | sort -k 2,2

結果

関数ごとにエイリアスが設定して、エイリアスごとにS3トリガーが異なる場合でも上手く一覧化できました。

Prefix  testdesu/testtmp/testlogtmp/           arn:aws:lambda:ap-northeast-1:XXXXXXXXXXXX:function:testFunctionA:aliasAAA
Prefix  testdesu/testtmp/testlogtmp_aliasDDD/  arn:aws:lambda:ap-northeast-1:XXXXXXXXXXXX:function:testFunctionA:aliasAAA
Prefix  testdesu/testtmp/testlog/aliasBBB/     arn:aws:lambda:ap-northeast-1:XXXXXXXXXXXX:function:testFunctionA:aliasBBB
Prefix  testdesu/testtmp/testlog/aliasCC/      arn:aws:lambda:ap-northeast-1:XXXXXXXXXXXX:function:testFunctionA:aliasCCC
Prefix  testdesu/testtmp/testztmp/             arn:aws:lambda:ap-northeast-1:XXXXXXXXXXXX:function:testFunctionB:aliasDDD
Prefix  testdesu/testtmp/testztmp_aliasDDD/    arn:aws:lambda:ap-northeast-1:XXXXXXXXXXXX:function:testFunctionB:aliasDDD
Prefix  testdesu/testtmp/testztmp_aliasAAA/    arn:aws:lambda:ap-northeast-1:XXXXXXXXXXXX:function:testFunctionB:aliasAAA
Prefix  testdesu/testtmp/testzz/aliasBBB/      arn:aws:lambda:ap-northeast-1:XXXXXXXXXXXX:function:testFunctionB:aliasBBB
Prefix  testdesu/testtmp/testzz/aliasCC/       arn:aws:lambda:ap-northeast-1:XXXXXXXXXXXX:function:testFunctionB:aliasCCC

その他

マネジメントコンソールから確認する場合、バケットの「プロパティ」から「イベント通知」という項目で、同様の内容を確認することができます。

URLで言うと2021.10.11では以下でアクセス可能です。

https://s3.console.aws.amazon.com/s3/bucket/(バケット名)/property/notification

jq職人をやり終えた後で念のため調べたら画面からみられるじゃん!となった訳ですがCLIでも解決できることが分かったから良いのです

1
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
1
1