- クラウド技術
AWS S3に格納されたファイルを検知してバッチを実行する
- #AWS
はじめに
【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc. 詳細はこちらから>
AWS S3にファイルが格納されたタイミングでLambdaバッチを自動実行する手順をご紹介します。
スケジュールや他イベントにてLambdaを自動実行する場合は、複数のサービスを組み合わせる必要がありますが、S3のファイルを検知して自動実行する場合は、EventBridge等の他サービスを使用せずに済みます。
環境
AWS:Lambda
AWS:S3
AWS:Cloud Watch logs
言語:Python 3.9
※言語には依存しない為、どの言語を選んでいただいても問題ありません。
Lambdaでトリガー作成
実行したいLambda関数にて「トリガーを追加」を設定していきます。
・下記を設定
バケット名:対象のバケット
イベントタイプ:指定なし
→デフォルトで「すべてのオブジェクト作成イベント」となっています(「PUT」や「POST」等、個別の指定も可能です)
プレフィックス:指定なし(任意)
→バケット内の特定フォルダを指定したい場合は、フォルダパスからここに記入していきます。
サフィックス:.owari
→検知したいファイル名を記入します。
S3にファイルをアップロードし、Lambda自動実行確認
Cloud Watch logsでLambda実行ログを確認すると「.owari」ファイルがアップロードされた時間と同様の時間となっていることが確認できます。
補足 – Cloud Watch logsの確認方法
Lambda関数の実行ログは、CloudWatch Logs内に記録されていきます。
下記手順にてログ画面に移動すると便利です。
「モニタリング」タグ→「Cloud Watch ログを表示」→対象の「ログストリーム」
さいごに
ファイルをS3へ格納したら自動で加工したい、ファイルの内容を読み取って処理を行いたい場合はスケジューリングせずとも、Lambdaが自動実行できるようになります。とても手軽に設定が可能なので、ぜひ試してみてください。
【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>