Lambda Layerということは、複数のLambda関数でライブラリを共有できる仕組みです。
複数のLambda関数は処理を行う前に、Lambda Layerのライブラリを呼び出してから、処理を実行することはできます。
現在、サーバーレス開発が進んでおり、CloudWatch Logsへログを出力していますが、出力する際の規定は無い為、既存の監視システムで処理するのは大変で、既存監視システムの仕様を踏まえてCloudWatch Logsへ出力する共通モジュールを作成し、各業務Lambda処理結果を出力してもらう形で対応することを想定しています。
■設計
① 業務バッチLambda毎に、CloudWatch Logs書込み共通処理をレイヤーを参照し、レイヤー関数経由にてCloudWatch Logsへ業務バッチ処理結果を出力する
② 出力先のCloudWatch Logsロググループは構成毎に出力する
③ 開始終了監視業務Lambdaにて、定時に該当条件の結果を取得して判断し、結果をメールにて通知する
④ エラー監視は、サブスクリプションフィルターを使用し、指定文字を検知した際に監視業務Lambdaを起動、リアルタイムにメール通知を行う
■まとめ
設計の通り実装して実現できましたが、以下の懸念事項があり、継続で改善方法を探しています。
・CloudWatch Logsへのログ出力の際、出力タイミングについては、AWS側で保証していない為、書込みまでにラグが発生する可能性がある
・監視側で取得する際に、取得できない可能性もある為、監視時間はある程度開ける必要がある